在代码中定义业务规则

时间:2014-10-17 08:07:45

标签: oop business-rules

一位程序员告诉我,我不应该在JSP中加入业务规则。这让我很困惑。

我真的很难理解这一点。我的意思是我不知道如何识别代码中的业务规则

问题:

  1. 什么是真正的商业规则?(我知道我可以在谷歌搜索这个但你能给我一个简单的例子吗?)
  2. 如何识别代码中的业务规则(示例很棒)

3 个答案:

答案 0 :(得分:4)

业务规则是业务运营中用于指导行为,塑造判断和做出决策的标准。

我所看到的大部分时间,不同类型逻辑之间的混淆,以及它们都被误称为业务规则。您应该在源代码中实现业务规则的原因有很多。通常,您的应用程序应该处理不同类型的逻辑:应用程序逻辑和业务规则。当您将它们彼此分开时,您就可以独立更新业务规则,而业务人员不会更改应用程序代码。例如,当税率发生变化时,企业可以更新税收规则,而无需询问IT团队(开发人员)。

所以在你的问题中,如果你仍然将业务规则保留在JSP代码中,那么仍然存在对开发人员(和IT)的依赖,因此从我刚才提到的内容中并没有太大的帮助。然而,在代码中以更好的方式构建,在项目的长期运行中将是有益的,因此开发人员将更容易更新它们。

如果要完全从源代码中提取它们,并让它们在源代码(JSP)之外进行管理,则需要业务规则管理系统(BRMS)。 BRMS的一个组成部分是Business Rule Engine (BRE),允许您执行business rules that are modelled in different forms。 当我们谈论BRMS时,它不仅是它的执行(BRE)方面,而且还有其他功能,如标准建模语言和创作,调试,测试,版本控制,部署和托管服务(REST),安全性和权限控制等等......因此,BRMS解决方案应涵盖业务规则的整个生命周期。

关于在代码中识别它们,恕我直言,在现有应用程序中,识别和提取业务规则并不容易。这实际上取决于应用程序域的复杂性以及它的编写方式。选择一个特定的场景,与您的BA一起,定义业务需求和实施场景的要求,检查逻辑是应用程序逻辑还是业务相关逻辑。 Here is an example of how business rule can be separated from source code

答案 1 :(得分:3)

与编程中的许多其他东西一样,作为一个明智的指导原则,已经变成了一个定义不明确的规则,以及一个坚持让小学生用无辜的程序员打击的原因。

首先,没有人同意业务逻辑是什么。在规模的一端,你有像@Arash这样的人,他们认为业务规则是由业务指定的,并且在他们的控制下,如销售税的确切费率。另一方面,有些人认为任何逻辑都像检查sql返回代码一样有资格作为业务逻辑。如果你正在为慈善医院实施一个系统,那么根据任何“商业”规则是什么呢。

为了简单明了,我会敦促人们坚持以下定义。 “由系统的请求者/客户指定的规则”,因此当您的项目发起人说“像这样计算销售税”时,其他所有内容都是业务规则。

其次,在大多数情况下,保持演示文稿(如格式化屏幕,填充下拉等)与获取数据和计算数字并不总是那么简单是有意义的。如果有业务规则“不要让客户看到销售佣金数量”怎么办?如果有客户在场,您现在必须以不同的方式格式化屏幕,这个规则最容易在“表示逻辑”中实现。或者“使用我的交易员理解的Bloomberg配色方案”你在这个“业务逻辑”后端编码跳过很多箍来实现“绿色上升,红色下降,白色不变”或者你可以有一些简单易用理解“表示逻辑”中的代码。

因此,除非您有充分的理由保持JSP代码简单并且只关注格式和表示。但如果有充分的理由将逻辑放在那里,那就去做吧。一个简单的诀窍是问自己“将它作为一个只有语音的呼叫中心应用程序来实现它是多么容易”

答案 2 :(得分:-1)

业务规则只是一种编程逻辑,用于处理从数据库中提取的数据。

不需要使用JSP实现业务规则。它应该使用Java编程逻辑创建,然后应该使用JSP来显示数据。