97条架构建议-边界-团队-决策
边界
架构师应该聚焦在边界和接口,大型的软件的边界有时很难界定而且各个领域之间互有纠缠,开发出高内聚低耦合的软件是不易的,
我们可以采用一个情境的地图去描述这些边界,能够关注这些部分,开发出高内聚低耦合的软件
团队
诸事说易行难。架构师容易陷入吹牛皮的状态。其实架构师和架构师的团队一样重要
帮助团队有利于项目的展开
1 确保开发人员所需工具和工具的熟练度
2 确保开发人员的技能,可以讲座和研讨会等等提高自己的技能
3 选拔合适的开发人员
4 在不影响原则的情况下,让开发人员自主
5 保护好开发人员,不要让他们卷入不必要的工作中来。
记录决策理由
软件开发有两大争议:
1 开发前期的文档
2 软件设计文档和代码保证同步
但是,记录决策的文档长期有用,又无须花费太多的精力,投资价值很高。
这涉及到取舍,我们写文档也就是在质量,时间,成本等各种因素间做取舍
记录决策理由的方式很多:
wiki,文本,博客文章
文本的内容
主要:做了什么决策?为什么这样决策?
次要的: 我还考虑了哪些解决方案?为什么没有采用这些方案呢?
文本应该容易查找和搜索
文档的重要好处:
它逼着你说出确切的理由,有助于确保基础的扎实
方便条件变化时,重新评估