您的位置:首页 > 编程语言

什么是好代码-代码整洁之道阅读笔记

2016-11-23 01:06 309 查看
根据我所阅读的书《代码整洁之道》里的一句话:

“衡量代码质量的唯一有效标准: WTF/min”

从哲学的角度讲,不得不说这真的很客观!!!

毕业不久的我也没有太多关于好代码的定义。应该说没有明确的定义。但是当我看到一段好的代码与坏的代码,作为初学者的我也能够辨别哪个好,哪个不好。

所以客观角度讲。是有好代码跟坏代码的差别的。下面我就简单记录下这本书中讲的一些要点,一方面给自己加深印象。另一方面打发无聊时间,快速度过没有女票的日子。

如何命名

这个真的很重要, 大的不敢说。作为像我们这种二本三本出来的程序员真的很不注重这一点。身边的朋友大部分都是因为自己的英文不好,而导致命名不出符合语意的命名。这样随着时间的推移,会让代码越来越难理解。当然直接影响就是团队的工作效率急速下降。书中第二章提到关于命名的提到的点大概有:

避免使用魔术数字

避免误导

避免使用无意义的字母(如a、b、i…)

使用团队内一致认可的,通用的命名(如:generateXxx生成xxx、searchXxx搜索xxx、doSomethingWithXxx使用xxx做什么操作…)

避免使用编码(避免使用变量前缀、后缀)

类名应该用名词或者名词短语、避免使用动词

方法名应当使用动词或动词短语命名

每个抽象概念选一个词,并一以贯之(团队里面的代码中不应该出现表示同一个抽象概念的不同命名,例如同样表示获取这个抽象概念就不应该在代码里面出现同样表达”获取”这个抽象概念的多个命名fetch、retrieve、get、obtain等等)

多使用解决方案领域命名(例子待完善)

分离解决方案领域跟问题领域的名称命名(遇到与所涉及问题领域更贴近的代码时,应当用问题领域的名称来命名)

函数如何封装

封装基本原则-短小(检验函数是否短小的方法: 查看函数是否可以切分为不同的步骤)

只做一件事情

难点就在如何定义这件事情?难点演化后其实就是一件事情跟、步骤如何划分的问题。

例如,现在有个问题是如何将一只大象放入冰箱?可以抽象出一个函数叫putElephantToRefrigerator()。

具体这个函数内部实现可以将这件事情分为三个步骤:

打开冰箱openRefrigerator()。

推大象进入冰箱pushElephantIntoRefrigerator()。

关闭冰箱close()。

对于将大象放入冰箱这件事情而言,putElephantToRefrigerator()就只做了一件事情。只不过分三个步骤完成而已。但是对于openRefrigerator()这个步骤而言,它其实又是一件事情。只不过相对于putElephantToRefrigerator()这件事情它就是这件事情的一个步骤而已。因此事情步骤只是在抽象层级上不同。函数也是如此

尽量保持每个函数都在最低的抽象层级上(多个层级函数的出现会导致代码让人迷惑)

函数内的语句都要在同一抽象层级上。

遇到switch语句时,应该考虑用多态(抽象工厂+策略可实现多态)替换switch的相关语句
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  阅读 标准