代码整洁之道(1-7章)

131 阅读3分钟

目录

  • 整洁代码介绍
  • 有意义的命名
  • 函数
  • 注释
  • 格式
  • 对象和数据结构
  • 错误处理

一、整洁代码介绍

混乱代码的代价是,修改起来很麻烦,牵一发而动全身,导致生产力下降。然而,重新开发新的框架代价也很大,项目逻辑复杂,很难覆盖齐全,同时新框架也会有新的隐患存在。所以,整洁代码有其必要性。

二、有意义的命名

1、类名、方法名、变量名做到见名知意

2、避免取一些误导人的命名。如accountList,并不是List类型;类似命名不易区分

3、做有意义的区分。如,不取名字母或者数字;Data或者Info;NameString

4、使用读得出来的名称,方便沟通

5、使用可搜索的名称,方便查找

6、避免使用特殊的前缀,m_(容易被无视)或者iShapeFactory(不想让人知道是接口)

7、不要使用单字母,尤其是l与1,O与0

8、类名和对象名应该用名词,不应该用动词

9、方法名应该用动词或动词短语

10、忌用俗语或者俚语,简洁明了最好

11、每个概念对应一个词。如get、fetch;还有controller、manager让人困惑

12、别用双关语,同一术语用于同一概念,如add、insert、append等

13、使用解决方案领域名称,取技术性名称

14、添加有意义的语境,如firstName、lastName、street等代表地址,可命名为addrFirstName、addrLastName、addrStreet,避免某个变量孤零零出现,不知其意

15、不要添加没用的语境,短命称足够清楚,就不要用长名称

一章小结:取好名称最难的地方在于良好的描述技巧和共有文化背景。

三、函数

1、函数尽可能短小

2、一个函数只做一件事

3、每个函数对应一个抽象层级。从顶向下阅读代码,逻辑更清晰

4、switch语句,使用抽象工厂模式,通过多态,将switch藏进去

5、使用描述性的名称,见名知意。函数越短小、功能越集中,越便于取个好名称

6、函数参数最理想参数数量是0,其次是一,再次是二,尽量避免三

7、一个函数承诺只做一件事,避免会做其他被藏起来的事

8、函数要么做某事,要么回答某事,不可二者兼得。如if(set("username", "bob"))...

9、使用异常代替返回错误码;抽离try/catch代码块在最外层,把主体部分抽离出来

10、消除重复代码

11、结构化编程。每个函数代码块只有一个入口和一个出口,但只要函数足够小,可偶尔出现return、break、continue

12、如何写出短小简洁的函数,都是通过很多次打磨代码实现的

一章小结:遵循良好的函数规则,函数就会短小、有个好名字,并被很好的归置。

四、注释

  • 别给糟糕的代码加注释
  • 如果你发现自己需要写注释,再想想能否用代码表达 1、注释不能美化糟糕的代码,少量注释简洁而有代表力,大量注释只会零散复杂

2、用代码来解释注释

3、好注释--有些注释是必须的,如法律信息、提供信息的注释、对意图的解释、警示、TODO注释、公共API里的JavaDoc

4、坏注释--多余的注释、误导性注释、非公共API的JavaDoc、位置标记、如///////////////、括号后的注释、归属与签名、注释掉的代码、HTML注释、信息过多

未完待续。。。