12博体育,积极地发现并抽取出不相关的子逻辑
将一些纯工具类的代码提取,方便以后重用
将一些特定逻辑的代码抽取,能够让代码逻辑更加清晰,更加容易维护,修改和测试也更加简单
通用代码很好,因为“它完全地从项目的其他部分中解耦出来”。像这样的代码容易开发,容易测试,并且容易理解。
对于项目的一些孤立的逻辑,也应当抽取出来
永远都不要安于使用不理想的接口”。你总是可以创建你自己的包装函数来隐藏接口的粗陋细节,让它不再成为你的阻碍。
为代码增加一个函数存在一个小的(却有形的)可读性代价。如果你项目的其他部分也需要这些小函数,那么增加它们是有道理的
关键思想: 应该把代码组织得一次只做一件事情。
当把一件复杂的事向别人解释时,那些小细节很容易就会让他们迷惑。把一个想法用“自然语言”解释是个很有价值的能力,因为这样其他知识没有你这么渊博的人才可以理解它。这需要把一个想法精炼成最重要的概念。
用一个简单的过程来使你编写更清晰的代码:
所写的每一行代码都是要测试和维护
关键思想: 最好读的代码就是没有代码。
让你的代码库越小,越轻量级越好
那么你就要:
建议:每隔一段时间,花15分钟来阅读标准库中的所有函数/模块/类型的名字
关键思想: 测试应当具有可读性,以便其他程序员可以舒服地改变或者增加测试
对使用者隐去不重要的细节,以便更重要的细节会更突出
选择好的测试输入
关键思想: 基本原则是,你应当选择一组最简单的输入,它能完整地使用被测代码。
关键思想: 又简单又能完成工作的测试值更好
应当用这个名字来描述这个测试的细节
需要通过名字搞明白这些:
对于测试来讲理想的代码要有明确定义的接口,没有过多的状态或者其他的“设置”,并且没有很多需要审查的隐藏数据