看了《代码整洁之道 Clean Code》,里面多是人家几十年的编程经验,以下摘录(小结)部分内容以作参考及以后留用。

Clean Code

命名

在写代码的过程中总是会需要命名,类名,变量名,方法名等等,一个不好的名字往往会导致后续的开发中产生各种混乱,这点我深有体会。需要做到以下几点:
1. 名副其实,比如 for(int[] x : theList){}, 不能让人一眼明白其中的道理,假如换成
for(int[] cell : gameBoard){}则让名字变得有意义得多。
2. 避免误导,比如用l和O来命名,你能很快分出他们与1和0的区别吗?
3. 做有意义的区分,假如有个Product类和ProductInfo类,你能一眼感受到他们的区别吗?
4. 使用读得出来的名称,我个人感觉用拼音来命名或者单纯得取几个字的首字母不是一个好的方式。
5. 避免使用编码, 比如PhoneString phoneString; 当PhoneString->PhoneNumber后phoneString还是phoneString且给后续的代码识别造成了干扰。这一点我们的Eclipse做的不够好哦。
6. 避免思维映射, 比如单字母的命名,读者在读代码的时候往往需要在心里记住这个字母的内在含义。
7. 类名/对象名应该是名词或者名次短语,方法名应该是动词或者动词短语。

函数

1. 函数应该短小短小再短小。
2. 一个函数做一件事情。
3. 每个函数一个抽象层级。
4. 使用描述性的名称,比如把testableHtml改为SetupTeardownIncluder.render。
5. 对于函数参数,最理想的是零参数,其实是一,再次是二,应尽量避免三,再多的话就要考虑是不是应该把参数封装起来了。
6. 函数要么做什么事,要么回答什么事。
7. 使用一场代替返回错误码,这一点相比在现有的java版本上应该都能做到吧。
8. 最好抽离try/carch代码块。
9. 想办法消除重复。
一个好的函数需要慢慢打磨,分解函数,修改名称,消除重复来帮助你的函数最终达到你心中的样子。

注释

“别给糟糕的代码加注释——重新些吧”      —Brian W. Kernighan 与 P. J. Plaugher
记住注释不能美化糟糕的代码,实际经验告诉我们,程序员在维护代码的时候往往不能100%得像维护代码那样去维护注释,久而久之注释就变得与代码风马牛不相及了,用你的命名,你的代码去当你的注释吧。还有尽可能不要在生产代码中留下注释掉的代码,这样的代码后期的人不敢乱删,堆积起来只会影响代码。当然以上不是完全得排斥注释,在非常合理与必须的地方还是可以存在注释的,具体可以看书上的解释。

格式

1. 在封包声明,导入声明,每个函数之间,不同的代码块之间用空白行隔开,这一点会极大得影响你的代码的视觉可读性。
2. 向报纸学习,先给出大纲,再具体阐述。
3. 相关函数/代码放到一起或者附近。
4. 不推荐横向水平对其,如:
private Socket                 socket;
private inputStream        input;
private FitNesseContext context;

视觉上容易让人忽略部分重要信息。
5. 进行必要的缩进,这也是直接影响到你的代码可读性的重要点。
6. 当你进入一个团队的时候,先了解这个团队的代码风格与要求,并于大家保持统一。

单元测试

书中举了一个栗子,团队不重视测试代码的整洁,当测试代码勉强还能测试生产代码的功能的时候,他们认为脏测试胜过没测试,但是问题在于当生产代码改变后,测试代码也需要随之改变,然而,测试越脏就越难修改,总有一天脏测试代码无法测试新的生产代码导致团队只能放弃测试组,没有了测试就没有了保障,最终剩下的就只有没有测试,bug一堆的生产代码,沮丧的客户和对测试的失望。

以上只是为了说明一个问题,测试代码和生产代码一样重要。测试需要遵循以下几条规则:
1. 测试应该够快。
2. 测试应该相互独立。
3. 测试应该可以在任何环境中重复通过。
4. 测试应该有布尔值输出。(避免测试了还要自己去手动对比测试结果,比如文本等)
5. 测试应该即使编写。

本文摘录/参考 《代码整洁之道 Clean Code》 人民邮电出版社出版
本文地址: http://www.wangjie.name/clean-code-1.html 
转载请以链接形式标明本文地址


4 Comments

  1. 尚吾网
    Posted 2014 年 11 月 26 日 at 下午 1:55 | Permalink

    再次来访,一如既往的支持。

  2. 就是赚
    Posted 2014 年 12 月 6 日 at 下午 9:09 | Permalink

    第一次看到,先支持一下

  3. Posted 2015 年 2 月 4 日 at 下午 1:55 | Permalink

    很不错的分享,赞 ^_^

  4. Posted 2017 年 12 月 2 日 at 上午 11:14 | Permalink

    文章不错非常喜欢

发表评论

电子邮件地址不会被公开。 必填项已用*标注

^_^ :yawn: :wq: :wink: :trap: :spit: :sleepy: :shy: :roll: :righthh: :poor: :pig: :panic: :oops: :mrgreen: :lust: :lol: :lei: :lefthh: :kiss: :jq: :hush: :heng: :han: :grin: :grievance: :good: :fuck: :fight: :down: :dizzy: :despise: :curse: :cry: :cry2: :crash: :cool: :co: :ca: :bye: :booger: :bigqiu: :beat: :angry: :almostcry: :?: :-x :-o :-P :-D :( 8| 8-O 8) 0.0