一个棘手问题

10-07-22 tonyshen
各位道友,小弟最近接手了一个四手项目,也就是说这个软件已经有3批人在这个公司开发过,然后又做不来,都相继的离职了。

项目是一个小型的网络管理软件,粗略看了一下代码,不超过10万行,简单的jsp+servlet+jdbc,没有应用任何的框架。3

层架构,以数据库为核心进行设计。客户是一些地方的广电,目前客户大概有20家左右。

现在的问题是:1.升级问题:广电的需求基本上是今天要这个功能,过了一个礼拜他们可能就要另外一个功能,而且一旦新的

功能完成后,他们就要求立马给升级。升级的时候就是先把原来的数据备份一份,然后安装新的软件,然后将数据恢复进去。问题

就出现了,新添加的功能可能与之前的逻辑,数据有关联。也就是之前的逻辑中可能有这样的操作,就是在两张数据表中同时插入

数据,可是旧的版本中只有一张数据表。也就是新安装的软件中有一张关联的数据表是空的。那就要自己写代码去实现,通过查询

其他数据表中的内容,将对应的数据,拷贝到新的表中。更可怕的是可能不是一张新建的表,也许是在某个旧有的表中新增了一个

字段,又要写代码去实现将数据添加到这个新字段中,否则新的功能就无法实现。这样实在是太麻烦。

2.各个客户的需求不一样:同一个软件,这个客户要这个功能,另外一个客户可能要另外一个功能,公司人手

又不过,就我一个人在做,所以不可能写几套软件出来,一定要在一个软件中把各个客户的需求都集中在一起。这可能就会导致某

些界面不好看,因为好多功能集中在一起。

3.因为是3批人写过的代码,粗略看了一下,就觉得比较乱,同一个功能,这个类中写了一个方法,然后另

外一个类中又写了一个。

这个项目接手5天,打算重新设计,怕时间来不及。因为原来的版本问题实在太多,在原有的基础上写,有点越写越乱的感觉。

xinchi
2010-07-23 05:54
重构是一门很深的学问,一点一点,一部分一部分的重构。需要技术上的,风险上的,进度上的,多方面的协调能力。

猜你喜欢