首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >重写或不重写

重写或不重写
EN

Stack Overflow用户
提问于 2012-02-10 05:45:09
回答 3查看 258关注 0票数 1

所以我需要维护这个旧的遗留项目,其中的一部分是令人惊叹地写与Wordpess,许多糟糕的自定义插件,许多鸭子录音的脚本,解决了一个或其他的问题,数据库被设计得非常非常纯粹,也有其他用Zend编写的部分,这与可湿性粉剂的部分,也有这个其他的“杰作”项目连接到第一个项目的数据。主表包含大约150万条记录,也需要进行规范化。现在这个大钉子球“工作”了,而且它也有很多LOC,这是由于糟糕的基础造成的,所以维护它是一个巨大的痛苦。问题是,在我看来,如果不重写,从长远来看,我们正在失去灵活性,因为从技术和业务角度来看,我们都失去了灵活性,而且它开始不能扩展,但重写是一种风险,再加上我们需要将旧数据转换为新的数据结构。黑客的一部分,我想打破这一点,承担风险,并把它做好,但同时我有一种感觉,我的不成熟试图一口太大的一口。你怎么看?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-10 05:50:44

在你这种情况下,10次中有9次,我建议重写。理性地说,情况a)不会变好,b)肯定会变得更糟。你应该咬紧牙关,以免为时已晚。

我说的太晚了,我的意思是有些东西完全崩溃了,你不仅必须重写整个东西,而且你的服务也将离线(因此,你可能还会失去用户/客户)。

票数 2
EN

Stack Overflow用户

发布于 2012-02-10 05:57:40

在像你这样的情况下,10次中有9次人们建议重写,但他们错了。

除非你对系统正在做什么有很好的应用程序级别的知识,否则你将不能成功、快速地重写它。

如果系统现在还在工作,但在很多方面都很糟糕,而且你有管理层的买断(他们拥有软件)来“修复东西”,那么我建议增量方法通常比全面重写要好。

我怀疑数据库给你带来了最多的麻烦,所以这可能是最好的开始。从理解它目前正在解决的问题开始,并将其写下来。如果在软件和数据库(除了jdbc等)之间没有层,则添加一层。一旦存在将db与应用程序分开的层,则将更容易改变db (和层),同时最小化对应用程序的影响。

在某种程度上,你会对你改变的第一件事感到高兴。在这一点上,修复一些其他部分。重复以上步骤,直到系统变得“更好”。

关于风险:承担风险不是坏事,但粗心大意是可怕的。了解风险并计划缓解风险。

票数 3
EN

Stack Overflow用户

发布于 2013-09-04 02:03:29

在这种情况下,一个好的策略是像Martin Fowler所描述的那样“扼杀”你的应用程序:

http://martinfowler.com/bliki/StranglerApplication.html

其策略是围绕旧系统的边缘逐渐创建一个新系统,让它在几年内缓慢增长,直到旧系统被扼杀。

我已经使用这种方法扼杀了一个遗留应用程序,取得了很好的效果,而且几乎没有离线时间。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9219278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档