重写软件会有哪些风险?

2020 年 9 月 08 日

重写软件会有哪些风险?

本文最初发布于 Ben Northrop 的个人博客,经原作者授权由 InfoQ 中文站翻译并分享。

重写带有一种欺骗性的诱惑,其逻辑看上去是这样:

这个系统已经应用于生产环境,我们很显然知道它是如何工作的,因此只要将其移植到一个更好的平台,一旦我们完成这项工作,事情就会变得更简单。

我们在本文将批判这种基于直觉的认识。你会看到,重写绝非易事。尽管我们不受新应用程序部分挑战的影响,但我们也会碰到前所未有的全新挑战。为了成功地完成重写,我们必须应对这些挑战,因此提前了解有什么挑战很有必要。

在冒险重写之前,让我们讲述一个快速的起源故事,看看我们是怎么走到这一步的?

开始

这一切都始于绿地开发( Greenfield Development )阶段。在这个阶段,我们萌生一个想法,开始构建一款功能强大的应用程序。经过数周或几个月的不懈努力,我们最终向市场发布了一款产品。当然,这个“市场”既可能是真正的付费用户,也可能是一组内部业务用户等等。

如果应用程序很受欢迎,在一段时间内,它会处于增强( Enhancement )阶段,添加新功能,解决缺陷。这是个平衡阶段,每个人都是快乐的。最终, 技术债务会不断累积,我们开始发现,我们努力工作的回报在递减——在过去,一周的开发足以添加一个完整的新功能,但现在,可能都不够改变按钮的颜色。

原文链接:【 https://www.infoq.cn/article/1V6x4hsvWhsW8jMGMclD 】。未经作者许可,禁止转载。

登录后可解锁全站优质内容

免费畅享技术公开课、顶尖技术团队访谈、一线互联网大厂技术实践

文章
视频
电子书
研究报告
立即登录
2020 年 9 月 08 日 08:00 858
用户头像

发布了 0 篇内容,共 221 次阅读,收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

《Java并发编程的艺术》读书笔记1:说说并发编程

Jason

多线程 并发

“云”上教与学,让教育不止步于课堂

Geek_116789

程序员陪娃系列——见你的第一面

孙苏勇

程序员人生 陪伴 随笔杂谈

数据库外键

will

数据库 性能 外键

低代码平台会让程序员失业?测评了5个工具,谁能让效率提高N倍?

代码制造者

编程 编程语言 低代码 零代码 测评

云图说 | 3分钟创建一个游戏类工作负载

华为云开发者社区

Docker 容器 华为云 工作负载 2048游戏

Android 原生 SQLite 数据库的一次封装实践

vivo互联网技术

sqlite android 数据库

程序员陪娃系列——育儿路上二三事

孙苏勇

程序员人生 陪伴 随笔杂谈

LeetCode题解:21. 合并两个有序链表,递归,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

超英文邮件50%!Flink 中文邮件列表必须有姓名

Apache Flink

flink

煌煌中原 化鲲为鹏

脑极体

一款基于 Python 语言的 Linux 资源监视器!

JackTian

Python GitHub Linux bashtop bpytop

程序员陪娃系列——育儿路上二三事续

孙苏勇

程序员人生 陪伴 随笔杂谈

构造、析构期间被调虚函数发生的惨案,长教训!

华为云开发者社区

代码 组合模式 封装、继承、多态 bug 回调函数

【漫画】最近,老王又双叒get了CDN的新技能—可编程化敏捷开发

巨侠说

CDN

程序员陪娃系列——小娃的到来

孙苏勇

程序员人生 陪伴 随笔杂谈

Linkerd 2.8 - 實現超級簡單又安全的多叢集(multicluster) Kubernetes 架構

Rammus

Kubernetes DevOps 运维 云原生 Service Mesh

程序员陪娃系列——和孩子聊生死

孙苏勇

程序员人生 陪伴 随笔杂谈

BIGO技术:实时计算平台建设

InfoQ_3597a20b53cc

互联网 BIGO

移卡荣登2020「AI 最佳成长榜」,AI+金融科技赋能商业服务

DT极客

入职两周,怀疑自己进了假百度!跟传说中完全不一样!难道真有两家百度公司?

程序员生活志

百度 程序员生活

F5G的星光闪烁,为工业而明,向未来而歌

脑极体

内存总是不够?HBase&GeoMesa配置优化了解一下

华为云开发者社区

内存模型 内存 HBase 大集群 GeoMesa

趣文:那天我被拉入 C++ 亲友群

程序员生活志

c c++ 程序员趣事

程序员陪娃系列——小小免费按摩师

孙苏勇

程序员人生 陪伴 随笔杂谈

使用 supervisor 配置 ngrok 内网穿透为守护进程

jerry.mei

Linux 操作系统 ngrok 守护进程 内网穿透

MySQL“被动”性能优化汇总!

王磊

MySQL

主权投资基金或有助于实现可持续发展目标

CECBC区块链专委会

太赞了!程序员应该访问的最佳网站都在这里了!

JackTian

GitHub 编程 程序员 学习资源 网站平台

学生党学编程,有这个开源项目就够了!

JackTian

GitHub 编程 程序员 学生党 学习资料

多角度分析,通讯时序数据的预测与异常检测挑战

华为云开发者社区

时序数据库 即时通讯 异常检测 网络智能体 时序预测

重写软件会有哪些风险?-InfoQ