【问题标题】:Why do I still need services? An architecture only with models?为什么我还需要服务?只有模型的架构?
【发布时间】:2013-01-30 09:21:41
【问题描述】:

我正在构建一个应用程序,它使用 qooxdoo 应用程序作为前端,该应用程序使用 javascript 在浏览器中完成所有渲染工作。这个客户端应用程序只像这样调用服务器:“get me all the workers”并且服务器端返回一个包含所有 json 格式的 worker 的列表..

现在它是这样工作的:

  1. 客户端向服务器发出请求
  2. 服务器调用服务“workers/get”
  3. 服务调用模型:例如Worker.findAll()
  4. 服务器将列表返回给客户端。

现在,由于我已将所有逻辑从服务转移到模型,我问自己服务在做什么?他们什么都不做,我正在考虑摆脱他们,因此新流程将是:

  1. 客户端向服务器发出请求
  2. 服务器调用模型“Worker.findAll()”上的方法
  3. 服务器将列表返回给客户端。

就是这样,你怎么看,我以后可能会遇到问题? 谢谢(:

【问题讨论】:

    标签: web-applications architecture webserver


    【解决方案1】:

    服务做最重要的事情协调

    • 模型需要表示业务对象但不需要实现逻辑
    • 编排模型的逻辑需要由业务服务处理
    • 您的 MiddleWare 或 WebLayer 服务将与业务服务以及 ValueObjects/RequestObjects 进行交互 - 因此,它们提供了一个外观。

    【讨论】:

    • 这在某种程度上是我问题的延续:stackoverflow.com/questions/14276965/…,我遇到的问题是我在模型上有 job.start() 和“jobs/start”作为服务。该服务调用模型 job.start() 但这并不是真正开始工作,它只是更新工作模型。然后服务也会更新 Worker 模型。因此 job.start() 是模棱两可的,因为任何人都会认为通过调用模型上的 job.start() 会启动工作。
    【解决方案2】:

    用这么少的信息不可能给出具体的架构建议。

    话虽如此,我仍然可以给你一些建议:

    不要仅仅为了拥有它而添加图层。仅当在您的上下文中有意义并增加任何实际好处时,才在您的应用程序中添加特定层。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-17
      • 1970-01-01
      • 1970-01-01
      • 2012-11-11
      • 2018-03-08
      • 1970-01-01
      • 2020-05-13
      • 1970-01-01
      相关资源
      最近更新 更多