阅读笔记四

发布时间 2024-01-07 19:15:39作者: Y丶FZ

(1)整体来说,这本书到底在谈些什么?
本书围绕“注重实效”讲述了关于编程的各种话题,个人责任、拽光弹开发、调试策略、元程序设计、按合约设计、重构、无情的测试,等等。作者认为注重实效的程序员的特征是程序员在处理问题、寻找解决方案时的态度、风格、哲学,他们能够超越直接的问题去思考,总是设法把问题放在更大的语境中,总是设法注意更大的图景。

(2)作者细部说了什么,怎么说的?
作者在短短的300多页的一书中论述的内容非常多,共8章,论述了程序员如何实现“注重实效”。作者论述的逻辑一般是首先解释所提及主题打关键概念,在论述每个小主题时,作者通常(不是所有)列出一个相关的名言警句。例如谈到“需求之坑”时,有“完美,不是在没有什么需要增加,而是在没有什么需要去掉时达到的–Antoine de St.Exupery, Wind, Ssand, and Stars. 1939”。作者会在文中特别给出一些提示,帮助你更好掌握作者的思路,然后会给出一些目标(即建议)指导你怎么在工作中实践作者所提的观点或解决存在的问题。

在书的最后,作者总结出书中的提示和检查清单,在索引“注重实效的程序员之快速参考指南”列出。很容易去查找,看这些就可以复习书中方法和观点,很方便平时温故而知新。

(3)这本书说的有道理吗?是全部有道理,还是部分有道理?
书中很多方法对我来说是很有帮助的,我完全可以根据里面所说的一些建议进行实践,提高自己的编程能力。书本里直接列出了一些提示,目标和挑战,这都是可以直接实践的。例如在注重实效的哲学谈到了定期为你的知识资产投资,列出了这几个目标:

每年至少学习一种新语言。持续投入十分重要,一旦你熟悉了某种语言或新技术,继续前进,学习另一种。
每季度阅读一本技术书籍。
也要阅读非技术书籍。
上课。在本地的学院或大学、或是将要来临的下一次会展上寻找有趣的课程。
参加本地用户组织。
试验不同的环境。
跟上潮流。
上网。想要了解某种新语言或其他技术的各种特性?要了解其他的相关经验,了解他们使用的特定行话,等等,新闻组是很好的方式,上网冲冲浪,查找论文、商页站点、以及其他任何你可以找到的信息来源。
由于我缺乏实践经验,很难鉴别书中所论述的一些我不熟悉的方法是否有效。在今后的工作实践中再来领悟肯定有新的收获。

(4)这本书跟你有什么关系?
即将毕业,我很快将会开始我的程序员生涯,作为编程初学者,我可以书中了解到各种编程技术和方法,根据书中的指引拓展我的编程生涯。

文档生成工具
阅读这本书了解到了写程序文档也是很重要的,介绍了文本操纵的很重要意义。里面提到了作者常用perl语言编写脚本来操纵文本,例如格式化书本、生成程序的HTML文档。我对此还是感到比较新奇,因为从未使用过这样的工具。去网上搜索了一下,果然搜出一大批文档生成工具,例如doxygen,找到两篇博客很好地介绍了相关的文档生成工具:

告别手写 API文档生成工具推荐

Doxygen给C程序生成注释文档

使用文档生成工具的好处是可以更快速的实现文档随代码的变化而自动个更新,免去很多反复修改文档的繁琐重复工作。

注重实效的程序员之快速参考指南
在书的最后,作者总结出书中的提示和检查清单,在索引“注重实效的程序员之快速参考指南”列出。很容易去查找,看这些就可以复习书中方法和观点,很方便平时温故而知新。

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
用你的用户的语言进行设计和编码。
————————————————
版权声明:本文为CSDN博主「Galaxy_Robot」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Galaxy_Robot/article/details/109252860