数字化企业敏捷建模
我们一直在实践中探寻更好的软件开发方法,身体力行的同时也帮助他人。由此我们建立了如下价值观:
个体和互动高于流程和工具
工作的软件高于详尽的文档
客户合作高于合同谈判
响应变化高于遵循计划
也就是说,尽管右项有其价值,我们更重视左项的价值。
—— 《敏捷宣言》摘抄
[半翻] 设计面向DDD的微服务
在DDD中,应用层依赖于领域和基础设施层,而基础设施依赖于领域层,但是领域层不依赖于任何层。
只在领域层编写业务规则和通用的领域知识,而应用层负责针对软件的目标来组合、协调领域层的业务规则。
领域层的领域实体、值类型、聚合根反映了真实业务的核心,需要用一种通用的语言来定义,这样不管应用层多么复杂,核心领域层自岿然不动。
领域层不能直接依赖与基础设施层,现代ORM框架一般都提出仓储模型来帮助领域层和技术设施层解耦。
如何设计一个复杂的业务系统?从对领域设计、云原生、微服务、中台的理解开始
软件架构设计本身就是一个复杂的事情,但其实业界已有一个共识,那就是“通过组件化完成关注点的分离从而降低局部复杂度”。其实现在我们用的无论是容器、中间件、消息、数据库等,在某种意义上都是组件化的产物。这样的好处是在不同的系统里可以复用。在云原生兴起的今天,以通用的、组件化的服务形式更容易为我们所用,所以说现在如果还不享用云原生技术红利,那你就会被时代抛弃。
提升代码质量的方法:领域模型、设计原则、设计模式
笔者认为代码差最为关键的是内部自身的问题,根因就两个:自我要求不高;无反馈通道。如果对自已要求不高,仅仅满足完成需求开发就止步了,很难写出高质量的代码,另外如果没有外部反馈,也难以提高自己的技能。提升代码质量的方法,笔者喜欢用三个方法:领域建模、设计原则、设计模式。