周报 6月9日
RTX-周报
6月9日
.卡组的人把mall和merchant公用的功能写在merchant里,我在mall没法调用;而且他把好几个功能写在同一个方法里,条理乱,还是按C语言的面向过程的编程风格,缺乏基本的面向对象编程的意识。注释也写得不清楚,有的地方注释跟代码根本对不上号,有些注释纯粹是写给他自己看的。再加上,有些地方还是调用去年的旧代码,这部分代码更是零注释,可读性极差,要看很久才知道是干什么用的。花了几天时间,算是明白了整个功能的实现原理,但过一段时间肯定又忘了,一旦需求变更,又得重新看一遍,维护的成本非常高。
经常出现的情况是,实现同一个功能,有去年的旧的、不再使用的方法,有最近新写的方法,无法区分该使用哪个。可能..中心用的是去年旧的方法,..中心改用了新的方法,而且一般情况下两个效果都一样,页面上根本测不出来两个的不同之处,要慢慢去代码里找,看究竟哪里不同。
由于他的注释实在是欠缺,我一开始根本没发现他已经写了这部分功能,搞得我自己又从头写了一个。我写到后面的时候,看着代码,看着看着突然发现这几行好像在哪里见过,然后进-merchant的项目里,果然在Action里面有同样的功能。既然.卡组的人已经写好了,我不能自己又写一个,这是违反重用的原则的。也会让明年的人继续迷惑,为什么同一个功能,搞出来3个方法,..中心写一个,..中心写一个,..中心又写一个。 对于这种问题,我认为唯一的办法是中途不要换人,一个功能由一个人维护到底,三年不变,五年不变,如果能做到这一点,就算同一个功能重复写了5个方法,分别藏在5个不同的类,注释一共才20个字,也不会有大的问题,只要这个人自己能搞清楚就行了。