命名
做有意义的区分
例如:Product类,如果还有ProdcutInfo或者ProduceData,意义无差别,让阅读者无法区分。
别写废话
例如:
使用读得出来的名称
别使用无意义的名称
例如:变量a,b等
函数
1.使用异常而非返回码
这样可以使代码正解,逻辑不会被错误处理搞乱。
2.如果抛出异常很多,造成代码重复,可以对多个异常进行封装。
3.别返回null值,别传递null值
4.别害怕长名称。长而具有描述性的名称,要比短而令人费解的名称好。
5.不使用标识参数。标识参数丑陋不堪,向函数传入布尔值简直就是骇人听闻的做法。因为这在大声宣布本函数不止做一件事。如果标识为true将会这样做,标识为false将会那样做。
正确的做法应该是将函数一分为二。
6.参数如果两三个以上,可以考虑封装对象。
7.询问和动作指令要分开
函数要么做什么事,要么回答什么事,但二者不可以兼得。函数应该修改某对象的状态或是返回该对象的有关信息。
注释
最好的注释是函数自己能够解释
注释不能美化糟糕的代码
我们编写一个模块,发现它令人困扰、乱七八糟。我们知道它烂透了。我们告诉自己:喔,最好写点注释。不,最好是吧代码弄干净。