《程序员修炼之道:从小工到专家》阅读笔记
这本书是自从进入软件工程系以来所阅读的第二本书,本篇是九月的第二篇阅读笔记,希望在这里记录一些我的感悟。
书中中间几个章节提到了编程相关的技术经验方法,但由于我个人不是很喜欢写代码,所以看的也不是那么感兴趣,有几点我觉得对我来说是可以学习并找机会实践的。一是注重shell环境。因为平时都是GUI界面,“所见即所得”同时可以理解为“所见即全部所得”,shell环境可以通过构建命令序列,让很多事情自动化,可以大大提高生产率。而我很少使用shell命令,所以不太熟悉它的好处,接下来的时间想认真学习一下这部分,感受一下它的高效。二是写代码要偏执。这里的偏执其实是一个褒义词,针对自己的错误进行防卫性编码,减少出错的机率并制定应急方案。要批判的思考所有的代码,让代码变得有价值。三是黑板概念。它解除了对象之间的耦合,提供一个类似论坛的平台,让知识的生产者和消费者可以匿名、异步的交换数据。我觉得这有点像精益软件工程里的kanban,虽然不是一个东西,但其实都是将一个过程可视化,让更多人参与去交换信息,提高生产效率和质量。
书中讲到了一个故事,三个士兵返乡,路上饿了,路过一个村子,想跟村民借点吃的,但村民粮食贫乏不愿意出借。士兵们没有气馁,他们煮开了一锅水,往里面放了几块石头。村民好奇为他们在干嘛,士兵解释,这叫石头汤,如果能放点胡萝卜的话会更好喝。村民跑回家拿来了胡萝卜,士兵说如果放些土豆会更美味,又有人跑回家带来了土豆。后面又有人加了别的东西,最后士兵和大家一起吃了一顿饱饭。有时候你确切的知道自己需要什么以及怎么做,但请求许可这件事往往会遭遇拖延和漠然,每个人都会护卫他们自己的资源,这让事情变得复杂,这叫“启动杂役”(start-up fatigue)。这时候我们不应该等着所有事情都准备好,而应该先拿出“石头”煮起来,就是想让事情启动起来。只要是有益的事情,你把做出的一部分结果拿给别人看,然后告诉他们如果加的别的什么会更好,大家一般都会帮忙的。避免破窗效应。软件开发过程中,有一种类似于热力学定律的“熵”,无序,而且倾向于最大化。尤其是在大型项目上,功能多,交互频繁,更加不可控。假设有一些“破窗”(低劣的设计,错误决策,或糟糕的代码)长时间没有修复,那整个项目就会迅速恶化。修订好轻微破了点的窗户,哪怕是用木板钉起来,或者是挂个名片说明,比如注释掉,或者说明TBD,都可以防止进一步的被破坏。这也是较省事的,说明还处在可控情势,越往后面就越不可控,情势就急转直下,到最后“熵”赢得胜利,项目就失败了。
标签:shell,小工,笔记,程序员,士兵,第二篇,代码 From: https://www.cnblogs.com/wzs-study/p/16736533.html