<返回更多

架构师必备的 37 项技能清单

2023-01-16  今日头条  CTO修炼之路
加入收藏

几年前,我被问到“你是如何变成一名架构师的?”。基于这个话题,我们讨论了很多,比如必要的技术、经验以及所需要的知识储备等。这一次讨论促使我开始思考要成为一名架构师应该具备和学习的东西有哪些,成为一个优秀的架构师应该具备哪些能力和做哪些事情。为此我查阅资料,走访各位大佬,当然也结合自己的经历,最终我输出了今天这样一篇文章,希望通过阅读此文,你可以从此知道自己的架构师之路该怎么走。

 

什么是架构师?

在开始具体的细节之前,我们先来理清两个定义。

 

A software architect is a software expert who makes high-level design choices and dictates technical standards, including software coding standards, tools, and platforms. The leading expert is referred to as the chief architect.

 

软件架构师是一个软件专家,他(她)负责做出高阶设计选择和输出技术标准,包括软件编码标准、工具和平台(框架)。首席专家(leading expert)也被称为首席架构师(chief architect)。

 

(来源: Wikipedia: Software Architect)

 

Software architecture is the fundamental organization of a system, represented by its components, their relationships to each other and to the environment, and the principles that determine the design and evolution of the system.

 

软件架构是一个系统的基本(基础)组织。包含组件,他们之间的关系以及与周边的关系,设计原则,以及系统演进。

(来源: Handbook of Software Architecture)

架构的级别

架构可以被抽象为几个级别(level)。级别决定了要选择哪些对应的技术。市面上有多种分类方式,我个人喜欢把它分为三个级别:

有时候,架构师是也被戏称为“胶水(粘合剂)”,不同利益相关者之间的胶水,举三个例子:

软件架构师要做的几个典型活动:

在搞清楚要使用的技术之前,我们先要明白软件架构师要做的几个典型的活动。以下是我梳理的几个典型的活动:

注意: 架构是一个持续的活动,尤其是在敏捷开发团队中。因此,这些活动得一遍一遍的重复迭代, over and over again。

软件架构师要掌握的重要技能

为了能够支撑上面列出的活动,软件架构师需要一些必备的技能。根据我过往的经历,以及翻阅资料以及与大佬们进行讨论,最后得出了如下软件架构师必备的 10 个重要技能: 设计,决策,简化,代码,文档,沟通,评估,权衡,顾问,营销。

接下来我们一个个说。对于每种技能,我都提出了一些行动或见解,你可以根据这些来改进你的工作。

(1) 设计

什么是好的设计?这个可能是一个非常重要同时又要挑战性的问题。分为理论和实践。就我的经验,二者的结合是最有价值的。

(2) 决策(决定)

架构师需要能够做决定并且引导项目或整个组织朝着正确的方向迈进。

(3) 简化(化繁为简)

记住一个解决问题的原则 Occam’s Razor。 这个原则告诉你解决问题要简单。这个原则里有一句话叫:最简单的那个 solution 往往是最好的。我总结这个原则的核心是:如果你对某个问题有多个假定解决方案,这很有可能就是错的,或者导致没必要的复杂的解决方案。多个假定方案应该被简化到只有一个好的解决方案。别提出来一大堆解决方案,说这个也可以,那个也可以,说明是有问题的。

(4) 代码

即使你是一个企业级别的架构师,就最顶层的那种架构,你依然应该知道开发人员在他们每天的工作中主要做些什么。如果你不能明白某个东西如何实现的,你可能会面临两个主要问题:

(1) 开发人员有可能不会接受你说的。

(2) 你也不会明白开发人员要什么和面临的挑战。

(5) 文档

架构文档有时候很重要,但有时候又不重要。重要的文档比如架构决策或编码指导手册。编码开始之前通常需要初始文档,并且需要不断完善。其他文档可以自动生成,因为代码也可以是文档,例如 UML 类图。

(6) 沟通

不多说,沟通很重要。

(7) 估算和评估

(8) 权衡(balance)

(9) 顾问和教练

主动询问,而不是被动等待,而且你需要有预见,预见接下来的几周内会发生什么,然后规划相应的步骤。

(10) 营销

你的点子和架构再好,当你讲给别人听的时候,没人响应你,那么说明你可能缺乏一些营销技能。

相信本文会成为你在架构师道路上的一篇工具文,本文从作者的亲身经历以及综合业界大佬们的见解,最终梳理出了成为架构师所必备的技能清单并给出建议,希望此文可以改善你的工作!

备注:文中部分场景结合了一些译者本人的经历。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>