第二章 注重实效的途径
1. 重复的危害:可靠的开发软件、并让我们的开发更易于理解和维护的唯一途径,是尊徐我们称之为 DRY的原则:系统中的每一项知识都必须具有单一、无歧义、权威的表示。< 不要重复你自己 >在两个或更多地方表达同一事物时,若果你改变其中一处,你必须记得改变其他各处重复范畴:1)强加的重复:开发者觉得他们无可选择 ------ 环境似乎要求重复2)无意的重复:开发者没有意识到他们在重复信息开发过程中,会因为性能原因而选择违反 DRY原则,这经常会发生在需要缓存数据,以避免重复昂贵的操作。诀窍是:使影响局部化。3)无耐性的重复:开发者偷懒,他们重复,因为似乎那样更容易。时间压力:驱使最优秀的人走捷径的力量一种最容易检测和处理的重复形式,此时需要你接受训练,并愿意为避免以后的痛苦而预先花一些时间4)开发者之间的重复:同一团队(或不同团队)的几个人重复了同样的信息最难检测和处理的重复处理此问题的最佳方式:鼓励开发者相互进行主动的交流(论坛,交流组)
2.正交性:如果两条直线相交成直角,他们就是正交,比如坐标轴。用向量的术语说,这两条直线互不影响。沿着某一条直线移动,你投影到另一条直线的位置不变。非正交系统的改变与控制更复杂我们要设计自足的组件:独立,具有单一、良好的定义的目的和。正交系统的优点:1)提高生产效率改动得以局部化,开发时间和测试时间降低正交的途径还能够促进复用若果对正交的组件进行组合,生产率会有相当微妙的提高2)降低风险正交的途径能降低任何开发中固有的风险,有问题的代码区域被隔离开使系统更健壮,正交系统很可能得到更好的测试不会与特定的供应商、产品、平台紧绑在一起,在工作中应用正交原则的几种方式:1)项目团队2)设计3)工具箱与库( EJB,面向方面编程 AOP)4)编码5)测试6)文档:坐标轴是内容合表现形式
3.可撤销性如果某个想法是你唯一的想法,在没有什么比这更危险的事情了。< 不存在最终决策 >每当有两种可能结果的牙合反应发生时,宇宙就会被克隆。在其中一个宇宙中个,事件发生,另一个宇宙中,事件不发生。
4.薛定谔的猫:在一个封闭的盒子中有一只猫,还有一个放射性粒子,这个粒子有 50%的机会裂变成两个粒子,若果发生裂变,则猫被杀死;如果没有,则猫没有事。那么,猫是死是活?根据薛定谔的理论,答案是”都是“。只有打开盒子时,你才知道你在哪一个宇宙里。
5.曳光弹:< 用曳光弹找到目标 >
曳光代码方法的优点:1)用户能够及早看到能工作的东西2)开发者构建了一个他们能在其中工作的结构3)你有了一个集成平台4)你有了可用于演示的东西5)你将更能够感受到工作的进展
估算:在进行估算的过程中,你将会加深对你的程序所处的世界的理解。通过学习估算,并将此技能发展到你对食物的数量级有直觉的程度,你就能展现出一种魔法般的能力,确定他们的可行性< 估算,已避免发生意外 >进行估算时,要注意解答问题的语境(精确 / 大概)1)多准确才足够准确2)估算来自哪里:已问题模型为基础3)理解提问内容4)建立系统的模型5)把模型分解为组件6)给每个参数指定值7)计算答案8)追踪你的估算能力9)在被要求进行估算时说什么