如果有这么一个项目你该如何去重构呢?
1.三个独立的项目使用一个数据库。数据库没有E-R实体模型,没有设计文档,也没有任何关系图,表之间没有外键关联(意味着逆向工程不可用),所有表关系、数据完整性和约束全部由存储过程控制(10年前这么干过,但今天居然又看见了,感概啊!)。
2.项目没有设计文档,只有一个接口文档,接口中有部分参数意图不明,也没有人能够解释意图不明的参数出现的理由
3.代码中没有任何注释,主要靠英文名字去猜。框架运用的是spring+mybatis,但spring+mybatis使用方式居然使之无法使用事务。也不支持任何的对象缓存,也没有设计查询缓存的调用。
4.也没有做到接口与实现类的一一对应,很多实现类调用一个接口,增加耦合度不利于扩展,而且需求变更接口一动全得动
5.代码中全是警告,没有工整性,代码俨然就是给机器读的,难于阅读和理解。
我在想这样的项目个人认为已经失去了重构的意义,因为需要动的地方太多,首先数据库、设计、代码基本都没有任何留用的价值。但公司领导一直发出的信息就是“数据库尽量延用!程序接口尽量延用”。我感到可怕,这样的项目有太多风险不可控了,怎么延用啊?
真正的重构首先要:基于代码易读、工整、严谨,代码测试的完善,数据库设计的合理和科学。其次就是才能按模块的逐步重构和修改。
数据库的混乱、代码基于机器可读,这样的项目还有重构的价值吗?
分享到:
相关推荐
重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt
重构重构重构重构重构重构重构重构重构重构
r重构r重构r重构r重构r重构r重构r重构r重构r重构
对经验模态分解后的各分量IMF进行重构代码,函数可直接调用。
经典软件重构 经典软件重构 经典软件重构 经典软件重构 经典软件重构
名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构名著重构...
资源名:用于信号的EMD、EEMD、VMD分解_vmd重构_故障诊断emd_故障诊断_故障重构_VMD信号重构 资源类型:matlab项目全套源码 源码介绍:用于信号的分解、降噪和重构,实现故障诊断 源码说明: 全部项目源码都是经过...
网站重构,WEB标准,WEB2.0,公用模板重构,ppt
因此,我利用空余时间制作了这样的一本中文的chm版重构,希望对大家有所帮助,也算对中国软件业做出一点小小的贡献。 本书基本上是取自”重构”中文版一书的内容,但格式上参照的是chm英文版的格式,还有一些格式小...
项目重构方案模板、项目重构方案模板ppt,项目重构方案计划模板
代码重构 重构与模式
重构——改善既有代码设计,经典文档,架构师必须教程
1. 重构的目的:为什么重构(why) 2. 重构的对象:重构什么(what) 3. 重构的时机:什么时候重构(when) 4. 重构的方法:如何重构(how)
JAVA 代码重构 JAVA 代码重构 JAVA 代码重构 JAVA 代码重构 JAVA 代码重构
三维重构 可以检测有效的系统缺陷,进行缺陷的定位,缺陷体积的测量等,如何进行三维重构(3D reconstuction)的输入是各种三维以下的数据,比如纯二维的RGB图像(序列)、带有深度信息的RGBD数据等,出来的是三维...
《重构 改善既有代码的设计》清晰揭示了重构的过程,解释了重构的原理和实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了70 多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机...
《重构与模式》开创性地深入揭示了重构与模式这两种软件开发关键技术之间的联系,说明了通过重构实现模式改善既有的设计,往往优于在新的设计早期使用模式。《重构与模式》不仅展示了一种应用模式和重构的创新方法,...
“所谓重构(refactoring)就是这样一个过程:在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构.哪怕你手上有一个糟糕的设计,甚至是一堆混乱的代码,你也可以借由重构把它加工成良好的代码.”
31天重构
重构英文版 M. Fowler, K. Beck, J. Brant, W. Opdyke and D. Roberts 重构(Refactoring)是指在不改变软件系统外部功能的前提下,对软件系统的内部结构重新设计,以提高代码的可复用性和可扩展性等质量。本书是...