《程序员修炼之道:从小工到专家》阅读笔记二

  第二章:注重实效的途径

  一.重复的危害

  在程序中重复的危害辨识定义变量无法重复,你必须使自己定义的变量具有唯一性,并具有意义,这个是最基本的要求,在强加的重复中,我们可以编写简单的过滤器或者代码生成器,使重复变得简洁,在文档中则需要将注释放在较为高级的代码中,低级的代码不需要注释,在无意的重复中,则是我们在逻辑上要辨别的清楚,那些变量可以通过前几个变量获取,而不是需要自己重新定义一个变量来完成这个操作。在无耐性的重复中,我们需要建立自己的代码库,方法库,这样调用的时候便不需要重复地复制之前的代码并做修改。在开发者之间的重复中,我们需要鼓励开发者之间的交流,这样才能有效的避免。

  二.正交性

  正交在计算机技术中来说便是某种不相依赖性或是解耦性,在数据库中便是数据与程序开始独立存在,在编程中最大的不正交就是将所有的代码都放在主程序中,而老师一直强调的就是一定要将功能模块化,单一化,每一个方法只有一个功能,以前的时候我还不太懂,为什么写一个代码,要调用各种方法,导致我阅读代码也是跳来跳去,现在看来,的确是自己无知,将所有代码放在一起,那么一旦某个地方有毛病,修改起来也不方便,模块的作用在于方便替换,接口正确就可以换成新的模块。或者对就模块做小的改动与修正就可以。

  三.可撤销性

  当我们做出任何决定的时候都应该为自己留条后路,这不是在变量前面加上final变成了最终决定,一旦我们所依附的条件改变了,我们的行为还能否改变,使自己的损失达到最小。

  四.曳光弹

  在遇到自己没有解决过的问题时,我们需要使用曳光弹来慢慢地靠近目标,就像我在编写APP上面的功能时,都喜欢用一个Button来测试一下,测试成功之后再一步步的添加新的功能,最后完全实现,然后添加到工作产品中。这其实也是在给自己一个心理暗示,我在往正确的结果慢慢靠近。实验代码不一定要完全正确,他的目的在于让你通过修改靠近正确。

原文地址:https://www.cnblogs.com/heiyang/p/10962273.html