- 推荐序一:架构师真正要学会的事情
- 推荐序二
- 译者序 2.0
- 序
- 关于本书
- Part Ⅰ 什么是软件架构
- 第 1 章 什么是架构
- 第 2 章 架构的种类
- 第 3 章 软件架构是什么
- 第 4 章 敏捷软件架构是什么
- 第 5 章 架构对上设计
- 第 6 章 软件架构重要吗
- 第 7 章 问题
- Part Ⅱ 软件架构的角色
- 第 8 章 软件架构的角色
- 第 9 章 软件架构师应该编码吗
- 第 10 章 软件架构师应该是建造大师
- 第 11 章 从开发者到架构师
- 第 12 章 拓展 T
- 第 13 章 软技能
- 第 14 章 软件架构不是接力运动
- 第 15 章 软件架构要引入控制吗
- 第 16 章 小心鸿沟
- 第 17 章 未来的软件架构师在哪里
- 第 18 章 每个人都是架构师,除非他们有其他身份
- 第 19 章 软件架构咨询师
- 第 20 章 问题
- Part Ⅲ 设计软件
- 第 21 章 架构驱动力
- 第 22 章 质量属性(非功能需求)
- 第 23 章 处理非功能需求
- 第 24 章 约束
- 第 25 章 原则
- 第 26 章 技术不是实现细节
- 第 27 章 更多分层等于更高复杂度
- 第 28 章 协同设计是一把双刃剑
- 第 29 章 软件架构是对话的平台
- 第 30 章 SharePoint 项目也需要软件架构
- 第 31 章 问题
- Part Ⅳ 可视化软件
- 第 32 章 沟通障碍
- 第 33 章 对草图的需要
- 第 34 章 无效的草图
- 第 35 章 C4:语境、容器、组件和类
- 第 36 章 语境图
- 第 37 章 容器图
- 第 38 章 组件图
- 第 39 章 是否包含技术选择
- 第 40 章 你会那样编码吗
- 第 41 章 软件架构和编码
- 第 42 章 你不需要 UML 工具
- 第 43 章 有效的草图
- 第 44 章 C4 的常见问题
- 第 45 章 问题
- Part Ⅴ 为软件生成文档
- 第 46 章 代码不会讲述完整的故事
- 第 47 章 软件文档即指南
- 第 48 章 语境
- 第 49 章 功能性概览
- 第 50 章 质量属性
- 第 51 章 约束
- 第 52 章 原则
- 第 53 章 软件架构
- 第 54 章 外部接口
- 第 55 章 代码
- 第 56 章 数据
- 第 57 章 基础设施架构
- 第 58 章 部署
- 第 59 章 运营和支持
- 第 60 章 决策日志
- 第 61 章 问题
- Part Ⅵ 开发生命周期中的软件架构
- 第 62 章 敏捷和架构的冲突:神话还是现实
- 第 63 章 量化风险
- 第 64 章 风险风暴
- 第 65 章 恰如其分的预先设计
- 第 66 章 初识软件架构
- 第 67 章 问题
- Part Ⅶ 金融风险系统
- 第 68 章 金融风险系统
- Part Ⅷ 附录:技术部落 的软件指南
第 55 章 代码
尽管软件指南的其他部分描述了软件的整体架构,但你还是想呈现底层细节,解释工作原理。这就是代码部分的目的。有些软件架构文档模板将其称为“实现视图”或“开发视图”。
意图
代码部分的目的是描述软件系统中重要、复杂、意义重大部分的实现细节。比如,我为自己曾参与过的软件项目写了以下内容。
生成/渲染HTML:对生成HTML的内部框架的简短描述,包括主要的类和概念。
数据绑定:根据HTTP POST请求更新业务对象的方法。
多页数据采集:简短描述构建跨网页表单的内部框架。
Web MVC:正在使用的Web MVC框架的一个使用示例。
安全性:使用Windows身份基础(WIF)进行认证和授权的方法。
域模型:域模型重要部分的概览。
组件框架:简短描述为了在运行时重新配置组件而构建的框架。
配置:简短描述代码库中使用的标准组件配置机制。
架构分层:分层策略和用来实现的模式的概览。
异常和日志:总结在各个架构分层中处理异常和记录日志的方法。
模式和原则:解释模式和原则如何实现。
等等。
结构
保持简单,每个想要描述的元素都只给一小段,如果对读者有帮助的话,还可以包含图表。举个例子,一个高层次的UML类或序列图有助于解释内部定制框架如何工作。抵挡住包含所有细节的诱惑,不要觉得你的图表需要展示一切。我喜欢花上几分钟时间勾画一个展示了选定(重要)属性和方法的高层次的UML类图,而不是使用UML工具或IDE插件从你的代码库自动生成的复杂图。任何图都保持在一个较高层次的细节意味着着它们能在更长时间内较少变动,保持最新,因为它们能够忍受代码的微小变化而仍然有效。
动机
写这个部分的动机是为了确保每个人都了解软件系统重要/意义重大/复杂的部分如何工作,这样人们就能够以一致和连贯的方式维护、增强和扩展它们。这个部分也有助于团队的新成员迅速行动起来。
受众
主要是软件开发团队中的技术人员。
是否必须
不是,但除了不重要的软件系统,我通常都会包含这个部分。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论