很多软件架构的实践都会向软件项目引入指导和一致性。如果你见过一个软件系统内的常见问题或横切关注点有多种实现方式,就会明白为什么这很重要。我想起不少案例。我见过一个代码库里用到了好多个ORM框架,还有的软件系统有好几种跨栈的组建配置方式,有用XML文件的,也有用数据库表的。部署和维护这些系统太有挑战性了。
只有引入一定程度的控制和约束,比如,阻止团队成员偏离正轨,指导和一致性才可能成为现实。如果你为了满足一些主要的非功能性需求,专门设计了一个分布式软件系统,就不能让人把数据库操作的代码写在网页中。控制也可以只是保证你的代码库有一个清晰一致的结构,以包、命名空间、组件、层等形式合理地组织你的代码。