(一)
每段代码只做好一件事、
标准:
1、能通过所有测试
2、没有重复代码
3、体现系统中的全部设计理念
4、包含尽可能少的实体, 包括类、方法、函数
每次修改后比修改前更整洁!
(二)命名!
1、用有意义的命名!不要怕名字太长 list1,
2、尽量不要用accountList这类的名字,尝试使用accoutGroup或者bunchOfAccounts,避免引起误会!避免l, 0, o, 1, 这种相近的。
3、做有意义的区分。Info和Data就是没用的废话。Variable永远不要出现在变量名中!Table永远不要出现在表名中!必须要让读者能鉴别出区别:
e.g.
getActiveAccounts()
getActiveAccountInfo()
这两个函数有什么区别呢??
4、需要能读出来的名字
5、使用可搜索的名称!名字长短应该与作用域配合。i, j, k这种只适用于短方法的本地变量。使用短类、短方法,让变量随时可见。
6、避免使用编码,明确为主!!
7、添加有意义的语境
e.g.
如果看到firstName, lastName, street, houseNumber, city, state, zipcode, 一起的话很明显构成了一个地址,但是如果单独看到了state呢?
一个可行的办法是都加上addr前缀,像是这样addrCity, addrState,更好的解决方式是将他们放入Address类中。
8、不要添加没用的语境。在做一个加油站的App的时候,没必要每个类都加上GSD前缀。
(三)函数参数
1、要短小,函数只说一件事,而且把你带到下一个函数。
2、每个函数一个抽象层级:也就是说,不要把不同层面的细节放入同一个函数中,这样会使可读性显著变差。
3、switch的东西,最好写成工厂方法或者抽象工厂。
4、如果函数的参数多于3个,可能就要将一些封装成类了。
5、一般来讲,最好避免使用输出参数,最好改变对象的状态
6、无副作用