《Code Complete》 架构检查清单
以下是一个好的架构应该解决的问题列表。该列表并不是要成为架构的综合指南,而是一种实用的方式来评估程序员获得的内容是否足够有营养。
使用此清单作为起点。与需求清单 一样,如果你正在处理一个非正式项目,你会发现一些甚至不需要考虑的项目。如果你正在从事一个较大的项目,那么大多数项目都会很有用。
#具体的架构主题
- [ ] 程序的整体组织是否清晰,包括良好的架构概述和理由?
- [ ] 主要构建模块是否明确定义,包括其职责范围以及与其他构建模块的接口?
- [ ] 需求列表中的需求,是否都能合理的被架构中的模块覆盖?即不会有太多的模块需要因为一个需求而改动的情况,也不会有所有需求集中在一个模块内的情况出现。
- [ ] 架构中最关键的类是否被合理的描述,且证明了其合理性?
- [ ] 数据的设计是否得到了描述,并证明了其合理性?
- [ ] 数据库之间的组织关系是否有被定义?
- [ ] 是否所有关键的业务规则都有被定义,且说明了它们对系统的影响?
- [ ] 是否描述了针对 UI 设计的策略?
- [ ] UI 部分是否模块化,以便它不会影响程序的其他部分?
- [ ] 是否描述了处理 IO 的策略,并证明了其合理性?
- [ ] 是否对线程,数据库访问,句柄,网络带宽等稀缺资源描述了使用估计和资源管理策略,并证明了其合理性?
- [ ] 架构是否描述了对安全性的要求?
- [ ] 架构是否为每个类,每个子系统和每个功能都设置了空间和时间的预算?
- [ ] 架构是否描述了如何实现可拓展性?
- [ ] 架构是否解决了互操作性问题(其他软件/硬件共享的资源)?
- [ ] 架构是否描述了本地化策略
- [ ] 架构是否提供了一致的错误处理策略?
- [ ] 架构是否定义了容错方法?
- [ ] 系统中所有部分技术可行性是否已经确认?
- [ ] 架构中是否有足够的饱和设计?
- [ ] 架构是否有 购买/构建 的决策说明?
- [ ] 架构是否有描述如何重用代码以符合其他的架构目标
- [ ] 当前架构是否能够适应可能的变化
#通用架构质量
- [ ] 架构是否考虑了所有的需求?
- [ ] 架构中是否存在过度或不足的设计,是否有明确描述这些区域的期望?
- [ ] 整个架构在概念上是否一致?
- [ ] 顶层设计是否可以独立于硬件和语言?
- [ ] 是否描述了架构中所有重大决策的动机?
- [ ] 作为要实现该系统的程序员,你对架构是否满意?
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 三叔胡言乱语的地方!
评论