1代码不会讲述完整的故事
代码=细节,但是只关注细节却不好理解整体
2软件文档即指南
文档可以记录很多,甚至于历史和文化,有些东西需要文字记载
编码和文档是动态更新的,文档应该以大局面的视图去讲述设计,记录关键点,记录历史。不应太过于细致,否则编码的改动文档难以更新。要找到平衡点
3语境
描述一下这个软件使用的环境
4功能性概览
整体功能描述
5质量属性
关心性能,可伸缩,可用性,安全性,可拓展性,灵活性等质量,一定要具体化
6约束
时间,预算,资源。已有系统兼容。局部标准,公共标准,团队人员技能配置等
7原则
原则确保了以相同的方法处理相见问题,有助于向代码库引入一致性。
定制一份软件开发原则以保持编码层面的统一。比如:所有组件都是无状态,选择贫血/充血模型,绝不使用存储过程等。
8软件架构
使用容器图和组件图进行描述。这部分主要是让你从大局的视图看待软件
9外部接口
外部接口使用了哪些
10代码
实现视图,保持简单
11数据
记录任何从数据角度看来重要的东西
12基础设施架构
主要关注点是展示各种硬件/网络组件以及如何互相融合的基础设施/网络图,配合简短的叙述
13部署
软件和基础设施之间的映射
14运营和支持
描述人们如何运行,检测和管理你的软件。以防将来没有人明白如何运营
15决策日志
简单记录所做的重要决策以及原因,条件,环境。比如:框架选择,产品,架构风格,模式。
网友评论