应用重构秘籍:Computer Weekly停机上传播客
我们与Moderne CEO兼OpenRewrite发明者Jonathan Schneider探讨了应用现代化
考虑将组织的整个应用资产从某个Java版本升级到另一个版本的挑战,这可能是维护IT安全和从WebSphere等应用服务器迁移到Tomcat等替代方案所必需的。
Moderne CEO兼联合创始人Jonathan Schneider是OpenRewrite的发明者,这是一个专为解决此类编程挑战而设计的开源软件自动重构工具。
Schneider曾在Netflix工作,希望解决一个难题——如何准确重写代码并保留原始代码风格使其被接受。结果是一种新的代码数据模型(称为无损语义树)和一个基于规则的重构引擎,该引擎由指定如何重写代码的配方驱动。
在描述Netflix代码重构的挑战和复杂性时,他表示无法设定截止日期将代码迁移到新平台:“我们无法对产品工程师的工作施加约束。”当时,Schneider是一个中央团队的成员,该团队提供现在称为开发者体验的内容,包括平台工程。
OpenRewrite中使用的无损语义树提供了代码结构和关系的详细映射。基于规则的重构引擎使用此映射,该引擎由指定如何重写代码的配方驱动。
他表示,Netflix最初的用例之一是一个内部日志库:“我们希望用开源的SLF4J(Java简单日志门面)替换它。”该过程涉及查看代码和日志记录器信息,以识别内部日志库的使用位置。
Schneider围绕保持代码最新的复杂性建立了一项业务。创建的每个代码片段在部署到生产环境后基本上都会成为技术债务。他说:“我可以在应用架构方面做出所有完美决策,并选择今天所有最佳库,但两个月后,出于某种原因,它不再是最优的。”
历史上,代码往往由产品工程师保留,他们继续修订应用程序并保持其更新。有时,会引入IT咨询公司建立软件工厂,专门从事应用程序维护,一次处理一个应用程序。
根据Schneider的说法,这种应用现代化策略并未奏效。Moderne采取的方法是考虑可以横向解决的任务,覆盖整个业务。
这一点引起了微软的注意。Moderne已在Azure市场上架,该公司也是微软Pegasus计划的一部分,该计划旨在推广初创公司。在讨论Pegasus的好处时,Schneider表示:“微软一直在寻找对其关键客户重要的能力,并试图将解决方案与客户需求配对。在这种情况下,我认为技术工程和IT高管希望加速应用现代化。”他表示,该计划通过“减少大量繁琐程序”以及与微软共同销售的商业利益,帮助了Moderne的Azure市场列表。