重新设计 Java 软件项目所需的流程、工具和管理技术

发布于 2024-08-13 15:38:23 字数 1539 浏览 2 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

诠释孤独 2024-08-20 15:38:23
  • 定义一个清晰的计划,说明您想要实现的目标以及您将在何处
  • 为尽可能多的新旧代码编写测试,以确保您保留行为并创建一个良好的测试套件,并在未来
  • 重构小块随着时间的推移,
  • 如果可以的话,它最终会与离散的垂直功能切片一起使用,以防止代码中级联的重大更改
  • 确保您定期构建,
  • 基本上使用源代码控制

,这是您从一开始就应该使用的所有公认的良好实践;)

  • define a clear plan of what you're trying to achieve and where you're going
  • write tests for as much new and old code as you can to ensure you're preserving behaviour and creating a good test suite going forward
  • refactor small chunks at a time, it adds up eventually
  • work with discrete vertical slices of functionality if you can to prevent breaking changes cascading through the code
  • make sure you build regularly
  • use source control

basically, all the accepted good practice you should have used from the start ;)

夜还是长夜 2024-08-20 15:38:23

从经典开始:

自动化构建和构建部署管理器
单元测试
适应性测试

一旦你把这些事情准备好..当你准备好重构/重写整个混乱的时候..这会容易得多..并且很容易要求这个倡议,而不会引起任何对你的怀疑的怀疑。 -写下意图。

我用经验的声音说话;)

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 ;)

江城子 2024-08-20 15:38:23

我确实从本系列文章中获益良多。虽然它具体是关于 ASP.Net,但我认为至少前几篇文章中讨论的概念将与 Java 棕地应用程序相关。例如:

“有一些基础软件
每个工程原理
项目应采用,无论
所采用的具体方法
你可能会订阅。他们是:

  1. 版本控制
  2. 问题跟踪
  3. 自动化、独立的构建
  4. 自动化测试”

这可能会帮助您确定方向并为您不值得羡慕的努力建立一个起点。

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:

"There are some fundamental software
engineering principles that every
project should adopt, regardless of
the particular methodology to which
you might subscribe. They are:

  1. Version control
  2. Issue tracking
  3. Automated, self-contained builds
  4. Automated testing"

That might help you get oriented and establish a starting point for your unenviable endeavor.

我的黑色迷你裙 2024-08-20 15:38:23

我已成功使用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.

青丝拂面 2024-08-20 15:38:23
  1. Eclipse——它的重构能力是非常强大的
  2. 耐心
  3. 技能。在我看来,几乎所有“遗留”系统都是“臃肿”、“垃圾”、“腐烂”或“垃圾”。虽然这通常是正确的,但非遗留应用程序是相同的,因为编写它们的开发人员不够熟练。所以请记住,如果你想要实现比另一个烂系统更多的东西,你必须非常小心团队技能。
  1. Eclipse - it's refactoring capabilities are very powerful
  2. Patience
  3. Skills. It appears to me that almost every 'legacy' system is 'bloated', 'rubbish', 'rotten' or 'crap'. While this is generally true, the non-legacy applications are the same, because the developers writing them are not skilled enough. So have in mind, that if you want to achieve something more than yet-another-rotten system, you have to be very careful with the team skills.
只是在用心讲痛 2024-08-20 15:38:23

您可能最好只是将其视为一个新项目,但具有现有的代码库。与所有相关人员坐下来,找出系统到底出了什么问题:架构不佳、设计不佳、编码不佳、不满足要求等(或以上所有情况)。根据需要修改各个部分的架构和设计,并提出重构/重写各个部分的计划,以使它们处于良好的工作状态。

您应用于新项目的所有最佳实践绝对适用于此:源代码控制、自动化单元和功能测试、持续集成、夜间构建、同行评审等。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文