复杂系统设计原则与案例
## 一、复杂是软件的本质属性
### 1.1 复杂是软件的本质属性
正如Brooks所言,软件复杂性是软件固有的属性,这种固有的复杂性主要由4个方面的原因造成的:
- 问题域的复杂性
- 管理开发过程的复杂性
- 随处可变的灵活性
- 描绘离散系统行为的问题
上面每一个方面都有极大的挑战,以「问题域的复杂性」为例,现在我们的大型系统中,动不动就几十个应用,组合在一起就是一个复杂的系统,而每个
DDD领域驱动设计 - 设计文档模板
原文:DDD领域驱动设计 - 设计文档模板
设计文档模板:
系统背景和定位
业务需求描述
领域语言整理,主要是整理领域中的各种术语的定义,名词解释
领域划分(分析出子域、核心域、支撑域)
系统用例图
每个子域的领域模型设计(实体、值对象、聚合、领域事件,需要注意的是:领域模型是需要抽象...
如何把代码写的更优雅,你需要这一份代码精进书单!
黄小斜写了一年多的代码,渐渐地代码量也上来了,但是,代码写的多就是好吗,简单的数量堆积似乎并不能起到太好的效果,毕竟我们CRUD写多了,也不怎么需要架构设计,甚至连个设计模式都不怎么需要用到。如何开始代码精进之路,其实有很多的过来人早就已经给出了答案,今天就给大家推荐几本帮你精进代码的优质书籍,走过路过可不要错过哦~
我看技术人的成长路径
当你成长速度超越业务发展速度的时候,组织才会把更重要的职责交给你,如果你成长的速度跟不上业务发展的速度,可能会面临被调整。
如何成为云原生时代的卓越架构师
“软件开发需要面对本质困难和附属困难。云原生、DevOps大幅降低了附属困难,使得架构师可以全力聚焦于业务复杂性,而DDD恰是管理业务复杂性的有效方法。”