程序员修炼之道(二)

程序员修炼之道

第二章

注重时效的途径

1.重复的危害

1.强加的重复,好代码需要注释,糟糕的代码需要很多注释。注释也是在重复你的知识;
2.无意义的重复,如一个line类,有start,end,length的设计就可以不用作为一个输入的量,而是end-start的计算值;
3.无耐性的重复,项目的压力让我们重新去别的地方copy代。这样只能欲速则不达;
4.复用别人的代码

2.正交性

正交性:两条直线互不依赖,沿着一条直线移动,你投影到另一条直线上的位置不变。
计算机中的正交性:不依赖性或解耦性

保证正交性,可以消除无关事务之间的影响,提高生产率和降低风险。
也就是常说的高内聚低耦合。

如何设计出正交的系统?

  1. 设计的时候不停地询问自己,如果我显著的改变了某个特定功能背后的需求,多少个模块会受到影响? 如果是一个, 那么就是正交的。
  2. 让你的代码保持解耦。
  3. 避免使用全局数据。
  4. 避免编写相似的函数。

3.可撤销性

如果某个想法是你唯一的想法,在没有比这更危险的事情了

随着软件开发的进度,每个关键决策的做出,项目团队受到越来越小的目标,拥有越来越小的选择目标。

上述情况是非常危险的,可撤销性也主要讲的是,将你的决策写在沙滩上,而不是刻在石头上。如果你的项目在开发时候选择A数据库,开发的过程中发现B数据库更好,你要能保证可以中途更换,而不是重头再来。

4.曳光弹

曳光弹和子弹交替安装在弹药带上,曳光弹会在枪口和目标中留下痕迹,如果曳光弹击中目标,子弹也会击中目标。

如同第一章所讲到,用户宁可选择今天不完美的软件,也不会选择一年后完美的软件。不完美的软件就如同曳光弹,指导我们去击中目标。
同样也让用户更早的看到能过的东西,开发者有了可演示的环境,更清楚的了解工作进展。
但曳光弹也并非总能击中目标,他就类似一个原型。

5.原型与便笺
6.领域语言
7.估算
如何做到准确的估算?
估算以问题模型为基础。
1. 了解提问的内容,如:没有交通意外,车有足够的油,我会在20分钟赶到;
2. 对于面对的问题,进行粗略的模型整理;
3. 将模型分解为一个一个的组件;
4. 对每个参数指定数值,如同对每一步进行估值;
5. 计算答案,预留合适的缓冲;
6. 追踪估算,对每次估算进行评估,减少自己的错误;

猜你喜欢

转载自blog.csdn.net/u011391773/article/details/80515884