【系统架构】遗留系统的技术栈迁移

什么是遗留系统(Legacy System)?根据维基百科的定义,遗留系统是一种旧的方法、旧的技术、旧的计算机系统或应用程序[1]。这一定义事实上并没有很好地揭露遗留系统的本质。我认为,遗留系统首先是一个还在运行和使用,但已步入软件生命周期衰老期的软件系统。它符合所谓的“奶牛规则”:奶牛逐渐衰老,最终无奶可挤;然而与此同时,饲养成本却在上升。这意味着遗留系统会逐渐随着时间的推移,不断地增加维护成本。

维护一个软件系统,就需要了解该软件系统的知识。若知识缺失,就意味着这会给维护人员带来极大的障碍和困难。从这个角度讲,所谓“遗留系统”,就是缺少了一部分重要知识,使得维护人员“知其然而不知其所以然”的软件系统。

若要让遗留系统焕发青春,最彻底的做法自然是推倒重来,但这样付出的代价太高;而且,即使对系统重新设计和开发,仍然免不了会重蹈遗留系统的覆辙。或者,可以对遗留系统进行重构,在不修改系统功能的情况下改善系统设计。只是这种重构常常是对系统进行重大扩展或修改的前奏,如无绝对必要,并不推荐这种偿还“技术债务(Technical Debt)”的方式。重构应与开发同时进行,而不应将其作为债务推迟到最后,以至于支付高昂的利息。最后,还有一种方式,则是对遗留系统进行技术栈迁移。

原文发布于微信公众号 - 逸言(YiYan_OneWord)

原文发表时间:2014-08-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏飞总聊IT

从GitLab事件谈我的经历

先上个图,给各位程序猿们拜个年 ? 悲剧年年有,今年到GitLab家。著名的GitLab这几天在Tech界登上了头条,登上的原因是因为运维人员使用了rm -rf...

39010
来自专栏CIT极客

极客周刊丨鬼畜时代或终结,QQ账号可注销,IOS 11被爆出严重BUG...

3117
来自专栏开源项目

9款开源教学管理系统 | 码云周刊第 73 期

5614
来自专栏沃趣科技

错过“kubernetes存储系列”这门课,你肯定会后悔

前几天,我们就有说过,沃趣科技将陆续推出多系列特别值得期待的课程。今天,我们终于可以让第一个系列的第一期课程与你正式见面了。

972
来自专栏程序工场

程序员新人怎样在复杂代码中找 bug?

1484
来自专栏java一日一条

重新使用Java的七个理由

O’Reily正在庆祝Java7的发布,以及7月25日到27日即将在波兰开展的 OSCON Java 大会。

791
来自专栏安恒信息

见招拆招 六招轻松抓住代维违规的“黑手”

所谓“代维”,是指企业将自己的IT系统外包给第三方进行包括系统配置、日常运维、系统管理等管理权限的操作。让专业的人干专业的事,这可以使企业本身从繁重的IT运维中...

3125
来自专栏FreeBuf

黑暗搜索引擎Shodan Chrome插件

今天小编为各位推荐的是Shodan Chrome插件,它可以自动探测网站所属的国家、城市,谁是这个网站IP的主人以及其开放的服务和端口,包括FTP、DNS、SS...

24910
来自专栏维恩的派VNPIE

2018年vn.py项目计划(下)

2017年完成了大部分计划中的上层应用模块开发,剩余部分将在今年上半年加速推进,争取早日发布v2.0稳定版,为量化交易员提供一套完整成熟的交易系统解决方案。 D...

4598
来自专栏罗超频道

入口之争:浏览器的战史与未来

在上一篇文章里,笔者分析了国内浏览器的竞争状况。这篇文章,我们不妨将视线从“泥浆”中抽出来,了望下历史与远方。 一、浏览器世界战争史 第一次浏览器大战微软IE通...

2877

扫码关注云+社区