《代码整洁之道》读书笔记

我们是一群代码猴子,上窜下跳,自以为领略了编程的真谛,可惜,当我们抓着几只酸桃子,得意洋洋坐到树枝上,却对自己造成的混乱熟视无睹,那堆“可以运行”的乱麻程序,就在我们的眼皮底下慢慢腐烂。
代码永存
勒布朗法则:稍后等于永不(later equals never)
一行修改,涉及到了数百个模块,为什么会发生,好代码变成糟糕的代码,不是愚蠢的经历,苛求的用户,而是我们自作自受,我们太不专业了。
能分辨出整洁代码和肮脏代码,并不意味着你就能写出整洁的代码。
漂亮的代码让编程语言就像是专门为解决那个问题而存在。
命名的意义
名副其实:如果名字竟然要注释来补充说明,那就不算名副其实。
避免误导:不要使用过于相似,或者与程序员直觉相悖的命名。
做有意义的区分。注释都是冗余,Variable一词永远不要出现在变量名中。
使用读的出来的名称
使用可搜索的名称。
避免思维映射
名字长短应与其作用域大小相对应,单字母名称仅用于短方法中的本地变量。
不使用前缀。前缀污染眼睛
类名应该是名词或名词短语。不应当是动词,并且不要装嫩,一定要明确。不要图好玩。
命名最好一以贯之
不要双关:避免将同一单词用于不同目的。同一术语用于不同概念。
尽量用计算机科学术语,你的读者都是程序员。如果实在不行,也要使用所涉问题领域的名称。
如果函数有点过长,那么试着创建一个类,名字作为字段。
总之命名的最根本原则就是精确。
函数:
函数的第一原则就是短小,第二原则就是还要再短些。函数20行封顶最好了
if else while语句其中的代码行应该只有一行,该行大抵应该只有一个函数调用语句。
函数应该做一件事,最好这件事,只做这件事。
每个函数一个抽象层级,什么意思呢。比如最高层为调用其他函数。最低位。处理输入输出等。
向下规则就是从高到低的抽象。能够使得阅读代码的人从上到下看的很爽。
函数参数最理想的参数个数为0.其次为1.
标识参数丑陋不堪,向函数传入布尔值简直就是骇人听闻的做法。
如果函数看起来需要两个,三个或三个以上的参数,就说明应该把其中一些参数封装为类来。并且无副作用。
消除重复。结构化编程,单入单出。
注释:
别给糟糕的代码写注释,重写把。
注释是不能美化糟糕的代码的。注释里也可以写写警告。
删除那些注释掉的代码,别恶心人了
不准备自动生成html,就别用html的注释。
格式:
空白行的使用,变量声明应该尽可能靠近其使用位置。纵向上依然遵守前面的调用者在被调用者之前,小函数中,声明放头部。横向上不要超过80个字符吧。。无需滚动条拖动。
对象和数据结构
得墨忒耳律,模块不应该了解他所操作对象的内部情况。
错误处理。
使用异常而不是返回码
不要返回null值。也不要传递null值。
TDD三定律
1、You must write a failing unit test before you write production code. ——测试先行 2、You must stop writing that unit test as soon as it fails; and not compiling is failing. ——测试一旦失败,开始写生产代码
3、You must stop writing production code as soon as the currently failing test passes. ——老测试一旦通过,返回写新测试
整洁测试的三要素。可读性,可读性,可读性。
JUnit是一个开发源代码的Java测试框架,用于编写和运行可重复的测试。
软件 
comments powered by Disqus