我心里优秀架构师是怎样的?

article/2025/8/17 11:24:03

先声明,这不是在打广告……。之所以那么认真看个宣传视频,是因为曾经阅读过李智慧老师的书籍(大型网站技术架构--核心原理与案例分析),书写的挺好,有兴趣的可以阅读下。

本文内容来源于:李智慧架构师训练营宣传视频。主要讲了:什么是架构师、架构师应具备什么素养、架构师基本工作和主要职责、架构师的学习和思考等等。本人觉得讲的不错,又因为在视频中干“”,很难有个整体的认识,所以没忍住就把视频里的内容全部敲出来了,主要是方便理解和记忆。

讲解内容整理后:

1   在成为架构师的路上,有哪些困难?

1.1  做编程和做架构的区别

  • 做编程:你只需要根据给定的功能模块和技术要求完成开发工作就可以了。

  • 做架构:需要全局思考各种技术、业务、资源的要求,根据要求寻找最合适的架构方案。

    所以编程和架构几乎是完全不同的两项工作。

1.2  怎么从程序员成为架构师?

(引出问题-->解决问题)

并不是你有了多年的编程经验,就自动获得了架构设计的能力,就能够成为架构师了。事实上,如果你没有从架构师的角度去思考问题,带领团队从整体完成一个系统的架构设计和开发,那么你永远也不会了解如何去做一个架构师。而你不去做一个架构师,又永远不会有机会带领一个团队完成一个系统的架构设计与开发。

所以这里似乎就形成了一个死循环,而突破这个死循环的关键就在于两点:

  • 第一 你要表现出足够优秀的开发能力,让领导相信,即使你没有架构设计与领导开发的经验,你也能做好架构师这个角色,从而任命你做架构师;

  • 第二 你在成为架构师之前,就掌握了足够的做架构的方法和能力,在被任命为架构师之后,不会手足无措把事情搞砸,而是有条不紊的开展工作,打好你的架构设计的第一仗。

成长为一个架构师,最主要的困难在于:

  • ​第一 你是否在编程这件事情上表现出足够的优秀,从而获得做架构的机会;

  • 第二 你是否能够掌握好做架构设计的一般方法,能够把握住做架构设计的机会;

  • 第三 你是否拥有关于系统架构设计足够的知识储备,能够在软件架构设计的生命周期,以及你自己的职业生涯中不断地迭代进步,使你负责的系统和你自己的职业前景都变得越来越好。

2   架构师应当具备怎样的素养?

如何才能成为一个优秀的架构师?一个优秀的架构师应当具备怎样的素养?换句话说,优秀的架构师应该拥有哪些能力,我这里总结了八个方面。

2.1  第一点:优秀的编程能力

   对于架构师最大的误解就是架构师不需要编程。事实上,编程是架构师最基本的能力要求,表现出足够优秀的编程能力,才能够获得成为架构师的机会。架构不是画两张架构图就完事了的,要在编程中开发落地,开发过程中遇到的编程问题,需要架构师亲手去解决;系统维护的过程中出现的问题,也需要架构师对编码非常熟悉才能够解决。这些事情都需要架构师有非常优秀的编程能力。

2.2  第二点:设计文档的能力

   架构师固然要自己写出好的代码,但是更重要的是要让整个开发团队都能够写出逻辑清晰、易于维护的代码。要实现这一点,就需要开发团队在架构的约束下进行开发,每个人都知道自己的工作在整个系统架构中的位置和作用,和其他同事的关联依赖关系,这些信息就需要架构设计文档来传递。设计文档是架构师最本质的工作,而要想做好设计文档使团队每个人的开发工作高内聚、低耦合、依赖关系清晰,那么架构师必须具备良好的模块分解能力。

2.3  第三点:模块分解的能力

    我见过一些优秀的程序员,在成为架构师以后,主要的工作方式是自己承担了最主要的甚至大部分的工作,然后让其他的程序员帮他打杂,那么他今天请假,整个开发团队都不知道该如何工作了。事实上,架构师要让团队每个人都发挥出价值,并持续地进步,这样自己和团队才是可持续发展的,而不仅仅是完成工作而已。这就需要架构师有良好的模块拆解能力,将开发任务拆解成高内聚、低耦合的模块,分配给团队成员。如果说早期单体架构的时代,模块关系混乱的问题还没有那么突出的话,微服务架构就会让那些不关注模块依赖关系的架构师吃尽了苦头。

2.4  第四点:大规模复杂系统架构的能力

    绝大多数的架构师都没有设计过一个淘宝或者Facebook的机会,但是每个合格的架构师都应该知道:如何去设计淘宝这样一个大规模复杂系统的架构。一方面淘宝这样成功系统的架构模式是架构设计师最主要的参考经验;另一方面是检验架构师学习能力的试金石。

2.5  第五点:掌握典型技术解决方案的能力

    像负载均衡、分布式缓存、消息队列、NoSQL,这些几乎是很多稍具规模系统的标配。那么作为一个架构师除了会用这些技术,关于这些技术的内部原理、优缺点也必须要掌握,这样才能够选择具体技术产品(技术选型),解决使用过程中的问题时游刃有余。

2.6  第六点:系统优化以及保障系统稳定的能力

    架构师不是在开发初期丢出一张系统架构图就完事了(比喻:就像当爸爸不是怀孕前期丢出亿个精子就完事了的)。架构师要在系统的整个生命周期内对系统负责,需要持续不断地对系统性能进行优化,保证系统稳定、高可用的使用体验。

2.7  第七点:数据处理与应用的能力

    早期系统架构设计主要是围绕业务需求展开的,但是随着大数据时代的到来,越来越多的系统架构开始围绕数据展开,构建所谓的人工智能系统,因此架构师必须要掌握处理与应用数据的能力。

2.8  第八点:领导与管理的能力

    架构师要想让自己的架构设计落地,变成真正运行的系统的架构,需要处理各种内外部的关系,需要领导开发团队按照自己的架构设计进行开发。那么架构师也许不是严格意义上的管理者,但是他必须要有一定的领导和管理能力才行。

3   架构师训练营的初心是什么?

(4点讲解初心)

    业界关于架构师有一些误解,一方面觉得架构师是高大上的工作,画画架构图、对程序员的工作指指点点就可以了;另一方面又觉得架构师没什么用,可有可无。在具体的开发实践中,一方面对架构设计工作不重视,拿到需求几乎没有任何设计一上来就撸代码;另一方面随着需求不断迭代,项目逐渐失控陷入混乱,又开始埋怨当初没有好好做设计。很多关于架构的资料将架构等同于高并发、高可用系统的架构,各种分布式、熔断、限流,而绝大多数的人面对的开发任务,既不需要那么高并发,也就没有那么多的高可用,学了很多架构还是不会做架构。很多想成为架构师的开发人员,对如何成为架构师的技术发展路径也不清晰,无法系统的学习架构师相关的技能栈;而很多已经承担着架构设计职责的架构师,没有系统的方法论,既不能够输出清晰的架构蓝图,也无法高效组织培养团队。关于架构和架构师的种种误解和乱象,我想写点什么的念头已经由来已久了。

   架构设计是开发中的一个重要组成部分,架构师是开发团队中的重要角色。架构不是高高在上的,而是实实在在的,架构有自己的科学方法和最佳实践。架构师不是在开发中指手画脚的那个人,而是技术团队的领路人,他用架构设计引导技术团队完成开发任务,在遇到困难的时候,又能够解决具体问题的那个人。(广告内容:极客时间这次找我开设《架构师训练营》,我想在这里把我多年思考经历的关于架构的方法和实践,架构师的成长和修炼讲出来。在这个过程中,如果能够对你有所启迪我会非常高兴。如果能够让软件开发这个行业变得更加科学规范我会更加的荣幸)--广告内容也打出来了,算是对创作者的一份尊重吧。

4   架构师训练营有哪些特点?

(架构师的基本工作和主要职责)

    这是架构师训练营,而不是架构训练营。架构是没办法训练的,每个项目,每个软件都有各自的需求特色,每家公司都有自己的企业文化,每个架构师都有自己的背景经验,所有的这些都会导致没有任何系统的架构设计是相同的。架构设计必须要面向场景和实践,从实际需求出发,落到实际应用中去。但是架构师其实是可以训练的,设计模式、架构模式、技术原理、设计方法、管理技巧,这些都可以通过训练和学习获得。

我们整个课程是按照架构师的职责维度组织的。

  1. 一个新项目必须要从架构设计开始,那么架构设计的输出是什么?这就是架构文档要讲的。

  2. 有了架构设计要进行开发了,如何使开发过程遵循架构设计?如何使开发者尽量关注业务实现?需要架构师用开发框架规范开发过程,聚焦业务实现,这就是框架设计要讲的。

  3. 有了开发框架,如何使不同的开发者任务职责清晰?使他们开发的代码模块高内聚、低耦合,需要架构师做好模块拆分,这就是模块分解要讲的。

  4. 现在的主流系统架构是微服务架构,微服务的本质其实就是模块服务化,所以这部分课程我也会重点讲微服务以及远程调用框架。

  5. 随着系统规模的不断增加维护代价越来越大,架构师需要对代码进行重构,这就是代码重构要讲的。而重构和设计模式是分不开的,其实这一部分主要是讲设计模式。

以上这些都是架构师的基本工作。都是代码、设计这些基础的,似乎和期待的高大上的系统架构没有什么关联。我们前面说过,你几乎没有机会去设计一个淘宝这样一个大规模系统的架构,但是再小的系统你也应该把上面的工作职责做好,才能够成为一个合格的架构师,但是大规模分布式系统的架构设计方法又是每个架构师都必须应该掌握的,不管你是不是会用到,因为这是架构师的常识。

   系统架构会讲述淘宝这样的系统是如何设计的。系统设计中会用到各种各样的技术方案,分布式缓存、NoSQL等等。如何用好这些技术,选择合适的实现方案,在使用过程中解决各种各样的问题,这些技术方案的架构设计原理是什么,技术选型会进行讲述。在系统的运行过程中,性能优化是架构师最主要的职责,性能优化:一是需要方法;二是需要对各种底层技术原理有深刻的理解,才能够准确地判断出性能瓶颈。也许架构的好坏会因每个人的审美不同判断不同,但是架构师水平如何,在性能优化的时候就能看得出来。性能优化课,会对性能优化方法和底层技术原理进行讲述。系统运行期如果常常出故障失效,那么通常架构师是要背锅的。如何保证系统高可用,安全稳定进行讲述。面对各种新技术,架构师如何突破自我,超越通常意义的技术架构和开发获得新的成就和机会,数据应用和技术创新会讨论大数据、AI、区块链、物联网,这些技术框架原理和应用场景。架构师是不能一个人工作的,架构如果不能够落到系统实现上,不能够被开发人员执行,就是废纸。如何和人打交道,如何在工作中成就自己,成就团队成员,技术管理进行讲述。事实上,这个按架构师职责维度组织的课程内容和前面提到的架构师素养也是对应的,实现相应的职责,需要具备相应的素养。

5   参加架构师训练营,需要具备什么基础?

(架构师的学习和思考)

    除了具有一些最基本的编程技能和经验,并不需要额外的条件。但是要想在训练营中有所收获,你必须要善于思考,架构设计和编写程序是不同的,程序写错了是不会运行,但是架构无所谓对错,只要最后程序能够正常运行这都是OK的。但是架构有好坏之分,有合适和不合适之分,有精妙和糟糕之分,你不去思考就不会明白为什么要这样设计,这样设计有什么好处,好在哪里。在训练营中,我们会学习讨论很多的技术,这些技术本身也是有架构设计的,如:操作系统、数据库、虚拟机、分布式缓存、微服务框架等等,我们在学习这些技术的时候,要从架构设计的角度去思考,它的设计原理是什么,而不是使用者的角度去研究它怎么用。这个过程也是训练你架构思维的过程,但是可能会对你造成一定的困扰和痛苦,需要你做好准备。

    这句话小编非常认同--这些技术本身也是有架构设计的。所以我们在进阶某项技术、研究其源码时,更应该侧重于架构设计原理,这是设计者在某项技术上的核心思想,是你学习架构设计的重要知识来源,掌握了这些技术的架构设计,在你未来自研的道路上添砖加瓦。

视频链接:我心里优秀架构师是怎样的

码字不易,还请三联:👍、在看、分享

更多优质资源:👇

   


http://chatgpt.dhexx.cn/article/bPOKPFbE.shtml

相关文章

同是程序员,为什么架构师待遇比你高一倍?

架构不是一个职业而是一种能力,每一种架构师只不过是在不同的领域里面使用不同的技术,没有什么可对比,就好比如你问一个篮球明星和一个足球明星有什么区别一样! 一、架构师需要考虑四个问题 确定系统干什么不干什么,也就是说系统的边界在哪里? 确定架构内部的模块与模块之间…

从程序员到架构师的精进之路

“程序员到架构师的技术成长之路分为几个典型的阶段:工程师 - 高级工程师 - 技术专家 - 初级架构师 - 中级架构师 - 高级架构师” 程序员到架构师的技术成长之路分为几个典型的阶段:工程师 - 高级工程师 - 技术专家 - 初级架构师 - 中级架构师 - 高级架构…

程序员到底多牛才能成为架构师?

身为技术人,相信你也思考过这个问题:工作了几年,代码写得非常熟练,上线的程序也少有 bug ,时不时还能搞个技术分享,但接下来要往哪个方向发展呢? 想来无非是 3 种选择:专精技术、转型…

进击的Android程序员,架构师的成长之路

在IT行业,很多工作一定年限的程序员感觉自己到了瓶颈不知道如何突破,成长为别人眼中的架构师。 架构师对很多人来说非常神秘,那成为架构师都具有哪些要求呢? 我们先来看看互联网公司对于不同阶段的Android开发者开出的薪资水平&…

【哈士奇赠书活动 - 20期】-〖从程序员到架构师〗

文章目录 ⭐️ 赠书活动 - 《从程序员到架构师》⭐️ 编辑推荐⭐️ 作者简介⭐️ 赠书活动 → 获奖名单 ⭐️ 赠书活动 - 《从程序员到架构师》 内容简介: 《从程序员到架构师:大数据量、缓存、高并发、微服务、多团队协同等核心场景实战》分为数据持久化…

普通程序员也能进阶架构师?

程序员都应该掌握架构设计的能力。前端、客户端、后端、大数据、运维、测试……各领域都涉及到了架构设计。 从P7开始,架构能力是晋级的关键考察点,很多技术和业务不错的人在面临职业晋升考核的时候,往往就是卡在了架构设计这个部分。 不同于…

架构师究竟比高级开发厉害在哪?

作者 | hsm_computer 目前我在互联网公司里干了1年多,接触了多位技术和业务的架构师,由于我正在升级到架构师,所以能直观地感受到高级开发和架构的差距,而且,对于高级开发如何升级到架构师,本人目前更有切身…

云智慧10年资深架构师带你了解:普通程序员向架构师成长必经之路

本文转录自:拥有10余年架构师经验的高驰涛,在云智慧AIOps社区第4期Meetup上进行的《普通程序员向架构师进阶之路 》分享。 PPT及回放地址: 线上Meetup第4期|普通程序员向架构师进阶之路(内含PPT下载及回放)…

SyncToy本地备份工具安装使用+taskschd.msc定时备份

背景 2018-06-10日,学习python时候脑残删除eclipse项目时勾选了删除磁盘内容选项,导致之前加入到同一项目标签中的python代码全部被删除,虽然使用硬盘恢复工具尝试恢复,但是还丢失了部分数据,经过此次事件凸显备份的重…

SyncToy 2.1

微软同步备份软件 SyncToy 2.1 下载地址 http://www.microsoft.com/en-us/download/details.aspx?id15155 1、synchronize&#xff1a;左右2个位置的增删改完全同步&#xff1b; 左<————>右 这是最主要的双向同步功能&#xff0c;会依据左右两个目录文件的增加…

Windows 局域网中文件进行自动同步备份通过synctoy和计划任务实现

SyncToy安装使用详解 SyncToy-- 微软同步工具:它可以让您的文件在不同的磁盘和文件夹中保持同步并且可以随意处理,甚至可以输入UNC以处理网络驱动器上的文件和任何设备上的信息 SyncToy是一个免费的、易于使用的工具。高度的自定义功能可以帮助用户从繁重的拷贝、移动及同步不…

Synctoy2.1通过计划任务备份文件到网络驱动器注销不生效问题

最近因工作上有个需求,就是把部分重要的文件备份起来,以前备份大写办公室文档都是用服务器windows2003系统自带的备份功能备份,然后拷贝到移动硬盘就完事了,但是这次的文件特别大,总共13T,所以移动硬盘不合适了,所以搞个了nas,4个4T的硬盘总共16T刚好够用.然后找了个微软免费的…

linux 文件夹同步备份,SyncToy实现本地文件夹同步备份

SyncToy实现本地文件夹同步备份 一、下载SyncToy SyncToy 2.1是一个免费的应用程序&#xff0c;它可以同步文件和文件夹到不同的位置。典型用途包括共享文件&#xff0c;如照片、与其他计算机和创建文件和文件夹的备份副本。 可以根据系统类型下载对应的SyncToy版本。 一、安装…

SyncToy使用介绍

微软的免费午餐 同步工具SyncToy试用 随着硬盘容量的日益增加&#xff0c;硬盘上的文件也越来越多&#xff0c;需要管理的文件及文件夹也随之增加了&#xff1b;同时拥有第二台电脑也很常见了。那么面对如此繁多的文件&#xff0c;如何更好更高效的做到交换文件和文件同步呢&am…

【软件推荐】synctoy 本机同步的最好的软件 本机不同目录 本机硬盘与移动硬盘同步

下载&#xff1a;http://www.winwin7.com/soft/7726.html 这是微软的良心之作。界面简洁&#xff0c;使用简单。经过测试运行稳定。 使用步骤&#xff1a; 1.点击“新建同步组” 2.左右选择两个目录&#xff0c;即要备份的目录&#xff0c;和备份到哪个地方&#xff0c;点击下…

微软通过共享文件夹的思路,使用工具SyncToy实现两台windows机器间的文件同步

一、在备份主机安装软件SyncToySetupPackage 下载地址&#xff1a;https://synctoy.en.softonic.com/ 二、点击下一步 三、选择I Agree&#xff0c;然后点击下一步 四、选择安装路径&#xff0c;选择Everyone&#xff0c;然后点击下一步 五、点击下一步 六、点击关闭 七、选…

通过SyncToy进行服务器定时服务备份流程

2019独角兽企业重金招聘Python工程师标准>>> 源服务器及备份服务器版本&#xff1a;windows server 2008 R2 使用工具&#xff1a;SyncToy&#xff0c;Task Scheduler 1.在备份服务器中安装SyncToy 安装完成后 注&#xff1a;左侧为源服务器&#xff0c;右侧为备份服…

Synctoy2.1使用定时任务0X1

环境描述&#xff1a;公司需要在windows上面使用双向文件同步&#xff0c;目前发现SyncToy可以实现这个功能&#xff0c;但是在Windows 2012上面 &#xff0c;添加定时任务的时候&#xff0c;执行状态总是0x1&#xff0c;定时任务配置确认多次&#xff0c;肯定没有问题&#xf…

用SyncToy进行两台服务器之间文件同步

注意&#xff1a;未安装此软件的主机必须把需要同步的文件夹共享为everyone&#xff0c;并且赋予读写权限&#xff0c;如下图所示 共享后可在属性中查看网络地址&#xff0c;如下图 微软官网下载安装包安装完成后打开 3.点击上图”create new folder pair”后弹出窗口&#xff…

window多台服务器文件同步,SyncToy 两台Windows电脑文件同步

下面,我将详细的对如何使用该工具做一说明。 一、服务器说明: 二、安装SyncToy: SyncToy下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=15155 SyncToy v2.1工具大小:2.9M 安装要求:安装之前须安装Microsoft.NET Frameworks 默认安装路径:C:\Progr…