《程序员修炼之道》7 重复的危害 读书笔记

维护工作贯穿整个开发过程。比如需求变化、环境变化,这些都要求我们对软件进行维护。在开发的过程中要遵循DRY原则,才能让软件的维护更容易。DRY原则是:
Tip 11  Don’t Repeat Yourself!

知识(可以认为是需求、规范等)会不断的变化。那么在系统中,遵循“系统中每一项知识都必须具有单一、无歧义、权威的表示”,就会让维护更简单、软件更可靠。比如一个电话簿系统,“什么样的号码是有效号码”这就是个知识,那么对这个知识的表述,在系统中只应该出现一次。可以把他放在一个函数中。如果将来这个知识有变化了,只要在这个函数中进行修改,从而避免遗漏。

 

重复发生的原因有:强加的重复、无意的重复、无耐心的重复、开发者之间的重复。

 

强加的重复是环境要求的,看上去似乎无法避免。比如“多个目标平台各自需要自己的编译语言、库以及开发环境”,那么这时候似乎必然会造成知识重复。但其实也有解决办法。比如编写代码生成器、合理实用注释、文档自动生成。这些工具我还不是很懂,以后慢慢研究。
对于注释,这里讲的比较好。把低级的知识放在代码中,把注释保留给其他的高级说明。注释说明目的和目标,代码才描述怎么做。绝对没有理由在这两种文件之间重复函数或类头注释。注释不能过多。

 

无意的重复:比如类中有几个属性石重复的。那么这需要仔细设计,在设计上避免知识重复。但有时为了效率,需要缓存数据以避免重复昂贵的操作。诀窍是使影响局部化。在C++中,总是用set/get函数读写对象属性,这将使未来增加功能(比如缓存)变得更容易。

 

无耐性的重复:比如直接拷贝现有代码进行修改已达到自己需求。程序员自身需要训练自己,努力克服。

 

开发者之间的重复:要有清晰的设计、强有力的技术项目领导、在设计中进行得到充分理解的责任划分。建立良好的平台和氛围,使开发者主动交流。在源码树种指定中央区域,用于存放实用例程和脚本。善于阅读他人的源码和文档。
Tip 12  Make it Easy to Reuse

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值