菜鸟的自我修养


  • 首页

  • 标签

  • 分类

  • 归档

  • 搜索

谈谈代码风格

发表于 2017-12-05 | 更新于: 2017-12-27 | 分类于 闲言碎语

这次先不说具体技术,讲讲我对代码风格的看法吧。

实际上代码规范说明也不少,但是都有很多,一条一条比较细地列下来,但是比较乏味,背后的道理讲得也不够详细。我就打算选取少量个人觉得重要的点,详细地讲一讲,希望能有趣一点。
所谓好的代码,就是易维护的代码,易维护的代码需要易读,易修改;其中易读是基础,不易读怎么能易修改,本次就重点讲讲易读的代码。

阅读全文 »

Rust-2.错误处理

发表于 2017-12-04 | 更新于: 2017-12-04 | 分类于 编程语言安利 , Rust

程序运行中,在执行一些操作时会出现问题,我们需要对这些问题进行相应的处理,这就是错误处理,错误处理可以有很多不同的方式和风格,下面来介绍一下Rust的错误处理。

Rust的错误处理,严格来说算不上是一个专门独立的特性,而是某些特性带来的一种用法,但是其实用价值我觉得足以单独拿出来讲一讲。原计划这一篇会在这个系列比较靠后的地方出现,等前置的知识讲完,可以把这里的原理讲清楚之后。但是出于某些原因,我打算提前讲一讲。

阅读全文 »

C的设计失误

发表于 2017-02-08 | 更新于: 2017-10-04 | 分类于 吹毛求疵

日常使用中,可能不时觉得某些编程语言里面有一些不好用的地方。当然大多设计都同时有优缺点,我们要理解其中的权衡。 不过以现在的眼光来看,以前有些设计的缺点明显大于优点,这就不能完全推脱为权衡,而可以称之为设计失误了。当然两者的界限不太分明,见仁见智,这里就谈谈我的看法。

我准备总结并吐槽一下我平时使用过的一些编程语言的种种设计问题。当然不是为了批评,有些语言是在几十年前设计的,在当时缺乏足够的实践教训和前人经验(或者是缺乏经验导致的不重视设计细节)的情况下,这些问题都是情有可原的(不过某些所谓现代语言仍然继承了,甚至自创了一些设计失误就值得批判了)。总结这些设计失误,一是引起重视,帮助我们在使用中尽量避免一些问题,二是帮助我们理解一些现代语言为何采取了不同的设计。

这里,就先从大名鼎鼎的C开刀(设计并不全部由C首创,但是起码照搬了没改,同时也影响深远),有些在新标准里面有所改善。另外考虑到C的年龄,从缺乏特性挑刺有点欺负人,这点就尽量不谈。

阅读全文 »

Rust-1.RAII

发表于 2016-09-25 | 更新于: 2017-12-02 | 分类于 编程语言安利 , Rust

先来提一下RAII吧,RAII是一种资源管理方式,来源于C++,也是Rust使用的资源管理方式,本篇博文会比较RAII和GC之间的优劣。

虽然之前说Rust最重要的设计思想是安全,照理来说我应该把安全相关的特性放开始讲,不过实际上资源释放和安全并没有关系。不过我还是把它放在最前面,因为我觉得RAII和Rust最鲜明的特性所有权系统颇有交叉,而且理解起来更加简单。

阅读全文 »

Rust-0.概述

发表于 2016-09-25 | 更新于: 2017-12-02 | 分类于 编程语言安利 , Rust

感觉近几年Go语言很火,不过个人并不喜欢。我个人的意见是,其内部实现非常值得围观学习,但是其作为编程语言的设计实在是惨不忍睹,特别是在21世纪有那么多经验教训可以借鉴的情况下,由Google这么一个名气甚大的公司开发的语言,令人大失所望。

按我的判断,近些年的新语言中,最靠谱,最有希望在工业环境大展身手的,就是Rust。故而尝试安利一下。当然我觉得目前的Rust还需要再开发几年才能真正投入实际生产,但是这么有想法的项目在国内关注的人寥寥,不由得有些不平。不过即使在欧美,Rust也属于相对小众,但接触过的人评价都较好的情况,比如可见StackOverflow开发调查2016年的结果和2017年的结果,Rust连续两年在最受喜爱的编程语言中以较大的优势排在第一(因为这个是按百分比比较的),但是从绝对人数来看,Rust并不突出。

阅读全文 »

博客上线第一篇

发表于 2016-09-24 | 更新于: 2017-12-02 | 分类于 闲言碎语

作为一个深度拖延症患者,终于还是把博客搭好准备上线了,值得纪念。这个博客主要的目的是,记录一些技术学习后的整理,提升一些逼格(其实并不能),也有可能写些其他有的没的。

站点概览里面有我GitHub的链接,里面基本上是空的,大概是由于我对上传代码的要求比较高(其实是没啥拿得出手的东西),加上懒。

阅读全文 »
vegarden

vegarden

6 日志
4 分类
9 标签
GitHub
© 2016 — 2017 vegarden
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.3