三种类型的代码迁移

随着代码变老,通常有必要对其进行现代化。 有以下动机:

  • 我们找到了一种更好的方法
  • 我们需要出于支持/许可或仅出于最佳实践的原因而更新核心库/技术
  • 我们需要在更现代的基础架构上运行该软件

简而言之,几年前编写的软件很少能完美地在我们现有的平台上运行而无需进行任何修改,这导致了一个有趣的主张:

三种类型的代码迁移

切勿着手进行一个需要数年才能发布的项目。 到您上线时,它就会过时了!

以上并非观点,而是我过去几年中几个真实示例的故事。

不过,重塑是一个挑战。 理想的方法是在数年的时间里轻轻地培育软件,不断发展,逐步发展,以使其与最新情况保持同步。

但是,如果需要抬起并移动,通常可以分为三类:

  • Tablecloth Trick –对该软件进行了足够的重构,以使其可以迁移,同时仍可以在旧平台上运行,然后进行重新构建,拔出了基础,并用兼容的基础替代了基础。
  • 批量导入和修复–在不运行软件的情况下将软件导入到新技术堆栈中,并对其进行编辑,直到开始运行为止。
  • 肉丸–将软件分解为小块,然后在新平台上一次构建一个小块,直到它们组合在一起构成一个完整的系统。

当该软件可行时,Tablecloth Trick的进化方法非常适合。 另外两个涉及切片和切块:

  • 批量导入和修复–尝试一次修复一层问题/体系结构需求
  • 肉丸–将整个代码库切成小块,并使每个块作为一个整体工作

技术的适当性取决于您希望代码在当前结构和质量中保留多少。 如果代码基本正常,除了需要新的库/方法,那么“桌布技巧”是理想的选择。 随着代码越来越不受欢迎,您将越来越趋向于肉丸/切块方法。

翻译自: https://www.javacodegeeks.com/2020/04/three-types-of-code-migration.html