Questions tagged «business-logic»

3
微服务架构中的业务逻辑应该放在哪里?
由于我习惯于采用单片方法,因此仍在尝试围绕微服务架构 假设我们尝试构建一个极其简化的 Uber预订系统。为简单起见,我们假设我们有3个服务和客户端的网关API: ,,Booking 和我们有以下流程:DriversNotification 创建新预订时: 检查现有用户是否已有预订 获取可用驱动程序列表 发送通知给司机以领取预订 司机接机 假设所有消息传递都是通过http调用完成的,而不是通过类似kafka的消息传递总线来完成的。 因此,在这种情况下,我认为该Booking服务可以对现有预订进行检查。但是,谁应该得到可用驱动程序和通知的列表呢?我正在考虑在网关级别执行此操作,但是现在逻辑可以分为两个地方: Gateway -获取可用驱动程序列表+发送通知 Booking -检查现有预订 而且我很确定网关不是正确的选择,但是我觉得如果我们在Booking服务中使用它,它将变得紧密相连吗? 更复杂的是,如果我们有另一个项目想要重用预订系统,但又要有其自己的业务逻辑,该怎么办?这就是为什么我考虑在网关级别执行此操作,以便新项目网关可以将其自己的业务逻辑与现有逻辑分开。 我想的另一种做法是,每个项目都有自己的预订服务,该服务将与核心预订服务对话,但是我不确定这里最好的方法是什么:-)

3
实体框架和避免贫血领域模型
在我们的业务逻辑中,我们有时会定义一些类似于以下内容的方法: User.ResetCourse(Course courseToReset) 问题在于用户和课程都是实体框架代理对象。这意味着当我们在“用户”或“课程”上命中导航属性时,可能会严重打击数据库,因为这些对象不可查询,因此可以正常地遍历它们。 为了解决这个问题,我们将签名更改为: User.ResetCourse(MyDBContext db, Course courseToReset) 这意味着我们可以直接查询数据库以有效地进行所需的更改,但是将Database上下文传递给业务对象似乎太错误了。 后来我们向用户迁移了服务层,这意味着我们拥有以下内容: CourseService.ResetForUser(Course courseToReset, User forUser) 该服务引用了创建时注入的DBContext,但是现在我们的业务对象只是没有行为的数据包(例如,Anemic Domain Model)。 我们如何避免这种情况?

4
业务逻辑真的属于服务器吗?
Web应用程序的典型堆栈是数据库,具有服务器端代码的服务器以及具有HTML / CSS / JavaScript的浏览器的用户。 在广泛使用AJAX之前,已将控制器作为服务器端代码的MVC删除了。服务器必须为动态网页路由答复请求(即,模板化的html解决方案,如JSP和ASP)。服务器协调对数据库的调用,并决定使用哪个动态页面来应答页面请求。所有这些的结果是,服务器最终包含了业务逻辑,即使业务逻辑与提供页面的想法没有紧密联系。 现在,我们正在向“ Web 2.0”迁移,服务器将使用JavaScript填充静态页面并更改其呈现的服务器。可以在JavaScript中。JavaScript通常实现RESTful服务,这意味着它正在指定数据库查询。 因此,服务器将承担提供实际文件和应答AJAX调用的角色。应答AJAX呼叫仅仅是会话管理和提供安全性。实际上,用户甚至应该能够看到的是应该在数据库中指定的数据。 因此,从那里开始,服务器是否应该只充当笨拙的中介角色,而这种中介只是偶尔发送电子邮件或启动Web服务之类的功能?业务逻辑可以全部存在于JavaScript中(不是秘密时)还是存在于存储过程中吗? 甚至将服务器和数据库结合在一起,或者使像SAP这样的ERP解决方案作为服务器,是否有意义?

2
在谈到非业务应用程序时,我应该使用“业务逻辑”一词吗?
假设程序的一部分不处理初始化,输入,输出。它只是指定应该做什么,允许什么或不允许什么。为此,我使用术语“业务逻辑”。但是应用程序与业务无关。 例如:一个游戏。假设有以下部分: 输入处理 碰撞检测,物理,玩家控制 渲染输出 AI-NPC如何达到指定的目标。 “业务逻辑”-玩家触摸某些对象时会发生什么。那里有什么类型的NPC,什么时候它们会做什么,“生活”,“弹药”,“等级”,“得分”的概念。 但这不是生意,只是游戏。维基百科尚不清楚。

1
业务逻辑与服务层
我读了这个答案:https : //softwareengineering.stackexchange.com/a/234254/173318请更正我的理解。 业务规则是指现实世界中的业务步骤列表(无代码)。 业务逻辑是指将业务规则转换为代码的过程,并将这些代码束/种类称为“业务逻辑”。 服务层的用途是什么?如果我读了这个答案,听起来与业务逻辑没什么不同https://stackoverflow.com/a/4817935/4190539 服务层是业务逻辑和存储库相遇的地方吗?

4
在DAL和BLL层之间分离检索数据和业务对象
在发布此问题之前,我做了一些研究。在其他问题或帖子中,下面提供其中一个。我不清楚如何确定。 数据访问层中的业务对象 我有一个存储库,业务层调用该存储库以检索数据。例如,说我有以下BLL和DAL类: class BllCustomer { public int CustomerId {get; set;} public String Name {get; set;} public BllAddress Address {get; set;} } class BllAddress { public int AddressId {get; set;} public String Street {get; set;} public String City {get; set;} public String ZipCode {get; set; } } class DalCustomer { …

3
什么是面向对象的思维过程?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 在过去的几个月中,我一直在与Zend的MVC实现一起研究OOP。通常,我对编程还很陌生,但是我强烈感到应该以“正确”的方式学习事物,这对我而言意味着要确保我理解为什么事情按照原样进行。即,我发现在学习如何做某事(任何事情,比如说音乐)时,学习如何做某事的最好方法是首先知道为什么要这样做。 无论如何,我一直在努力地理解如何开发自己的业务模型(例如,MVC的M),并且我决定这并不是因为我一般都不了解OOP,因为我已经研究了好几个几个月,我认为这些概念很难掌握。实际上,我发现我研究的示例非常直观。我认为,对我而言,问题在于将自己的问题转​​换为面向对象的解决方案的过程。书中的示例(到目前为止,我已经阅读过)太明显了,因此将问题转化为对象的过程并不是很困难。我认为我可能会缺少一个高级抽象过程。每个面向对象的解决方案都必须在最高级别上回答的某种步骤或问题列表。 如果您仅用五个步骤来描述这样的过程,它们将是什么,为什么?将任何问题转换为面向对象的解决方案最有效的过程是什么?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.