Questions tagged «service»

7
建立服务层有多重要?
我开始按3层(DAL,BL,UI)构建应用程序[它主要处理CRM,一些销售报告和库存]。 一位同事告诉我,我必须转向服务层模式,开发人员应从他们的经验中学到服务模式,这是设计大多数应用程序的更好方法。他说,将来以这种方式维护应用程序会容易得多。 就个人而言,我觉得它只是使事情变得更加复杂,我看不出有什么好处可以证明这一点。 这个应用程序确实有一个额外的小部分ui,它使用了一些(但只有少数)桌面应用程序功能,因此我确实发现自己在复制一些代码(但不很多)。仅仅由于某些代码重复,我不会将其转换为面向服务的,但是他说我还是应该使用它,因为总的来说,这是一个非常好的架构,为什么程序员如此热衷于服务? 我试图用谷歌搜索它,但是我仍然很困惑,无法决定该怎么做。

6
在微服务中,每个服务是单个数据库还是单个数据库实例?
我了解微服务架构中的每个服务都应具有自己的数据库。但是,拥有自己的数据库,实际上是在同一个数据库实例中简单地拥有另一个数据库,还是在字面上拥有另一个数据库实例? 这样,我并不是说共享数据库,这是不对的,而是数据库实例。 例如,如果我使用的是AWS并具有3个服务,那么我是否要在单个RDS实例上为每个服务创建3个数据库,还是要创建3个RDS实例,每个实例都包含一个数据库,供3个服务分别使用? 如果在单个RDS实例上使用多个数据库是一个更好的主意,那么它会否决拥有独立服务的目的,因为: RDS实例的资源将在服务之间共享。在特定时间可能大量使用数据库的服务A是否会影响使用不同数据库但在同一RDS实例上的服务B? 所有服务将取决于该RDS实例上的数据库版本。

3
MVC:模型和服务之间有什么区别?
为什么在某些框架中将逻辑层称为“模型”,而在某些框架中将其称为“服务”。它们是彼此不同还是只是命名约定不同? 更新1 我问的原因是因为在传统的MVC框架Zend Framework中,每个人都使用模型的概念。现在我正在学习AngularJS,似乎Model一词消失了,由service一词代替了。 我注意到的是,服务更像是可以反复使用的单例(例如:REST客户端),而模型则与MVC模式中来自控制器的数据操作更为相关。
15 mvc  model  service 

3
如何在单个事务中管理2种DAO方法?
在一次采访中有人问我:我们如何在一次交易中管理两种交易/道方法。所需功能: 如果其中任何一个失败,我们都需要回滚这两种方法。 可以将这两种方法与单个事务分开附加调用。 管理应该在DAO层上,而不是在服务层上。 我认为:这个问题与春季交易管理有关。

2
有没有一种优雅的方法来检查域对象属性上的唯一约束,而又不将业务逻辑移入服务层?
我已经适应领域驱动设计大约8年了,即使经过了这些年,仍然有一件事困扰着我。那就是针对域对象检查数据存储中的唯一记录。 2013年9月,马丁·福勒(Martin Fowler)提到了TellDon'tAsk原则,如果可能的话,应将其应用于所有领域对象,然后应返回一条消息,说明操作如何进行(在面向对象的设计中,这通常是通过异常来完成的,操作失败)。 我的项目通常分为许多部分,其中两个部分是“域”(包含业务规则,没有其他内容,该域完全不考虑持久性)和“服务”。知道用于CRUD数据的存储库层的服务。 由于属于对象的属性的唯一性是域/业务规则,因此对于域模块来说应该很长,因此该规则正是它应该在的位置。 为了能够检查记录的唯一性,您需要查询当前数据集(通常是数据库),以查明是否存在另一个假设的记录Name。 考虑到域层对于持久性是无知的,并且不知道如何检索数据,而只知道如何对它们进行操作,因此它无法真正地访问存储库本身。 我一直在适应的设计如下所示: class ProductRepository { // throws Repository.RecordNotFoundException public Product GetBySKU(string sku); } class ProductCrudService { private ProductRepository pr; public ProductCrudService(ProductRepository repository) { pr = repository; } public void SaveProduct(Domain.Product product) { try { pr.GetBySKU(product.SKU); throw Service.ProductWithSKUAlreadyExistsException("msg"); } catch (Repository.RecordNotFoundException e) { // suppress/log …
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.