程序员的修炼之道阅读笔记03
今天我读的是注重实效的途径中曳光弹一节,此处运用比喻或是类比的方式来描述代码交付或是完成的一种方式。
在此之前首先要了解一下曳光弹的定义,在黑暗中机枪射击有两种方式,第一种你可以找出目标的确切位置(射程、仰角以及方位)。你可以确定环境状况(温度、湿度、气压、风等)。你可以确定你使用的弹药和子弹的精准规格。以及他们与你使用的机枪的交互作用。然后你可以用计算表或计算或设计计算机计算枪管的确切方向以及仰角。如果每一项都准确无误,没有产生其他的变化,那子弹应该能落到目标不远的区域。
第二种就是使用曳光弹,将曳光弹与常规子弹交替装在弹药带上,发射时曳光弹中的磷点燃并留下一条烟火般的踪迹,如果曳光弹击中目标,则常规子弹也能击中,这种方式的好处是更方便以及能得到实时反馈,它与常规子弹相处与相同的环境中,外部影响可以降到最小。
这同样类比于你所创建的从未接触过的项目之中,面对不确知的需求,或者不熟练的技术,面对可能更改的需求,用类似曳光弹的方法能更快捷的令你正中目标,一个注重实效的程序员往往更加喜欢使用曳光弹。曳光开发和永不会结束的理念是一样的:总有改动需要完成,总有功能需要增加,这是一个动态的,渐进的过程,而另一种传统的做法是确定项目的需求,划分模块,完成子配件,最后完成配件的安装测试,将成品交予客户,这种方式繁重而复杂,如果需求改动则可能改到天翻地覆。
曳光开发的许多优点:
使用户能够及早的看到实际产品,客户会即使告诉你现在的工作距离他们的预期有多远。
开发者构建了一个他们能在其中工作的结构。
有了可用于演示的东西,而且更能感受到工作的进度情况。