业务和应用逻辑?

55
我经常在网站开发(我想它不仅适用于网站开发,而是编程一般)中看到“业务逻辑”和“应用程序逻辑”这些词语。
这对我来说很新,所以我不知道它的含义,有人能解释一下这究竟是什么意思吗?这只是程序员使用的“时髦词汇”吗?还是怎么样?

为什么称之为“业务逻辑”,这个术语从何而来? - S.Lott
11
这个重复项解释了业务逻辑,但没有涉及应用程序逻辑。 - Robert Harvey
3个回答

52

假设你正在编写一个解决客户业务需求的系统。

所有代码的总和就是应用程序逻辑或系统架构-基本上是你正在构建的整个系统。

业务逻辑是指模拟和推动实际业务流程的代码子集。例如,“当下订单产品X时会发生什么?如何计算产品Y的成本?”即需要来自客户/领域专家/项目利益相关者的某些输入的代码部分。

理想情况下,业务逻辑被分离到它自己的层或层次结构中(参见维基百科上的N层架构文章)。其余的代码通常可以简单地看作是帮助该业务逻辑执行的基础架构(数据库包装器、辅助函数、服务外观、外部集成、图形用户界面等)。


46

业务逻辑基本上是根据功能规范的系统规则。例如,类型为B的对象A必须具有属性C和D,但不能有E。 应用程序逻辑更多是技术规范,如使用Java Servlet和OJB将数据持久化到Oracle数据库中。 最终,这些词汇用于描述应用程序中技术层次。希望通过保持各个层次的分离来实现更好的应用程序设计。


我们可以这样说:应用逻辑是我们应用程序中的逻辑工具、技术、平台等。 - Menai Ala Eddine - Aladdin
3
例子不太好,特别是这不是一个Java问题,而且并不是每个人都知道Java Servlets和OJB是什么。 - Robert Kusznier
我认为你说的是“业务规则”,而不是“业务逻辑”。 - c-an

9

也许不太准确,但我使用以下思路来确定它是应用程序、业务逻辑还是其他东西:

流程图


4
请不要将这种分类与你的架构中的层混淆。有时在一个函数或类中可能会发现不同类型的逻辑。例如,Backbone模型是非可重用代码(应用程序逻辑)的典型示例,但它包括潜在可重用部分,如计算字段(业务逻辑)或实用函数(界面逻辑)。 - Vanuan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接