12bet,的读书笔记

重新组织代码

12博体育,抽取不相关的子问题

12博体育,积极地发现并抽取出不相关的子逻辑

  1. 12bet,看看某个函数或代码块,问问你自己:这段代码高层次的目标是什么?
  2. 12bet,对于每一行代码,问一下:它是直接为了目标而工作吗?这段代码高层次的目标是什么呢?
  3. 12bet,如果足够的行数在解决不相关的子问题,抽取代码到独立的函数中。

纯工具代码

将一些纯工具类的代码提取,方便以后重用

其他多用途代码

将一些特定逻辑的代码抽取,能够让代码逻辑更加清晰,更加容易维护,修改和测试也更加简单

创建大量通用代码

通用代码很好,因为“它完全地从项目的其他部分中解耦出来”。像这样的代码容易开发,容易测试,并且容易理解。

项目专有的功能

对于项目的一些孤立的逻辑,也应当抽取出来

简化已有接口

永远都不要安于使用不理想的接口”。你总是可以创建你自己的包装函数来隐藏接口的粗陋细节,让它不再成为你的阻碍。

过犹不及

为代码增加一个函数存在一个小的(却有形的)可读性代价。如果你项目的其他部分也需要这些小函数,那么增加它们是有道理的

一次只做一件事

关键思想: 应该把代码组织得一次只做一件事情。

  1. 列出代码所做的所有“任务”
  2. 尽量把这件任务拆分到不同的函数中,或者至少是代码中不同的段落中。

把想法变成代码

当把一件复杂的事向别人解释时,那些小细节很容易就会让他们迷惑。把一个想法用“自然语言”解释是个很有价值的能力,因为这样其他知识没有你这么渊博的人才可以理解它。这需要把一个想法精炼成最重要的概念。

用一个简单的过程来使你编写更清晰的代码:

  1. 像对着一个同事一样用自然语言描述代码要做什么
  2. 注意描述中所用的关键词和短语
  3. 写出与描述所匹配的代码。

少写代码

所写的每一行代码都是要测试和维护

关键思想: 最好读的代码就是没有代码。

保持小代码库

让你的代码库越小,越轻量级越好

那么你就要:

  • 创建越多越好的“工具”代码来减少重复代码
  • 减少无用代码或没有用的功能
  • 让你的项目保持分开的子项目状态。

熟悉你周边的库

建议:每隔一段时间,花15分钟来阅读标准库中的所有函数/模块/类型的名字

使测试易于阅读和维护

关键思想: 测试应当具有可读性,以便其他程序员可以舒服地改变或者增加测试

普遍的测试原则

对使用者隐去不重要的细节,以便更重要的细节会更突出

让错误消息具有可读性

选择好的测试输入

关键思想: 基本原则是,你应当选择一组最简单的输入,它能完整地使用被测代码。

关键思想: 又简单又能完成工作的测试值更好

为测试函数命名

应当用这个名字来描述这个测试的细节

需要通过名字搞明白这些:

  • 被测试的类
  • 被测试的函数
  • 被测试的情形或bug

对测试较好的开发方式

对于测试来讲理想的代码要有明确定义的接口,没有过多的状态或者其他的“设置”,并且没有很多需要审查的隐藏数据