整洁的代码只做好一件事
简单代码,重要顺序:
- 能通过所有测试
- 没有重复代码
- 体现系统中的全部设计理念
- 包括尽量少的实体,比如类,方法,函数等
1. 有意义的命名
1.1 名副其实
1.2 避免误导
别用accountList来指称一组账 ,除非它真的是List类型。用accountGroup或者bounchOfAccounts,甚至直接用accounts都会好一些。
提防使用不同之处较小的名称
不要单独使用小写字母 l 和大写字母 O
1.3 做有意义的区分
1.4 使用读的出来的名称
ymdhms 来指明时间格式的变量
1.5 使用可搜索的名称
使用一个常量来替代具体的数字,例如 WORK_DAYS_PER_WEEK 代替 5,因为数字5很难搜索得到
1.6 避免使用编码
不用String等命令结尾作为一个变量类型的说明,例如 phoneString,用phone就可以;
成员前缀,不用 m_ 来说明是类成员变量
1.7 避免思维映射
循环计数器尽量使用 i j k
1.8 类名
类名和对象名称应该是名词或名词短语,不应该是动词
1.9 方法名
方法名应该是动词或动词短语,属性访问器,修改器和断言应该根据其值命名,并依javabean标准添加上get,set和is前缀
1.10 每个概念对应一个词
1.11 别用双关语
1.12 使用解决方案领域名称
1.13 使用源自所涉问题领域的名称
1.14 添加有意义的语境
2. 函数
短小,函数应该做一件事,做好这件事,只做这一件事
函数参数:尽量不要超过3个
使用异常替代返回错误码
3. 注释
用代码来阐述:简单到只需要创建一个描述与注释所言同一事物的函数即可;
能用函数或变量时就别用注释
3.1 法律信息
法律信息可以指向一份标准许可或其他外部文档,而不要把所有条款放到注释中;
3.2 提供信息的注释
4. 格式
4.1 向 纸学习
4.2 概念间垂直方向上的区隔
4.3 垂直方向上的靠近
4.4 垂直距离
变量声明:应该尽可能靠近其使用位置,因为函数很短,本地变量应该在函数的顶部出现;
实体变量:应该在类的顶部声明,这应该不会增加变量的垂直距离;
相关函数:尽可能放在一起,且最开始调用的函数放在最上面;
概念相关:概念相关的代码应该放在一起,相关性越强,彼此之间的距离就该越短;
4.5横向格式
水平方向的区隔和靠近
水平对齐
5.对象和数据结构
过程式代码(使用数据结构的代码)便于在不改动既有数据结构的前提下添加新函数,面向对象代码便于在不改动既有函数的前提下添加新类
得墨忒耳律:模块不应了解它所操作对象的内部情形
很多面向对象程序设计语言用”.”表示对象的域的解析算符,因此得墨忒耳定律可以简单地陈述为“只使用一个.算符”。因此,a.b.Method()违反了此定律,而a.Method()不违反此定律。一个简单例子是,人可以命令一条狗行走(walk),但是不应该直接指挥狗的腿行走,应该由狗去指挥控制它的腿如何行走。
6.错误处理
别返回null值
别传递null值
7.类
类应该短小
单一权责原则: 类或模块应有且只有一条加以修改的理由
内聚:类应该只有少量实体变量,类中的每个方法都应该操作一个或多个这种变量
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!