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

Posted

技术标签:

【中文标题】在新项目中理解业务逻辑的最快方法【英文标题】:Fastest way to understand business logic in a new project 【发布时间】:2021-07-20 21:07:56 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

运行服务器,到处记录详细信息。遵循代码流并深入研究。

【讨论】:

【参考方案2】:

详细日志记录的问题在于,您可能会被无用的细节所淹没,即使您有正确的细节,您也可能会误解大局。

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

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

所以这是要走的路:

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

【讨论】:

以上是关于在新项目中理解业务逻辑的最快方法的主要内容,如果未能解决你的问题,请参考以下文章

如果我从控制器中取出逻辑,是不是需要业务逻辑层?

业务逻辑层-Transaction Script

业务逻辑层的使用

在 listview 类方法中包含业务逻辑的位置

MVC:把业务逻辑放在哪里? [关闭]

单元测试业务逻辑层