下面是一些向初学者介绍软件架构的实用建议。
1. 宣传教育
举办几次专题研讨活动,帮助人们学习和理解软件架构是什么。可以针对开发者或非开发者,这有助于确保所有人都有相同认识。至少,你应该留意下面几点:
- 软件架构是什么;
- 软件架构为什么重要;
- 你打算采取的做法。
2. 回顾架构
如果你定期回顾反思你的团队执行情况,为什么不直接在谈话的主题列表上加入软件架构?如果你认为软件架构没有得到足够重视,也许是因为你经常重构你的软件架构,或者在一些非功能特性 上遇到了问题,那么思考一下你可以采用的软件架构实践。另一方面,如果你花太多时间思考软件架构或预先设计,也许是时候看看这个工作的价值,以及是否有任何实践可以被放弃或取代。
3. 完成标准
如果你对工作项目有“完成标准”,把软件架构也加进去。这有助于确保你以任何所需的架构模式、规则或非功能目标来考虑工作项目架构的影响和实现的一致性。
4. 分配软件架构角色
如果你的软件团队不思考软件架构,那么简单地把软件架构角色 分配给团队内某个可能合适的人选也许可行,因为你明确地把对软件架构的所有权和责任指定给了一个人。把这个角色分配给多人在有些团队里行得通,但我发现,起初由一个人承担,然后随着团队经验的增加,再与其他人共享,这种方式更好。有些团队不喜欢“软件架构师”这个词,而代之以架构所有者 3 。不管你怎么称呼它,指导和合作才是关键。
3 http://www.agilemodeling.com/essays/architectureOwner.htm
5. 架构培训班
光说还不够,怀疑论者要看的是架构并非大型预先设计。这也是我举办短期架构培训班的原因,一些小团队可以协作为一组简单的需求 架构软件解决方案,制作数个可视化图表,并互相交流各自的方案。这让人们体会到预先设计并不一定意味着在非常低的抽象层次设计好所有东西,也提供了一种实践沟通软件架构的方法。