在新项目中理解业务逻辑的最快方法

Fastest way to understand business logic in a new project

我想知道 fastest/best 在新项目中学习业务逻辑的方法。

大多数项目已经 运行 多年,其中一些项目的文档很少,但您仍然需要知道如何使用它们。做这个的最好方式是什么? (用例图/同事的支持/代码分析等)

运行 服务器,日志无处不在。按照代码流程深入挖掘。

详细日志记录的问题在于,您可能会因细节过多而无济于事,即使您拥有正确的细节,也可能会误解全局。

此外,如果项目 运行 多年,并且文档很少,那么可能很少可用的文档已经过时了。很有可能,该团队也没有在日志记录方面投入大量资金。

代码逆向工程是另一种方法,但如果遗留系统中有数百万行代码,从哪里开始呢?有些东西可以很容易地在代码中阅读,但更多复杂的、紧急的行为来自许多 class 之间的交互,而这种知识是最难提取的。

所以这是要走的路:

  1. 与同事交谈。将知识从一个大脑转移到另一个大脑的最佳方法是直接对话。它比任何正式图表或任何文档都要好得多。不幸的是,这并不总是可能的(例如团队离开)
  2. 如果 1 不可能,请理解业务用户的观点。可能有用户手册?也许一些用户支持的同事?如果其中 none 是可能的,那么最终的方法是在用户的生活中花费一些时间。您不会理解系统的工作原理,但至少您会快速了解系统应该做什么、对用户来说重要的是什么,也许还有一些业务规则。
  3. 检查自动化测试用例。事实上,这样的测试用例是一个隐藏的和最新的文档资源。
  4. 检查非自动化测试用例,特别是使用验收测试和集成测试。如果这些不是自动化的,它们很可能已经过时了。但总比没有好。
  5. 对代码进行逆向工程。确定主要的 classes 以及它们如何相互作用。是的,一些简化的 class 图将帮助您理解 class 是如何相关的(无需记录属性和方法:这些可以在代码中找到)。一些序列图将帮助您了解更复杂的交互。