设计是处理复杂度(可扩展、高可用、高性能)
设计是为了让软件在长期更容易适应变化。
为什么软件设计是一门关注长期的学问,因为只有长期的积累,需求才会累积,规模问题才会凸显出来。软件设计,实际上就是应对需求的“算法”
软件设计就是要构建出一套模型,
模型我认识是用多个视图表示一个事物
4+1视图等等
软件设计第一步:分解
程序设计要从问题域出发,用问题域分析出的模型来指导程序设计。
面向对象分析,强调的是在问题域发现并描述概念,解决的问题是做正确的事情。面向对象设计,强调的是定义软件对象,解决的问题是正确的做事情。
领域模型的子领域划分是很好的模块划分方式,领域划分可以直接应用于架构的模块职责划分上。
https://time.geekbang.org/column/article/240177