解耦的本质是用更高的性能去换更低的复杂度
软件工程的对称破缺性:
我的理解:最初的一个idea或者设计,在还没有实现的时候,程序可以朝着多种方向发展,而一旦某个方向做到了极致,其他一些方面必定要做一些取舍
- 领域驱动设计
- 例如淘宝的核心业务是吸引更多的店家入驻,给店家提供方便快捷的开网店方式。
- 这是淘宝的核心业务,淘宝的软件设计是围绕着这些核心业务展开的。
- 淘宝将最稳定,几十年不变的核心业务,抽出成一个大的中台服务,中台就是分层中的一层
- 而其他的例如前端app界面,可能随着推出新活动改变界面。后台数据库可能随着用户量增加架构上发生很大改变
- 例如淘宝的核心业务是吸引更多的店家入驻,给店家提供方便快捷的开网店方式。
- 敏捷开发
- 为什么要有敏捷开发?
- 我们如果不遵从软件架构的思想,在开发大型软件时,如果不进行分层解耦,开发过程中可能会问题百出。如果进行了分层 ,则需要增加人力,而这些人力在开发中处于软件系统的不同层级上,交流的成本增加了,开发到最后导致软件失真,不是一开始想要的。所以就需要敏捷开发
- 为什么要有敏捷开发?
- 开源