【问题标题】:Onion Architecture for Modernization现代化洋葱架构
【发布时间】:2013-12-10 08:59:16
【问题描述】:

我正在对 .NET 客户端服务器应用程序进行大规模现代化改造。我打算应用“洋葱架构”,因为我觉得它与未来架构尚未最终确定的现代化方法相匹配。

任何使用 Onion Architecture 进行旧式现代化改造的人,您的意见都会有所帮助。

【问题讨论】:

  • 您的应用程序有多大?它将有多少不同的组件(数据库、缓存、消息队列、rest api`s、要连接/集成的遗留东西......)?
  • 很难说洋葱架构在没有更多细节的情况下适合。但请记住,任何架构决策都必须具有业务附加值。不要为了它而应用这个或那个,只是因为你想尝试一下,或者只是因为流行语。
  • 这就是我在 StackOverflow 上发帖的原因。在过去的 3 年里,我一直在关注 Onion Architecture 社区。 @SašaŠijak 它没有 MQ,但有集成。
  • @RajanR.G 不要误会我的意思,我是洋葱架构的忠实粉丝。我只是想避免误导你,因为架构选择是一个非常基础的东西,直到你的项目结束,你都将被束缚。如果您的应用程序非常简单,恕我直言,最好的选择是从简单开始。这就是为什么在没有关于您的应用程序的任何详细信息的情况下就架构选择向您提供建议非常困难的原因。
  • 知道了。没有什么不对。我只是想知道是否有人对此有任何成功或失败的故事。

标签: onion-architecture


【解决方案1】:

洋葱架构的核心是您的业务领域。这意味着您要么需要自己成为业务专家,要么直接联系可以向您解释业务规则的业务专家。 如果您正在对应用程序的重要部分进行现代化改造,其中一部分至少要完成一项内聚的业务事务,那么请选择洋葱架构。否则洋葱将无济于事。 洋葱架构提供真正的松耦合。例如,在电子商务结账流程的情况下——购物篮、支付和库存可用性可能每个都有自己的洋葱(微服务?)。这些洋葱中的每一个都可以用不同的技术来实现,例如MEAN 堆栈中的购物篮、大型机上的付款以及 Java 中的库存可用性。如您所见,洋葱架构提供了业务逻辑与实现它的技术的解耦。 如果您需要有关如何有效使用洋葱架构的更多信息,我将参考有关领域驱动设计的书籍。 InfoQ 有一个免费的初学者,https://www.infoq.com/minibooks/domain-driven-design-quickly 如果您有任何问题,请随时与我联系。我长期将洋葱架构与领域驱动设计结合使用。

【讨论】:

    猜你喜欢
    • 2011-10-09
    • 2014-10-15
    • 1970-01-01
    • 2014-06-22
    • 2015-03-17
    • 1970-01-01
    • 2014-01-25
    • 2023-04-02
    • 2013-06-30
    相关资源
    最近更新 更多