中国网站 服务器,好看网站,做网站如何把栏目放到首页,网站开发有没有前途小伙伴们#xff0c;你们好#xff0c;我是老寇#xff0c;前段时间#xff0c;老寇刚看完张健飞老师的两本书《代码精进之路#xff1a;从码农到工匠》和《程序员的底层思维》#xff0c;书中的内容让我受益匪浅#xff0c;因此#xff0c;我把对COLA的理解做成专栏分… 小伙伴们你们好我是老寇前段时间老寇刚看完张健飞老师的两本书《代码精进之路从码农到工匠》和《程序员的底层思维》书中的内容让我受益匪浅因此我把对COLA的理解做成专栏分享给大家跟我一起学习COLA吧 在学习COLA之前我们先要了解架构的演进过程
六边形/洋葱/整洁/清晰架构
发展历程 区别对比 架构 介绍不能解决问题六边形架构 六边形架构也叫端口和适配器架构主要关注系统的可扩展性和与外部世界的交互。 通过端口和适配器的概念清晰地将应用的核心业务逻辑与外部接口依赖Web服务、数据库分离使得应用能够更加灵活地与外部世界交互易于测试与扩展。 1.应对复杂得业务建模问题没有提供具体解决方案不能帮助处理复杂业务逻辑和领域建模 2.在实施过程中团队可能面临沟通和协作上挑战尤其是在大型项目中不同团队间如何管理端口和适配器的职责分配。 洋葱架构 洋葱架构的设计灵感来自于六边形架构但它更强调于层次化的组织结构。它通过将应用分为多个层次从核心业务逻辑到外部依赖形成一个洋葱的结构。 每一层都有明确的责任核心业务逻辑位于最内层外部技术和实现细节在最外层Web服务、数据库。当需要更换外部技术栈时只修改外层不会影响到核心业务逻辑。 1.洋葱模型本身没有提供有效的领域建模方法对于复杂业务领域的建模问题仍然需要其他架构模型领域驱动DDD来补充。 2.如果希望需要非常多种类的外部接口或技术栈交互适配层变得非常庞大和复杂难以管理。 整洁架构 整洁架构是对六边形架构和洋葱架构的进一步提炼和延伸。 强调高内聚低耦合设计通过将不同功能的代码划分到不同的分层核心业务逻辑用例层接口层等每个层之间耦合最小从而实现高内聚和低耦合。 通过环形分层来组织代码核心业务逻辑位于最内层外部技术RPC数据库与业务逻辑解耦可以灵活替换。 与六边形架构类似整洁架构通过依赖规则确保内层不依赖外层依赖注入帮助实现层与层之间的解耦。 1.设计和实现比较复杂为系统带来不必要的复杂度尤其是对于中小型项目过于严格的分层可能带来不必要的复杂性。 2.整洁架构的规则和约定对新手不太友好尤其是没有使用依赖注入的开发者来说掌握整洁架构的设计理念和实践可能需要一定时间。 清晰架构 清晰架构对整洁架构进一步优化它强调可理解性和简洁性核心思想是以业务需求为核心设计清晰的模块划分使得系统的结构和职责CQRS职责分离尽量简单明了。 通过简洁架构减少不必要的分层提高开发效率并降低因复杂设计带来的开发障碍。 清晰架构侧重于模块之间的清晰分界和简洁性避免不必要的复杂结构。 功能和复杂度高时难以扩展 DDD术语
学习DDD术语之前我们先来看一张COLA分层架构图方便加深对DDD术语的理解 战术设计与战略设计
众所周知DDD领域驱动设计分为战略设计业务角度考虑领域划分和战术设计技术角度考虑详细的设计和编码
分层架构
DDD术语解释说明战略设计战术设计分层架构聚合根聚合实体值对象领域服务工厂领域事件事件溯源仓储核心域支撑域通用域通用语言充血模型贫血模型