Questions tagged «business-logic-layer»

10
django中业务逻辑和数据访问的分离
我正在Django中编写一个项目,并且看到80%的代码在file中models.py。这段代码令人困惑,并且在一段时间之后,我不再了解实际发生的事情。 这是困扰我的事情: 我发现模型级别(应该只负责处理数据库中的数据)在发送电子邮件,使用API​​到其他服务等方面也很丑陋。 另外,我发现在视图中放置业务逻辑也是不可接受的,因为这样很难控制。例如,在我的应用程序中,至少有三种方法来创建的新实例User,但从技术上讲,它应统一创建它们。 我并不总是注意到模型的方法和属性何时变得不确定,以及何时出现副作用。 这是一个简单的例子。首先,User模型是这样的: class User(db.Models): def get_present_name(self): return self.name or 'Anonymous' def activate(self): self.status = 'activated' self.save() 随着时间的流逝,它变成了: class User(db.Models): def get_present_name(self): # property became non-deterministic in terms of database # data is taken from another service by api return remote_api.request_user_name(self.uid) or 'Anonymous' def activate(self): # method …

4
MVC应用程序在哪里适合“业务逻辑层”?
首先,在有人大声疾呼之前,我很难用一个简单的标题来概括它。另一个标题可能是“域模型和MVC模型之间有什么区别?” 或“什么是模型?” 从概念上讲,我将模型理解为视图和控制器使用的数据。除此之外,对于构成模型的原因似乎有很多不同的意见。什么是领域模型,应用程序模型,视图模型,服务模型等。 例如,在我最近询问存储库模式的问题中,有人告诉我空白是存储库是模型的一部分。但是,我还读过其他意见,认为该模型应与持久性模型和业务逻辑层分开。毕竟,存储库模式是否不应该将具体的持久性方法与模型分离?其他人说,域模型和MVC模型之间是有区别的。 让我们举一个简单的例子。MVC默认项目中包含的AccountController。我已经读过一些意见,认为其中包含的帐户代码设计不佳,违反了SRP等。如果要为MVC应用程序设计“适当的”成员资格模型,那将是什么? 您如何将ASP.NET服务(成员资格提供程序,角色提供程序等)与模型分开?还是你会吗? 从我的角度来看,模型应该是“纯”的,也许带有验证逻辑..但是应该与业务规则(除了验证)分开。例如,假设您有一条业务规则,该规则规定在创建新帐户时必须向某人发送电子邮件。在我看来,这并不真正属于模型。那么它属于哪儿呢? 有人在乎这个问题吗?
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.