玩转这四点 架构师之路轻松进阶

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

架构师一直是程序员「羡慕且追求」的高度,今天来说说我眼里优秀的架构师该如何定义。毕竟我也曾经是一名架构师:)

在开始今天的话题之前我说一个和我前公司P9现在已经是P10的对话。

问题是这样的他说公司中间件架构师不熟悉公司业务,很多事落地不了,非常的疑惑。他最近主要任务就是和这些架构师聊天解惑:)

接着他说了一个类比的故事大概是这样的,

我们(架构师)要建设一条高速公路,来分别看看公路建造者(架构师)和司机(业务研发)的视角。

1,建造者 他们选用最好的沙子 水泥 更好的设计图纸和操作流程保证质量和处理异常情况(比如出入口提示,超车,紧急停车带)

2,司机同志 他们关心什么?

司机关心路宽么,有堵车可以提前告知么。

司机关心路平整么?当然关心,关心。

引出一个的问题:司机(业务研发)关心用最好的水泥么 ?

想象你是司机(业务研发)你你关心吗?

A,关心

B,不关心

欢迎留言留下你的思考。

我觉得一名优秀的架构师,在设计系统时需要有以下这四项关键能力:「平衡取舍、预判未来、抽象思维、容错机制」。

1. 平衡取舍

一个架构本质上总会有优有劣,它不可能是完美的、普适的,也不存在一个架构在 A 场景能用,在 B 场景也最适用的情况,所以就需要我们准确判断,作出取舍。

我们可以根据具体的业务需求来调整架构,也就是以当前的业务需求,选出最匹配的架构。另外,架构师还需要根据现状衡量好需求和资源、效率和安全、时延和吞吐等等之间的关系,做出判断。

比如对于在线交易系统,可能更重要的是保证它的低时延,因此就可以牺牲一定的吞吐量,而对于离线系统,吞吐量则更重要一些。

2. 预判未来

架构师需要具备一定的未来的预判能力,因为架构的调整周期通常比较长。这也是程序员和架构师之间一个很大的区别所在。

程序员负责一个项目,在当前的互联网大背景下,项目的迭代周期非常快,基本以天或周为单位,最多一个月。如果发现不合适的代码,需要重构,程序员基本也能在几天或几周内就能完成重构。

而架构的调整是相对漫长的过程,可能需要数月,甚至要几年。因此,在设计架构时就需要架构师具备预判意识,对很多不确定的事情做出预判和选择,诸如未来访问量会增长到什么量级,会不会产生新的业务,这些会对系统产生什么样新的要求等等。

3. 抽象思维

除了懂得取舍和拥有预判意识,架构师在设计架构时还要掌握抽象的方法,不能胡子眉毛一把抓,要做好分层和区隔。

因为架构师面对的是一个很庞大的系统,为了避免过早陷入细节,不要去看各个组件的细节,而是把它们的角色定义下来之后,再分块来思考。而在看每个分块时,其他分块都可以视为一个抽象的概念,另外,也需要考虑复用的问题。

举个例子,我之前在饿了么做在线客服机器人,就运用了分层思想,并且高复用,一个对话机器人可以完成各种各样的业务需求。这其实是一个非常复杂的系统,里面有各种各样的对话机器人的模块,有的特别适合去做检索式的查询,还有的适合做任务导向的、产品推荐导向的对话等等。

我们把对话机器人抽象成一个通用的接口,再将它分为一个个小机器人。这样一来,每个小机器人只需要关注自己的业务模块就行了。然后,我们会在前端再引入一个路由机器人,由路由机器人根据当前对话管理的状态,来判断当前的对话应该交给哪个小机器人去完成。这就是典型的分层的思想。

4. 容错机制

相比程序员,架构师面对的环境要恶劣的多,因为系统更复杂了,出错的概率也增加了,每个节点、每个功能都有可能出错,所以这就需要架构师为错误而设计(Design For Failure),事先提前做好解决方案。

除了应用出错,还有可能产生数据丢失的情况,这个可以通过备份来预防。

另外,如果出现故障,该怎样做到快速恢复呢?我们现在普遍的做法是不修只换,因为如果要修复一个异常状态,可能修复后还会出现连带问题,而如果能通过技术手段,删除已出现的故障,换一个全新的系统,就能够保证它迅速恢复到正常状态。

以往热文推荐:

从业15年,我填过的三个坑

第3选择

写公众号、交朋友

转发和分享文章是对我最大支持:

「关于博主:

  姓名程军,网名小卒,15年互联网行业从业经验,前1号店架构师,前饿了么技术总监」

在面试中展示自己的系统架构设计能力 这不仅可以展示你的职业素养,也有助于你进一步提升自己的面试技巧和架构设计能力。 阅读详情

相关推荐

SIMPLIS仿真软件2.2-SIMPLIS快速入门2

SIMPLIS仿真软件2.2-SIMPLIS快速入门2导读 导读 本文承接上一篇文章。开始介绍SIMPLIS仿真部分。正如上一篇所讲的快速入门的定位,该文对SIMPLIS的三种分析模式不会很深入的讲解,只会记录下一些重要的设置和操作。对于SIMPLIS的三种分析模式的详细讲解,后面会专门撰写。如果读者还没有搭建上一篇文章中讲述的电路,那你可以点击这个链接免费下载所需的电路SIMPLIS_tutorial_buck_converter ,然后在这个电路的基础上继续进行以下操作。 ...

qq_44677482的博客 2万+

架构师需要具备的能力

万物需要架构,比如国家的职能部门,有国务院/工商局/教育局等。企业的组织架构,有研发部/市场部/产品部等。 组织结构下的每一个部门,又会分很多角色,比如研发部,有技术部总监,技术Leader,技术架构师,研发工程师等,每个角色各自发挥角色价值。 互联网企业中架构师能力的好坏会决定软件系统的好坏,这个好坏体现在维护性,扩展性,成本,业务支撑效率等。 今天说说做好架构师工作需要具备的核心能力,该能力包括架构师的思维模式,架构师具备的架构原则,架构师深知的架构质量属性及程

Java搜索工程技术栈 3618

从模型车到真实路口:基于YOLOv5-Lite与SORT的轻量化车流量检测系统实战

本文详细阐述了如何将基于YOLOv5-Lite与SORT的轻量化车流量检测系统从毕业设计原型部署到真实路口。文章聚焦于解决在嵌入式平台(如树莓派)上实现实时、稳定检测的工程挑战,涵盖数据采集、模型微调、系统集成及动态信号灯策略,为智能交通灯系统提供了实用的轻量化解决方案。

weixin_29179311的博客 109

如何在工作中提高架构设计能力

之前认识了一些工作五年以上的开发工程师,深聊之下发现虽然开发能力很强,但架构设计方面的能力还是偏弱,这不得不让人深思,五年以上的时候都在干嘛去了。通常毕业没多久的开发工程师,因为没有什么实际的开发经验,所以架构设计能力还处于初级阶段,这时候必须得有人带着开发,对所用的技术也是一知半解。但随着工作年限的增长,技术也在慢慢的提高,但并不代表,编程能力越强,架构设计能力就越强。 ...

guotufu的博客 4741

一文读懂产品架构(已2更)

产品设计体系越来越完善。产品经理的能力有很多面,比如:设计能力、运营能力、规划能力。唯独产品架构能力是最难的,需要自身具备极强的专业能力以及行业经验。作为产品设计的顶层,可以说,能不能把产品架构设计好,呈现出来就是成熟的产品经理和产品小白的最重要的区别。产品经理应该如何提升自身的产品架构能力? 如何从全局上去设计产品的整体架构、规划未来的产品发展道路以及整合整个有关产业链?产品架构思维和抽象是两个关键概念,它们相辅相成。通过产品架构思维,可以将产品分解为各个部分,并对它们进行分析和设计,然后通过抽象,可以将

zyjwjck的博客 1725

成为架构师,需要这些能力

本文为博学谷狂野架构师团队原创,使用请标明出处。 在成为百万架构师前,先问两个问题: 你觉得架构师的厉害之处是什么? 你和架构师的差距到底在哪里? 想明白了这两个问题,也就知道了该如何努力。如何找到这两个问题的答案呢? 方法很简单,去招聘网站看看,看看关于架构师的招聘需求是什么样的。 我之前讲过在互联网开发领域,架构师可以分为业务架构师、中间件架构师、系统架构师。 根据不同的方向,让我们在招聘网站上看几个真实的例子: JAVA架构师 40-70K·15薪 职位描述 1、参与相关产品需...

a6636656的博客 3747

2020年Q1精华文章,不可错过!

点击蓝色关注,回复“职级”获取知名互联网公司职级定义时间过的真快,2020年还没开始,Q1就已经离我们而去了。今天「军哥手记」花一点时间,对这几月的文章做一个总结。如果你因为工作忙,错...

chengjun_java的专栏 568

1 年原创 150+ 篇,这位大厂技术总监必须推荐!

见字如面,我是军哥,感谢「老K」的推荐。我先做个自我介绍,我叫程军,有 15 年互联网行业经验,从一名普通的程序员干到架构师,然后到大厂技术总监,曾任前饿了么产品技术总监,贝壳找房总监,最...

技术领导力 727

当总监了!

大家好,今天给大家推荐一位我的好友,前饿了么产品技术总监,军哥,军哥本身学历也是一般,但一路逆袭成了饿了么产品技术双料总监,他的经历对普通人非常有启发,他的文章我自己也是看了很多遍,受益匪...

weixin_41385912的博客 227

1 年原创 150+ 篇,这位前阿里 P9 牛批!

见字如面,我是军哥,感谢「Peter哥」的推荐。我先做个自我介绍,我叫程军,有 15 年互联网行业经验,双非本科毕业,从一名普通的程序员干到架构师,然后到大厂技术总监,曾任前饿了么产品技术...

Peter的专栏 629

推荐下我的P9大佬同事,前饿了么技术总监!

见字如面,我是军哥,感谢「小仙」的推荐。我先做个自我介绍,我叫程军,有 15 年互联网行业经验,双非本科毕业,从一名普通的程序员干到架构师,然后到大厂技术总监,曾任前饿了么产品技术总监,贝...

艾小仙的专栏 650

公众号1周年 广交天下朋友

今天是我写公众号1周年的日子,本来今天不想写了,因为感觉大家都没心情看,但是那句古话说的好“言必行,行必果”,咱既然说了就还是要写点思考的。最近一阶段时间疫情太凶,朋友圈各种社交媒体消息...

chengjun_java的专栏 407

职业选择 学会这3点就够了

蓝字关注,回复“职级”获取大公司职级定义朋友圈发现很多朋友今天都复工了,2020我会坚持真诚写作,更专业的提供一些对关注我的朋友有价值的思考,同时也非常感谢一直关注我的朋友们。今天这篇文...

chengjun_java的专栏 473

云上自动化部署和运维的正确姿势

凌云时刻 · 技术导读:今天起,“凌云时刻”特别推出“阿里云玩转 ECS”系列课程,每周二、周四固定更新,欢迎关注。本期为系列第 1 讲,由阿里云资深技术专家吴君印介绍上云最正确的部署...

云布道师 1385

ruoyi 多模块部署_云上自动化部署和运维的正确姿势

导读:今天起,“凌云时刻”特别推出“阿里云玩转 ECS”系列课程,每周二、周四固定更新,欢迎关注。本期为系列第 1 讲,由阿里云资深技术专家吴君印介绍上云最正确的部署和运维方式。嘉宾 | 吴君印整理 | 董黎明前言云上部署和运维相对于传统方法而言更加灵活,只需要编写一次模版就可以随时随地拉起一套环境,做到一键部署。同时支持多环境部署、操作可审计、支持 DevOps 实践。本次分享由阿里云资深技术专...

weixin_29410959的博客 605

开源运维管理软件排名_云上自动化部署和运维的正确姿势

导读:今天起,“凌云时刻”特别推出“阿里云玩转 ECS”系列课程,每周二、周四固定更新,欢迎关注。本期为系列第 1 讲,由阿里云资深技术专家吴君印介绍上云最正确的部署和运维方式。嘉宾 | 吴君印整理 | 董黎明前言云上部署和运维相对于传统方法而言更加灵活,只需要编写一次模版就可以随时随地拉起一套环境,做到一键部署。同时支持多环境部署、操作可审计、支持 DevOps 实践。本次分享由阿里云资深技术专...

weixin_35695652的博客 527

史上最全最详细的Java架构师成长路径图,程序员必备

史上最全最详细的Java架构师成长路径图,程序员必备

zhaoshuangjian 9624

科普文:软件架构系列之【架构师的七大核心能力】作者|潘锦

要成为一名优秀的架构师,以上七大核心能力缺一不可。 系统设计与建模能力帮助架构师构建出合理的系统架构,技术广度与深度确保架构师能够在技术上做出正确的决策,全局视角与系统性思维帮助架构师从整体上把握项目的方向,沟通与协作能力则确保架构师能够有效地领导团队。项目管理能力、质量保障与技术债务管理、创新与前瞻性思维这些能力共同支撑了架构师在项目中的成功。 在实践中,架构师需要不断学习和提升这些核心能力,才能在复杂多变的项目环境中游刃有余,带领团队实现技术和业务的双重成功。 优秀的架构师不仅是技术的专家,更是项

为无为,事无事,味无味。 1365

做一个架构师需要什么能力?

作为一个,需要具备多方面的能力来确保项目的顺利进行和系统的成功设计。

人邮异步社区 1875

五年从程序员到架构师 架构师进阶之路

怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不只一个刚刚踏入职场的初级程序员也是工做三五年以后开始迷茫的老程序员常常会问到的问题。但愿这篇文章会是你看到过的最全面最权威的回答。nginx **  一: 编程基础**程序员 不论是C仍是C++,不论是Java仍是PHP,想成为一名合格的程序员,基本的数据结构和算法基础仍是要有的。下面几篇文章从思想到实现,为你梳理出经常使用的数据结构和经典算法。 web 1-1 经常使用数据结构正则表

mt776333的博客 1万+

架构师的5大基本能力

java技术架构基础技能点

Coder_Boy_的博客 2459
上一篇: 聊聊职场上的真诚
下一篇: 那些40岁左右的程序员都去哪了?
军哥手记
军哥手记 业界专家认证 业界专家认证
博客等级 码龄21年 658粉丝 608原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值