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