《Pragmatic Programmer》读后感(二):从重复到重用,路在何方?

来源:互联网 发布:mysql数据库实训 编辑:程序博客网 时间:2024/05/22 18:22

    《程序员修炼之道》一书中提到了一个非常重要的原则,即DRY(Don't Repeat Yourself),给了笔者很大的启发,更让笔者深深感到要在实践中不折不扣地遵循这个原则,实现从重复到重用的转变,这中间仍需要很长的道路要走。

    先谈谈笔者开发过程中所看到的重复现象。抛开文档重复、功能重复等现象不谈,但就代码重复方面就有许多非常需要做进一步优化改进的地方。譬如,因为项目开发需要,笔者曾编写了一个文件扫描的模块,该模块中包含了读写配置文件的若干操作;而同属一个项目组的另一个开发同事,恰好也需要实现其中读配置文件的类似功能,笔者原本以为其会直接使用或者说是稍加修改地使用笔者曾经编写的这个模块中的部分接口(毕竟这部分的代码还属于初步的,该开发同事拥有修改的自主权),然而,其并没有这么做,相反,在笔者作代码审查的时候发现其将其中的部分代码copy出来并组织了一个看似新的而本质却一样的方法。于是乎,代码的重复就这样产生了,并且是显而易见的。

    笔者在这里列举上述的例子并非是批评指责该开发同事,笔者在工作过程中一直都努力遵循对事不对人的基本原则。如果真要论是谁之过,那只能说是项目组对整个开发过程并没有完全达成共识,而这其中笔者就应该承担一定的责任了。毕竟,作为该项目组的所谓负责人,笔者没有充分利用各种资源对项目组内开发人员进行很好的组织。

    再回过头来看看这个重复的问题吧,又岂是仅仅笔者上面提到的这种情形?其实,如果仔细再审查一下代码,诸如此类的重复问题竟是如此地普遍!笔者愈发感觉到这事情的严重性了,若是再不采取有效措施进行优化改进,那么恐怕这就会成为一个烂尾工程,更别说可维护性了。

    于是,笔者最终下定决心,每天挤出一定时间,将项目组成员召集在一起,共同针对项目开发过程中出现的诸多重复问题、破窗户问题等等进行讨论并形成可行的解决方案,然后付诸实际行动,解决之。这样持续了将近一周,代码质量得到了明显改善。

    当然,代码质量的显著提高,也直接或间接地带来了代码复用的好处。正如书中所说,你要做的就是营造一种环境,在其中要找到并复用已有的东西,比自己编写更容易。的确,这条道路就是这样走出来的。

    也许,很多朋友在刚开始编写代码时都可能出现过代码重复的现象,但其实这也没有什么好可怕的,一旦发现了代码重复,要做的或许应该是沟通、改进并努力让复用变得更为容易。

    从重复到复用,这对于单独行动的朋友来说,重复的风险或许没有那么高,代码复用也或许会更容易一点,毕竟项目的生死大权都掌握在自己手中;但对于团体作战的项目组来说,重复的风险就会高很多,代码能够更好地被复用,很多时候取决于团队成员的开发共识。只要共同努力,从重复到复用的转变,其实也不是很困难的事情。