UP | HOME

Book note:《卓有成效的程序员》

Table of Contents

第一章 注重实效的哲学

5 你的知识资产

提示8:定期为你的知识资产投资
  • 每年至少学习一种新语言
  • 每季度阅读一本技术书籍(也要阅读与项目无关的书籍)
  • 也要阅读非技术书籍(计算机是由人使用的)
  • 上课
  • 参加本地用户组织
  • 实验不同的环境
  • 跟上潮流:杂志期刊
  • 上网

思想的“异花授粉”非常重要。

第二章 注重实效的途径

7 重复的危害

可靠地开发软件,并让我们的开发更易于理解和维护的惟一途径,是遵循我们称之为DRY的原则:

系统中的每一项知识都必须具有单一、无歧义、权威的表示。

提示10:DRY:Don't Repeat Yourself. 不要重复你自己。

与此不同的做法是在两个或更多地方表达同一事物,如果你改变其中一处,你必须记得改变其他各处。

重复是怎样发生的

  • 强加的重复
  • 无意的重复
    重复来自设计中的错误。
  • 无耐性的重复
    时间压力,懒惰——欲速则不达。
  • 开发者之间的重复
    鼓励开发者进行交流。

8 正交性

正交性:表示某种不相互依赖性或是解耦性。

提示13:消除无关事物直接的影响。

编码
避免编写相似的函数。重复的代码使结构问题的一种症状。
养成不断地批判对待自己的代码的习惯。寻找任何重新进行组织,以改善其结构和正交性的机会,这个过程叫做重构。

第三章 基本工具

提示20:用纯文本保存知识
提示21:利用命令shell的力量
提示22:用好一种编辑器
  • 编辑器将成为你双手的延伸,键会在滑过文本和思想时歌唱起来,这就是我们的目标。
提示24:要修正问题,而不是发出职责。
  • bug是你的过错还是别人的过错,并不是真的很有关系。它仍然是你的问题。
提示28:学习一种文本操纵语言。

第四章 注重实效的偏执

提示34:将异常用于异常的问题。
提示35:要有始有终。

第五章 弯曲或折断

提示36 使模块之间的耦合减至最小

第六章 当你编码时

我们应该避免靠巧合编程——依靠运气和偶然的成功——而要深思熟虑地编程。

重构

重写、重做和重新架构代码合起来,称为重构。 无论代码具有下面的哪些特征,你都应该考虑重构代码。

  • 重复。
  • 非正交的设计。
  • 过时的知识。
  • 性能。
提示47:早重构,常重构

第七章 在项目开始之前

提示51:不要搜集需求——挖掘它们。

找出用户为何要做特定事情的原因,而不只是他们目前做这件事情的方式,这很重要。到最后,你的开发必须解决他们的商业问题,而不只是满足他们陈述的需求。

提示52:与用户一同工作,以像用户一样思考。
提示58:不要做形式方法的奴隶。

第八章 注重实效的项目

提示61:不要使用手工流程。
提示62:早测试,常测试,自动测试。

事实上,好的项目拥有的测试代码可能比产品代码还要多。编写这些测试代码所花的时间是值得的。

Date: 2012-12-17

Author: 马楠

Created: 2014-10-25 Sat 14:21

Emacs 24.3.1 (Org mode 8.2.10)

Validate