1沟通障碍
引入可视化软件开发流程
想要敏捷,需要高效的表达
2对草图的需要
快速渗入本质,以其他人能理解的方式总结要点,这是最重要的
确保大家理解高层次结构,而不是类的设计细节
3无效的草图
要点1事务,2相互作用,3简单的流转方式。画草图快速沟通
4语境图
重点放在人和系统上,而不是技术和协议
5容器图-大的层次的架构
主要解决1软件系统的整体形态,2高层次技术决策,3职责在系统中如何分配,4容期间如何交流,5为了实现特性,在哪里写代码
这个容器的概念更像是服务,提供了xx服务
6组件图-很多架构图都是指组件图
主要解决1系统的组件/服务,2在高层次上系统如何工作,3所有组件/服务都有一个家吗
组件图的意义重大,做好了这部分就可以在类和接口的层次上设计/编码而无需担心整体高层次结构。
7是否包含技术选择
架构图应该明确技术选择
8你会那样编码吗
清晰的画出架构图,问问自己你会那样编码吗,让架构图更合理
9软件架构和编码
职责驱动设计和组件分解,考虑以组件(而不是层或者特性)来组织你的组件,让软件架构和代码之间的映射更精准
10你不需要UML图
11有效的草图
简单有效明确的沟通更有效