我是一个新团队的一员,他们试图用遗留的代码库(也用Java编写)开发一个新的Java软件系统,这个代码库已经腐烂到了核心。出于公司政治原因,我们不能放弃旧的Java代码并从新的开始。重写就等于承认他们花了2年时间开发的系统是完全垃圾。这将导致团队的最高层(即开发经理,项目经理,建筑师等......)。因此,非常强烈的自我保护意识在团队的顶端开始了,这意味着任何暗示重写的想法都会被解雇。
这导致提出以下问题: 您认为关键流程,工具和软件开发技术是什么,团队需要实施才能成功地将一个非常腐烂的遗留代码库重新设计/重构为一个良好的稳定系统? 这肯定是可能的。关于此事,有没有好的书籍/网站? 感谢
答案 0 :(得分:2)
基本上,你应该从一开始就使用所有公认的良好做法;)
答案 1 :(得分:2)
从经典开始:
自动构建&部署经理 单元测试 健身测试
一旦你掌握了这些东西......当你准备好重构/重写整个混乱时......它会容易得多..而且很容易要求这些想法而不会怀疑你的任何怀疑重写意图。
我以经验的声音说话;)
答案 2 :(得分:0)
我真的从this series of articles得到了很多。虽然它是关于ASP.Net的,但我认为至少在前几篇文章中讨论的概念与Java棕地应用程序有关。如:
“有一些基础软件 每一个工程原理 项目应该采用,不管 特定的方法 你可以订阅。他们是:
- 版本控制
- 问题跟踪
- 自动化,自包含的构建
- 自动化测试“
醇>
这可能会帮助你找到方向并为你不值得的努力建立一个起点。
答案 3 :(得分:0)
我已成功使用Enterprise Architect(EA)对大型源代码库进行逆向工程。
如果您没有当前状态的良好模型,该工具可以让您深入了解当前状态。它还提供了一个框架,用于讨论哪些部分必须改变,哪些部分可以被拯救,以及哪些部分不需要触及。
答案 4 :(得分:0)
答案 5 :(得分:0)
您可能只是将其视为一个新项目,但使用现有的代码库。与所有参与者坐下来确定系统究竟出了什么问题:架构设计不佳,设计不佳,编码不良,不符合要求等(或以上所有)。根据需要修改部件的架构和设计,并提出重构/重写部件的计划,以使它们处于良好的工作状态。
您在新项目中应用的所有最佳实践都适用于此:源代码控制,自动化单元和功能测试,持续集成,夜间构建,同行评审等。