软件架构师的思维与实践
1. 协作驱动架构
如今的系统架构与传统静态、僵化的瀑布式架构不同,它会在项目的每次迭代或阶段中不断变化和演进。架构师与开发团队之间的紧密协作是任何软件项目成功的关键。架构和设计并非泾渭分明,它们是软件项目生命周期的一部分,必须保持同步才能取得成功。
2. 技术广度与深度
开发者和架构师在技术细节的关注范围上有所不同。开发者需要具备深厚的技术深度来完成工作,而软件架构师则需要有广泛的技术广度,以架构的视角看待问题。知识金字塔可以很好地说明这一点,它将个人的知识分为三个部分:
- 已知的知识 :技术人员日常工作中使用的技术、框架、语言和工具,例如 Java 程序员对 Java 的掌握。
- 已知自己未知的知识 :技术人员有所耳闻但缺乏专业知识的内容,如大多数技术人员听说过但不会使用的 Clojure 编程语言。
- 未知自己未知的知识 :这是知识三角形中最大的部分,包含了能解决技术人员问题的各种技术、工具、框架和语言,但他们甚至不知道这些东西的存在。
开发者早期的职业生涯侧重于扩展知识金字塔的顶部,以积累经验和专业技能。这是因为开发者需要更多的视角、实践知识和实际操作经验。扩展顶部也会顺便扩大中间部分,因为开发者接触到更多的技术和相关产物,会增加他们“已知自己未知的知识”储备。然而,当开发者过渡到架构师角色时,知识的性质会发生变化。架构师的价值很大程度上在于对技术的广泛理解以及如何运用技术解决特定问题。对于架构师来说,技术广度比深度更重要,他们应该牺牲一些来之不易的专业知识,利用这些时间来拓宽
软件架构师的思维与实践要点
超级会员免费看
订阅专栏 解锁全文
2934

被折叠的 条评论
为什么被折叠?



