您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
tpl是啥意思_tplpplh啥意思
架构,命令,应用程序tpl是啥意思_tplpplh啥意思
发布时间:2016-12-08加入收藏来源:互联网点击:
-
系统的最内层,核心的中心,是Domain层,它是使用DDD原则构建的。应用层围绕着领域层,是核心的一部分。应用层包含命令/查询内部的业务编排逻辑、由外围层实现的接口以及用于与外部层通信的模型类。表示层、技术实现层(基础设施层)和 持久层位于外围,彼此之间没有明确的了解。表示层本质上是一个 Web API,一些任意 UI,如 Angular,可以与之通信。CQRS 是允许各层在堆栈中优雅地进行通信的基本要素。这就是将一切联系在一起的原因。依赖注入同样对于将组件连接在一起至关重要,同时仍然遵守依赖倒置原则。IOC 容器对此有所帮助。
再一次,没有灵丹妙药,那么有哪些利弊呢?
优点
如果我们构建好我们的抽象,那么这个架构就独立于外部框架、用户界面、数据库等。换句话说,它是灵活的。框架和外部资源可以更轻松地插入/拔出。该解决方案更具可测试。它更具可扩展。更容易管理必要的复杂,即由于试图解决实际业务问题而引入的复杂。该解决方案可以由不同的团队进行工作和维护,而不会互相影响。Clean DDD 非常适合敏捷流程。添加新功能(包括复杂功能)要简单得多,从而使开发人员能够更快地进行调整并更快地发布。随着系统随着时间的推移而增长,添加新功能的难度保持不变且相对较小。这与我工作过的许多遗留系统形成鲜明对比,在这些遗留系统中,随着时间的推移,添加新功能变得更加昂贵和困难,直到最终整个事情越过了可维护的悬崖并且必须报废。如果解决方案沿有界上下文线正确分解,则将其部分转换为微服务变得很容易。以上所有观点都指向同一个结论,即整体系统将具有更长的寿命,并且从长期来看成本更低。缺点
这是一个复杂的架构,需要对质量软件原则(例如 SOLID、架构级别的解耦等)有深刻的理解。实施此类解决方案的任何团队几乎肯定需要专家 (YOU) 来推动解决方案并使其远离发展错误的方式并积累技术债务。清洁 DDD 需要更多的仪式,而不仅仅是编写由单个项目组成的简单的单片 3 层应用程序。增加了支持架构的前期复杂,这可能需要使用额外的工具包来最大程度地减少痛苦,例如 AutoMapper 和 MediatR。这种架构通常不适合简单的 CRUD 应用程序,并且可能会使此类解决方案过于复杂。相反,可以说 CRUD 是不自然的,违背人,并迫使业务团队改变他们的行为以适应软件系统,而不是相反。但这是一个不同的讨论...改变(如改变主意)是困难的。试图获得管理层和其他团队成员的支持可能需要大量的说服力。总之,这种方法的前期成本更高。你需要决定在你的情况下是否值得。高级主题首先,命令与查询的分离允许您将模块一直拆分到数据库。在极端架构中,可能有一个仅用于命令的数据库和一个或多个仅用于读取的单独数据库。此外,可以对读取的数据库进行非规范化,这可以极大地提高能和可伸缩。我目前无意在演示应用程序中实现这种架构。
CQRS 的极端逻辑结论导致了一种称为事件溯源的架构模式,这本质上意味着状态数据不存储在命令数据库中,而是一系列事件,这些事件使数据从一些基本的初始化状态发生了变异。通过“重放”事件,可以获得数据的快照,这使您可以从任何时间点获取数据的状态。此快照可以通过最终一致随时间同步到读取数据库,或其他一些复制模式。这种方法可能适用于某些高级应用程序,例如金融应用程序。出于我们的目的,我可以拥有一个单一的数据库而不是尝试实现事件溯源。您为实现这种高级架构模式付出的代价是显着增加了复杂。最后,我研究过的大多数专家都同意 CQRS 可以在不使用事件溯源的情况下提供巨大的好处。这是我建议您谨慎行事的另一个领域,因为这些高级模式不适合胆小的人。
结论在这篇博客文章中,我介绍了 Clean Architecture,它是一种一流的架构,它随着时间的推移从其他几种架构方法发展而来,并首先由 Bob 正式化。然后我讨论了领域驱动设计如何与 Clean Architecture 结合以产生 Clean DDD,这是一种架构方法,它将 DDD 的方法论和以业务为中心与 Clean Architecture 的逻辑分离相结合,以产生优雅且更容易转换为微服务的应用程序. 最后,我介绍了 CQRS,这是一种行为架构模式,它增强了 Clean DDD,从提高能到更轻松的测试和更好的可扩展,一切都得到了改善。
原文:https://blog.jacobsdata.com/2020/02/19/a-brief-intro-to-clean-architecture-clean-ddd-and-cqrs
本文到此结束,希望对大家有所帮助呢。
上一篇:气压结构床和框架结构床的区别(气压结构床和框架结构床的区别)
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |