搞开发的几乎每个人都遇到过这样的事情:修改一段别人写的代码,然后觉得这代码写的非常烂,一边加班加点的修改,一边不停的问候着作者的祖宗……
非常不幸,我最近也遇到了这个问题。仔细说起来,这件事情跟我也有一定的关系,当时review工作做的不好,以后也要更加重视这一部分的工作。
这次遇到的问题说起来也简单,就是过分的追求“重用性“,加上没有注释,导致在逻辑上非常难以理解,几乎看不懂。简单的来说,为了重用某一个页面,在这个页面上加了十几个if语句,if来else去的,从总体上来说,减少了页面的数量,但是具体到页面,太过庞大,太过臃肿。这样的架构,导致了这个页面出问题是必然的。而后面修改的人根本无从下手。
软件一般的特点是要降低耦合度,提高内聚度。而提高重用性是降低耦合的一个重要机制。所以大多数书里都在强调如何如何提高重用性。Kent beck在那本经典的《重构》里也提到过重用,是通过一个具体例子,对一段现有代码的重构过程中提到了重用性这个问题的。
大多数新员工也不太重视重用性这个问题,写出的代码能完成工作即可。也许这位同事是为了偷懒,也许是曾经看过这些书,在这个项目中,犯了一个非常重要的错误,为了提高所谓的那点重用性,导致整个功能的不可维护性,一点也不值!
非常不幸,我最近也遇到了这个问题。仔细说起来,这件事情跟我也有一定的关系,当时review工作做的不好,以后也要更加重视这一部分的工作。
这次遇到的问题说起来也简单,就是过分的追求“重用性“,加上没有注释,导致在逻辑上非常难以理解,几乎看不懂。简单的来说,为了重用某一个页面,在这个页面上加了十几个if语句,if来else去的,从总体上来说,减少了页面的数量,但是具体到页面,太过庞大,太过臃肿。这样的架构,导致了这个页面出问题是必然的。而后面修改的人根本无从下手。
软件一般的特点是要降低耦合度,提高内聚度。而提高重用性是降低耦合的一个重要机制。所以大多数书里都在强调如何如何提高重用性。Kent beck在那本经典的《重构》里也提到过重用,是通过一个具体例子,对一段现有代码的重构过程中提到了重用性这个问题的。
大多数新员工也不太重视重用性这个问题,写出的代码能完成工作即可。也许这位同事是为了偷懒,也许是曾经看过这些书,在这个项目中,犯了一个非常重要的错误,为了提高所谓的那点重用性,导致整个功能的不可维护性,一点也不值!