[杂谈随感-4]:架构师应具备的技能以及架构师的价值等级

2023-10-31

目录

前言:

第1章 什么是架构?

第2章 架构师初识

2.1 什么是架构师?

2.2 架构师的分类?

2.3 架构师的关注点?

第3章 架构师的能力要求?

1. 技术能力(业务相关)

2. 架构能力(计算机相关)

3. 沟通能力

第4章 架构师的价值与价值等级

L1: 一知半解型:

L2: 拆解还原型

L3: 革新型:

L4: 革命型:

第5章 架构师的职业发展路径:


前言:

本文主要探讨架构师的能力要求是什么?架构师价值体现在哪里?架构师的价值体现有几个层次?

第1章 什么是架构?

软件架构(software architecture)是有关软件整体结构与组件抽象描述,用于指导大型软件系统各个方面的设计。

软件架构是一个系统的草图

组件切分:系统中各个组件的抽象切分和构成。

组件关系:明确的各个组件之间的连接关系。

组件通信:明确的各个组件之间的通讯方式。

在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口(计算机科学)来实现。 软件体系结构是构建计算机软件实践的基础。

第2章 架构师初识

2.1 什么是架构师?

百度百科:

架构师是一个技术性角色:确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点

真正的系统架构师,是软件架构的设计者,是企业软件产品、新技术体系的构建者


2.2 架构师的分类?

架构无处不在,有大有小,有很多种分类方法,可以根据网络分层分,也可以根据业务领域分,这里仅仅列举几个案例:

系统架构师、子系统架构师、组件架构师、中间件架构师、运维基础设施架构师、前端架构师、后端架构师、安全架构师、无线网架构师、企业IT架构师


2.3 架构师的关注点?

主要着眼于系统需求的“技术实现的架构”,不是人力资源的分配或项目管理,也不是具体的编码实现,包括:

(1)技术实现的可行性

(2)技术实现的架构


第3章 架构师的能力要求?

1. 技术能力(业务相关)

技术能力,这是最重要的能力。

科学与技术常常放在一起,科学解决理论问题,技术解决实际问题。

所谓技术能力,是指:

(1)熟悉主流技术基本原理的能力:销售需要熟悉人性、管理者需要熟悉管理的软技能、架构师需要熟悉各种主流技术的原理,这是架构师的立身之本

(2)熟悉各种业务应用场景的能力:所有的项目都有它特定的业务场景,用于帮助他们的客户解决问题。不同的业务场景本质就是客户的需求。所有的技术方案,都必须是为客户的业务需求服务的,再好的技术方案,如果脱离了客户的需求,也是空中楼阁,南辕北辙,容易犯纸上谈兵的错误。

(3)自身快速解决问题的能力:架构师需要有能力采用系统的、结构化的方法以及利用自身丰富的经验,从各种纷繁复杂的问题的表面现象中,进行系统、有序的梳理,逐渐排除干扰因素,快速的进行问题的收敛和定位。架构师的优势在于在现象之外,看到问题背后的本质,架构师的优势在于"系统性”和“全局性”。

(4)预见技术难点和技术风险的能力:架构师要能够预见技术方案未来的可能会遇到的各种难点风险,包括技术的和因技术导致的非技术的风险,并提出预见性的预防措施。这是一个容易被忽略的能力,但这个能力对于推动项目的顺利进展,避免项目遇到各种幺蛾子事件起到了至关重要的作用。未来的不确定性是任何领域都面临的共同难题,架构师此处的价值在于,把技术带来的不确定性展现出来,协作管理者把不确定性的影响控制在可接受的范围以内。

一个优秀的架构师:

广度上,不断拓展自己的知识面。

深度,深耕和深挖关键的、核心的技术领域。

架构师不能长期性的陷入到项目中重复性的琐碎事情之中,它将会使架构师逐渐失去对技术系统全局性把控能力,对技术的长期演进的预见能力


2. 架构能力(计算机相关)

架构能力主要表现为:

(1)熟悉主流的架构的能力:

主流的架构是经过行业内各方力量总结、汇总、甚至验证过的成功的经验总结。

熟悉各种主流架构的特点、缺点、优点、应用场景,可以避免架构师闭门造车,利用或选型好主流的架构,可以避免项目承担不必要的风险、可以极大的加速项目的进展。


(2)抽象的能力

架构师对系统组件的分解大都在抽象层面,可以适用于不同编程语言的具体实现。

只有高度的抽象,才能抓住现象背后的本质,才能具备广泛的适应性和扩展性。这是架构师与程序员一个重要的区别。

程序员重在通过具体的编程语言实现具体的目标,是可工作的软件,重在实现,因此有时候看起来是“有形”和“实在”

架构师重在组件的抽象性和适应性,是纸面上的设计,重在“质”和“核”,因此有时候看起来是“无形”或“虚”


(3)设计的能力

架构师拿到的是需要和目标,架构师需要有能力把需求和目标,转换成内部的设计。

设计相对于实现而言的,设计本质上是一种技术的规划。设计是把一种设想,通过合理和周密的技术规划,通过各种方式表达出来的过程。

这个规划能力与项目管理的计划是类似的,

项目管理规划的对象是:人、时间、金钱等现实资源;

架构师规划的对象是:CPU的计算、内存、软件的组件等计算机资源。


(4)整体规划的能力:

架构师是站在系统的视角审视整个系统内的组件以及之间的关系,甚至要跳出系统,站在系统外,审视系统整体表现出来的外部行为。

这是与程序员另一个重要的区别。

程序员是“局部优先”为基本原则,确保负责的模块,功能和性能都达到最优。

架构师是“整体最优”为基本原则,确保系统在整体性能和效率最优,有时候会牺牲一部分”局部最优”来换取“整体最优”。

比如: Y=A*B,

方案1:A=9,A是最优的,但B=1;整体效果Y=9*1=9; 

方案2:A=5,  A不是最优的,B=5,也不是最优的; 整体效果Y=5*5=25,方案2性能远远大于方案1;


(5) 拆分和还原的能力

一般情况下,大型的目标软硬件系统都是比较复杂的,是经过无数前人的劳动,才造就了当下的目标系统。

架构师需要在此基础上,添砖加瓦。但如果不熟悉现有系统,架构师很可能添错了砖,加错了瓦,使得系统漏洞百出。

因此架构师需要首先熟悉现有系统的架构。架构师要有能力把现有的系统进行拆解,拆解成简单的组件、理解组件的关系、组件之间的工作流程和工作原理,最后,再还原成整体架构,从系统外看系统的整体行为。

客户的新的需求或目标是糊的,复杂的,架构师需要对客户的需求和目标,进行拆分/解,把复杂变成简单、把模糊变成具体,然后再把这些拆解后的、具体的功能需求,按放到现有系统的各个组件上。


(6) 拆分与重构的能力

这是容易被忽略的能力,相当多的架构师,是在现有系统上做一些添砖加瓦增补的工作,因此这方面的能力大多情况下无法体现。

一个架构师,如果有幸参到一个从无到有,有小变大,由简单到复杂演进的系统中,那他是幸运的,这时候拆分与重构的能力就尤为重要。

一个复杂系统的形成,中间会经历很多次的演进和重构,重构的能力是上述多种能力的综合:需要熟悉业务系统,需要熟悉现有系统的架构,还需要熟悉重构后的系统架构等等。

如果说“拆分与还原”的能力是“改良”的话,“拆分与重构”就是“革新”,甚至是“革命”。在一个旧系统之上,重构一个具有旺盛生命力的新系统,对于重构者的能力的要求是相当高的。除了技术上的难度外,还会受到原先系统内力量的阻力、抗拒、质疑,也会受到新系统架构不确定性带来系统外阻力、抗拒、质疑。


3. 沟通能力

最终的技术实现,都是要靠人完成的,沟通能力,虽然不是技术能力,但也非常重要。

作为一个优秀的架构师,你需要清楚的知道客户的需求,需要不断和需求人员进行沟通,以达到客户真正的目的。

作为一个优秀的架构师,你需要与项目中的不同团队、不同人进行各种沟通,以推行你的架构设计和架构的主张。

作为一个优秀的架构师,你需要在不同团队之间存在技术争议模棱两可的时候,进行技术实现上的平衡和仲裁。

作为一个优秀的架构师,你需要有能力与组织的决策者沟通,给决策者提供技术的演进和发展方向的信息,有时候甚至说服决策者采用和推进某种技术方案。

其实,不仅仅是架构师,只要需要与人打交道,都需要提高自己的沟通和表达能力。

有一个普遍而有意思的现象,做领导的大多不是技术特别牛的,但沟通能力肯定是最好的,这体现出沟通能力及其重要的作用。


第4章 架构师的价值与价值等级

在这里,把架构师的价值分为4个等级:

L1: 一知半解型:

了解或熟悉系统的局部架构,能够在现有系统之上进行添砖加瓦增补工作,以及常规的维护工作。

L1等级的架构师的价值,主要体现比其他人多了解一点业务系统全局性的知识,能够有助于在不同的组件之间进行适当的协调,辅助其他成员共同完成添砖加瓦增补任务。

L1等级的任务,很难体现架构师真正的价值,架构师的价值只能通过其他渠道得以体现。

L1等级的价值,只能体现在当前系统,很难迁移到其他系统之上。


L2: 拆解还原型:

熟悉现有系统的架构,能够对现有的系统进行拆解与还原,熟悉系统的各个组件静态的结构关系以及动态的交互关系。

L2等级的架构师的价值,主要体现对系统有一个全面的认识,能够做出全面的判断和决策,能够领导不同的团队进行技术协作,并在不同团队的“局部优先”发生冲突的时候,做出“全局优先”的仲裁。

L2等级的任务,能够体现架构师的表面价值

但L2等级的价值,能否迁移到该系统之外,取决于该系统本身的性质。

如果当前的系统是公司内业务专有系统时,就很难迁移到其他系统之上,更难迁移到行业外的系统之上。


L3: 革新型

能够对现有系统架构进行拆解还原型,并能够在现有的系统架构基础上选用新的方式进行优化。

L3等级的架构师的价值,除了体现在对现有系统设计的增减功能实现的决策权,还体现在对现有系统未来优化演进方向选择上以及如何优化技术决策上,能够带领技术团队走向进一步的完善

L3等级的任务,能够体现架构师的核心价值

L3等级的价值,能够迁移到其他系统之上,可以迁移到现有系统之外。


L4: 革命型:

能够推翻现有的系统架构,建立一套全新的、超越现有系统架构的架构,并能够给组织带来意想不到的收益、甚至开辟新的技术领域和业务领域。

L4等级的架构师的价值,主要体现在,当组织现有技术架构遇到困境,通过改进无法得到效果时,能够代领组织突破现有技术架构的局限,重构一套新的技术架构,使得自组织效率、效益的得到极大提升,为组织创造新的价值,为开辟一片新天地。

L4等级的任务,能够体现架构师的超核心价值

L4等级的价值,不但可以迁移到现有系统之外,还可以创造新的系统。


第5章 架构师的职业发展路径:

系统级架构师通常由系统开发工程师SE或程序员或组件架构师发展而来,可以向研发总监,高级技术总监、或技术专家、首席架构师、CTO等高层次的方向发展。


结束语:

上述的表述纯属个人的理解,有些表述,特别是对架构师的能力与价值部分,纯属自己个人的新定义,有不当之处敬请一起探讨。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[杂谈随感-4]:架构师应具备的技能以及架构师的价值等级 的相关文章

随机推荐

  • Facebook数据中心实践分析,OCP主要工作成果介绍

    Facebook数据中心实践分析 OCP主要工作成果介绍 摘要 用讲故事的方式重点介绍了Facebook在数据中心方面的实践 其成立开放计算项目 OCP 以来的主要工作成果 以下为正文 保密本就是数据中心行业的惯例 2014年11月 我独自
  • mw325r已断开服务器无响应,水星mw325r路由器恢复出厂设置之后上不了网怎么办?...

    我把水星mw325r路由器恢复出厂设置之后有点问题了 可以教教我怎么解决吗 这是一个典型的重置路由器没有正确设置的案例 路由器恢复出厂的意思就是跟刚买来的时候一样 没有任何用户自己的配置 所以 正确配置路由器才可以上网 接下来家用路由器网小
  • Python 机器学习实战

    1 机器学习概述 机器学习正在迅速改变我们的世界 作为人工智能的核心 我们几乎每天都会读到机器学习如何改变日常的生活 一些人认为它会带领我们进入一个风格奇异的高科技乌托邦 而另一些人认为我们正迈向一个高科技天启时代 将与窃取我们工作机会的机
  • RabbitMQ消息堆积问题及惰性队列

    一 消息堆积 1 消费者堆积问题 当生产者生产消息的速度超过了消费者处理消息的速度 就会导致消息在队列中进行堆积 一定时间后会造成队列达到存储的上限 那么最开始进入队列的消息可能变成死信 会被丢弃 有关死信以及死信消息的处理问题的详细介绍可
  • LeetCode刷题-6

    数组 88 合并两个有序数组 题目描述 题目样例 Java方法 直接合并后排序 思路及算法 代码 执行结果 复杂度 Java方法 双指针 思路及算法 代码 执行结果 复杂度 Java方法 逆向双指针 思路及算法 代码 执行结果 复杂度 题目
  • 台式机计算机无线开关在哪,电脑无线wifi开关在哪里打开

    电脑无法打开wifi问题有很多 其中物理方面问题就是无线开关根本没打开 怎么可能连得上wifi呢 下面是学习啦小编整理的打开电脑wifi无线开关的方法 供您参考 打开电脑wifi无线开关的方法一 点击右下方图标 选择 所有设置 菜单 然后选
  • C#之按位或‘

    这里不介绍按位或按位与的二进制算法 网上大都说的都是关于int类型二进制的按位与和按位或的用法 这里我们来看看bool类型的用法 具体看代码 static void Main string args int i 0 Console Writ
  • Git操作记录

    版权声明 本文为博主原创文章 转载请注明出处 http blog csdn net shulianghan https blog csdn net han1202012 article details 18812279
  • MongoDB的and和or,嵌入式文档,数组查询

    现在 有一张数据表或者是集合 结构如下 我们现在对集合进行and和or查询 如下 1 隐式and查询 查询年龄大于15 且性别属于男性的数据 db tb find age gt 15 sex male 关键字 gt是大于的意思 结果 2 显
  • 面向对象编程之多态性与鸭子类型

    目录 一 什么是多态 二 多态性 三 abc抽象类模块 四 鸭子类型 六 总结 一 什么是多态 一类事物有多种不同的形态 如 动物有猫 狗 鸡等 二 多态性 所谓多态性指的是不管各对象是什么数据类型就直接使用各对象中统一的方法函数 从一定程
  • 向量与矩阵求导与实例分析

    说明 1 相关内容经过诸多学习内容整理 2 比较权威的学习源可参考维基百科 https en wikipedia org wiki Matrix calculus Scalar by vector identities 3 机器学习关联内容
  • IDEA如何创建一个web项目

    1 点击File gt new gt project 选择maven 2 点击create from archetype 在下面选择webapp 3 下一步 groupid随便填 4 下一步填写项目名字然后完成创建项目 如果第一次创建需要等
  • Python使用K-means聚类分析

    Python使用K means聚类分析 文章目录 Python使用K means聚类分析 介绍 1 集群标签作为特征 一 k 均值聚类 二 示例 加州住房 2 KMeans 总结 介绍 提示 这里可以添加本文要记录的大概内容 本文将使用所谓
  • NP是什么意思?

    举例叙述 转自百度百科 纯为学习笔记 编辑 在一个周六的晚上 你参加了一个盛大的晚会 由于感到局促不安 你想知道这一大厅中是否有你已经认识的人 你的主人向你提议说 你一定认识那位正在甜点盘附近角落的女士罗丝 不费一秒钟 你就能向那里扫视 并
  • 实验5-3 使用函数求奇数和 (15分)

    http pta patest cn pta test 13 exam 3 question 461 include
  • python官网网址是什么意思_python官网是什么

    python官网就是python的官方网站 网址为www python org python官网是我看过的比较简洁的官网之一 进入首页映入眼帘的首先是几个python代码的示例 用以表示python的一些特性 有趣的 是 python官网几
  • PageObject模型和自动化框架(一)

    本文是我对UI自动化测试和基于Appium自动化框架的一点点浅显的总结 如果表述中有什么谬误 欢迎博友热心指出 在此提前表示感谢 另外 该文也算是学习过程中的一个笔记 如有入门自动化相关行业的朋友 欢迎交流 UI自动化测试 Web app和
  • flutter 创建分支和合并代码

    参考 commit指令其实也就是把本地变化提交到本地仓库 push指令就是把本地仓库推送到远程仓库 出现china ImCall Video has no tracked branch是因为创建的分支还是本地分支 update拉远程的数据时
  • Vue项目使用ant-design-vue文件上传到腾讯云

    cos js sdk v5安装使用 首选安装cos js sdk v5 npm install cos js sdk v5 定义Bucket Region 桶地址 config index js export const bucket Bu
  • [杂谈随感-4]:架构师应具备的技能以及架构师的价值等级

    目录 前言 第1章 什么是架构 第2章 架构师初识 2 1 什么是架构师 2 2 架构师的分类 2 3 架构师的关注点 第3章 架构师的能力要求 1 技术能力 业务相关 2 架构能力 计算机相关 3 沟通能力 第4章 架构师的价值与价值等级