按照不同阶段,作者将架构师需要的能力分为
1)结构化设计的能力
代码结构和实现方式上是同质的,利用设计模式和一些设计思想,实现结构化的程序设计,这种能力是程序员必须具备的能力
2)解决横向问题的能力
横向问题主要指的是软件系统内部与业务无关的技术,如性能、可扩展性、可用性、可测试性,可维护性和安全合规等问题
3)解决跨领域冲突的能力
领域冲突问题主要是解决一个复杂组织中必然存在的局部与整体的冲突,最终要从全局层面寻找到最优
4)做正确的技术决策能力
软件架构的正确性,其实是面向未来的技术不确定性下的外部适应性