We don’t allow questions seeking recommendations for software libraries, tutorials, tools, books, or other off-site resources. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
,这是您从一开始就应该使用的所有公认的良好实践;)
basically, all the accepted good practice you should have used from the start ;)
从经典开始:
自动化构建和构建部署管理器
单元测试
适应性测试
一旦你把这些事情准备好..当你准备好重构/重写整个混乱的时候..这会容易得多..并且很容易要求这个倡议,而不会引起任何对你的怀疑的怀疑。 -写下意图。
我用经验的声音说话;)
Start with the classics:
Automated builds & deploy manager
Unit tests
Fitness tests
Once you have those things in place.. when ever you ar ready to refactor/rewrite the whole mess.. it will be much much easier.. and it is very easy to ask for this iniciatives without rasing any suspicions of your re-write intentions.
I speak with the voice of experience ;)
我确实从本系列文章中获益良多。虽然它具体是关于 ASP.Net,但我认为至少前几篇文章中讨论的概念将与 Java 棕地应用程序相关。例如:
这可能会帮助您确定方向并为您不值得羡慕的努力建立一个起点。
I really got a lot out of this series of articles. While it is about ASP.Net specifically, I think that the concepts discussed in at least the first couple of articles would pertain to a Java brownfield application. Such as:
That might help you get oriented and establish a starting point for your unenviable endeavor.
我已成功使用Enterprise Architect (EA) 对大型源代码库进行逆向工程。
如果您没有当前状态的良好模型,该工具可以让您深入了解当前状态。它还提供了一个框架来讨论哪些部分必须改变、哪些部分可以挽救以及哪些部分不需要改变。
I have successfully used Enterprise Architect (EA) to reverse engineer large source code bases.
If you don't have a good model of the current state, that tool can give you great insight into the current state. It also provides a framework to discuss what parts must change, what parts can be rescued, and what parts don't need to be touched.
您可能最好只是将其视为一个新项目,但具有现有的代码库。与所有相关人员坐下来,找出系统到底出了什么问题:架构不佳、设计不佳、编码不佳、不满足要求等(或以上所有情况)。根据需要修改各个部分的架构和设计,并提出重构/重写各个部分的计划,以使它们处于良好的工作状态。
您应用于新项目的所有最佳实践绝对适用于此:源代码控制、自动化单元和功能测试、持续集成、夜间构建、同行评审等。
You're probably best off by simply thinking of this as a new project, but with an existing code base. Sit down with everyone involved and figure out exactly what's wrong with the system: Is is architected poorly, designed poorly, coded poorly, doesn't meet requirements, etc (or all of the above). Revise the architecture and design of the pieces as needed and come up with a plan to refactor/rewrite the pieces to get them in good working order.
All of the best-practices that you'd apply to a new project definitely apply here: source control, automated unit and functional tests, continuous integration, nightly builds, peer reviews, etc.