the5fire的技术博客

关注python、vim、linux、web开发和互联网--life is short, we need python.


像是在滚雪球

作者:the5fire | 标签:   | 发布:2011-05-22 9:46 p.m. | 阅读量: 2313, 2280
还是说这个项目,可能这个项目要持续跟进几年吧。在中途接手这个项目中发现了一些问题,不算是大问题,但是很值得思考。

一开始接手项目开发,对整个结构不是很清晰,各个层之间的类之间的关系以及WebService的关系不清晰,因此这时如果需要我给项目添加新的功能的话,我要做的就是在保证项目原有结构不变的情况下,把需求完整地实现。因为我对某一部分的功能不是很熟悉,更改这部分代码可能或引出很多bug,所以要做的就是添加一个新类,然后在Action中添加调用。

有些功能的实现并不会使得项目中的代码变得臃肿,而有些却使项目不得不臃肿。

比如说你要从nosql数据库切换到oracle,这个相对来说简单一些。就像简单工厂模式的使用,我以oracle的方式实现一个nosql原先实现的接口,然后修改Spring的配置文件就可以了。

但是对于一些其他的需求,比如说在这个页面我需要显示一个这样的效果,读取xxx里面的数据……,这个要做的时候比较复杂,因为我不清楚他原先的DAO或者BLL层实现中是否有这个方法,因此根据保持固有功能没问题的前提下,我需要在action中再写一个方法来实现这部分需求,而不能修改原先使用的action方法。这样导致的后果是最终发布的项目版本中将会有很多冗余代码。

我想对于任何一个开发中的项目,新加进来的开发人员都会这么处理,至少对于一个要急迫发布的项目是如此的,那么一个项目的开发周期有三四年,中间接手的人可能会换了一波又一波,所以整个项目的结构就像是滚雪球,越来越大,并且根据我个人的预期,这样的项目可能没法上线,因为运行效率问题。

对于此种项目——前期需求不确定,随需而改,还要定期演示,比较好的解决方案我个人觉得是在项目需求发掘完成以及演示完成之后,要给一定周期来对项目进行重构,这个重构应该是在项目计划周期之内的,而不是等上线出现问题才开始的。

个人看法,大家踊跃发言。

----EOF-----

扫码关注,或者搜索微信公众号:码农悟凡


其他分类: