谈论不该存在维护软件的程序员
引用 方棱 文章
小软件不谈,这里说的是大型软件。
一个软件如果做好了,它就有它的功能,别人只要使用这些功能,程序员就应该休息了。只有出现明显的BUG才需要他们重新回去做修理。但是,现在存在一些程序员,一旦发现软件可以有一个改进的地方,就上去弄一下,打一个补丁。本人认为这是非常不合理的。
因为只要软件做好,它的功能应该是一个比较紧凑的空间,在这个空间里面,各个方面被考虑到,程序的逻辑也被完好的组织,运行起来比较稳定。所以,假如某个时候发现需要通过更改代码来“优化”某个地方的话,那么这个地方一定是当初设计的时候没有考虑到的地方。俗话说:小荷刚露尖尖角,这个地方如果被一个补丁程序来突破,那么这个软件将会被带到一个更大的,未考虑到过的空间中。随之而来的,就是由这个尖尖角和系统原有程序的结合,产生的新问题(我的话:空间多了一维)。如果随着时间的推移,一个个补丁上去,系统表面有n多个角,最终结果无非是系统越来越不稳定而崩溃。
本人的解决方法是,如果发现有东西需要优化,第一方面要把这个东西和其他各个东西的关系搞清楚,确定把要做的事情做“园”;第二个方面,等一等,等等看以后会不会有新的需要优化的地方,如果这个地方和第一次优化有不少联系,那么两次结合起来一起做可以大大的节约成本,甚至可以大过因为早一步推出第一个补丁带来的效益;第三个方面,如果积累的地方太多,那就不妨重新考虑一下整个系统,把新的,旧的,放在一起,整合一下,改动甚至推翻以前的系统,重新当作一个大项目来做。
故:一个项目做好(所有BUG都FIX掉了),程序员应该会有2-3个月的空闲时间,项目越大,空闲时间越大,其间程序员除了收集建议,不应该做任何事情。而两个软件之间也不应该有过渡版本(补丁版本),甚至可以是完全不同的。
注:要出人命的紧急事情除外。
总之理想只是理想而已,内存的管理始终是大问题,更不用说逻辑了……一个小程序的状态管理就能超过人的管理能力的极限。