title: "遗留系统重建实战" date: 2021-12-27T15:28:00+08:00 tags: ["技术分享"] draft: false
入职新公司,我们希望去写新系统,但是实际上你的工作往往是去维护一个遗留系统。那么这边文章就来分享一下如何重建一个遗留系统。
我们可以把一个已经存在的、难以维护或者扩展的系统统称为遗留系统。遗留系统往往有这些特征:
为什么说重建遗留系统是一件很难的事情?因为:
首先要明白一点,重建遗留系统是一件很难的事情。你们是否下定决心去重建?克服恐惧和沮丧。
新人能快速部署项目,也是一个重要的指标。我们可以使用 Docker 简化部署,持续更新部署文档。可以把部署步骤放在 README.md 中,方便大家了解。
可在线方便快速的日志系统,你可以使用 ELK 自主搭建,或者使用云服务器平台提供的日志服务。
针对小型项目还可以使用 Sentry 等 SaaS 服务进行错误收集,接入基本上无门槛,非常的方便。
编写单元测试,配置 CI 来运行单元测试、集成测试。
可以自己部署开源的 Grafana 和 Prometheus 监控系统,也可以使用 DataDog 提供的 SaaS 监控系统。
这样就可以监控系统的性能和状态。
有了日志和系统监控就算系统有 Bug 我们也能及时响应,更快的解决问题。
拆分系统:拆分成多个模块,每个模块都有自己的角色,每个模块都有自己的职责。
把一个大的系统拆分成很多小的系统,这个每个系统的代码量就会很小,这样就可以更好的维护和扩展。
为什么项目最后会变成无法维护?
有时候我们为了快速实现某个需求,走了一些捷径,这种实现方案类似于贷款,到了某些时候我们必须偿还这些贷款,如果没有按时还款,这只会积累更多的贷款和利息,最终你需要支付的债务就会超过你的支付能力。我们把这称之为 code debt。