《程序员修炼之道——从小工到专家》阅读笔记*part3
第二章结束。其中令我印象深刻,感触颇深的就是“曳光弹”一说。
曳光弹,就是在发生正式的子弹之前的探测弹,给正确的子弹引路。 因为环境相同,也就是相当正式子弹的测试版。
而编代码也要应用曳光弹原理。在一些领导或者客户给你一个需求时,或者去进行一个从前没接触过的全新领域的工作时,如果从头开始准备,计算每一个可能出现的结果数据,分析每一处错误,这样虽然保守且较为精确,但前期的准备工作太多了,在现实工作中没有那么充足的时间给你准备。你需要一个引路的代码。为了在代码中获得同样的效果,我们要找到某种东西,让我们能快速、直观和可重复地从需求出发,满足最终系统的某个方面要求。
![](https://img2018.cnblogs.com/blog/1719618/201910/1719618-20191031172456278-1995511909.png)
这是比较理想的估算方法。估算,使开发变得有约束,而不是三天打鱼两天晒网。
以下是第一、二章的小tip:
1.关心你的技艺 Care About Your Craft
如果你不在乎能否漂亮的开发出软件,你又为何要耗费生命去开发软件呢?
2.思考!你的工作 Think! About Your Work
关掉自动驾驶仪,接管操作。不断地批评和评估你的工作。
3.提供各种选择,不要找蹩脚的借口 Provide Options, Don’t Make Lame Excuses
要提供各种选择,而不是找借口。不要说事情做不到;说明能够做什么。
4.不要容忍破窗户 Don’t Live with Broken Windows
当你看到糟糕的设计、错误的决策和糟糕的代码时,修正它们。
5.做变化的催化剂 Be a Catalyst for Change
你不能强迫人们改变。相反,要向他们展示未来可能会怎样,并帮助他们参与对未来的创造。
6.记住大图景 Remember the Big Picture
不要太过专注于细节,以至忘了查看你周围正在发生什么。
7.使质量成为需求问题 Make Quality a Requirements lssue
让你的用户参与确定项目真正的质量需求。
8.定期为你的知识资产投资 Invest Regularly in Your Knowledge Portfolio
让学习成为习惯。
9.批判地分析你读到的和听到的 Critically Analyze What You Read and Hear
不要被供应商、媒体炒作、或教条左右。要依照你自己的看法和你的项目的情况去对信息进行分析。
10.你说什么和你怎么说同样重要 It’s both What You Say and the Way You Say it
如果你不能有效地向他人传达你的了不起的想法,这些想法就毫无用处。
11.不要重复你自己 DRY - Don’t Repeat Yourself
系统中的每一项知识都必须具有单一、无歧义、权威的表示。
12.让复用变得容易 Make It Easy to Reuse
如果复用很容易,人们就会去复用。创造一个支持复用的环境。
13.消除无关事物之间的影响 Eliminate Effects Between Unrelated Things
设计自足、独立、并具有单一、良好定义的目的的组件。
14.不存在最终决策 There Are No Final Decisions
没有决策是浇铸在石头上的。相反,要把每项决策都视为是写在沙滩上的,并为变化做好计划。
15.用曳光弹找到目标 Use Tracer Bullets to Find the Target
曳光弹能通过试验各种事物并检查它们离目标有多远来让你追踪目标。
16.为了学习而制作原型 Prototype to Learn
原型制作是一种学习经验。其价值并不在于所产生的代码,而在于所学到的经验教训。
17.靠近问题领域编程 Program Close to the Problem domain
用你的用户的语言进行设计和编码。
18.估算,以避免发生意外 Estimate to Avoid Surprises
在着手之前先进行估算。你将提前发现潜在的问题。
19.通过代码对进度表进行迭代 Iterate the Schedule with the Code
用你在进行实现时获得的经验提炼项目的时间标度。