程序员转型架构师,需要哪些能力?

程序员转型架构师,需要哪些能力?

作为工作10多年的老迈架构师,说下我的看法。

一名出色的架构师,需要大量的时间和项目经验喂养出来。但现在社会太过浮躁,35岁危机深入人心,对比国外,很多优秀架构师都是40、50岁的高龄。

对架构师的核心能力要求是极高的,这些能力大部分程序员不具备,或者说平时并没有意识去培养这些能力。聊聊架构师具备需要哪些核心能力:

全局观

一个有全局观的人,在开始一项工作之前,会对这项工作有全面的了解,知道风险和挑战在哪里,做好心理准备。

如果我们去一个陌生的城市旅游,首先需要的是一张“地图”。这张地图让我们对城市有一个全面的认识。

无论在哪个行业,我们都需要这种全局的视野。例如,产品经理需要对产品有全局视野,运营人员和市场人员需要对运营和市场有全局视野,程序员需要对技术有全局视野。

比如我们要开发一个新系统,我们需要理解以下这些全局问题:

  • 系统的定位是什么?它能创造哪些核心价值?
  • 开发这个系统的背景是什么?为什么以前不做,现在要做?
  • 这个系统在整个组织架构中处于什么位置?
  • 与这个系统关联的其他系统现在是什么状况?
  • 产品经理和技术负责人怎么看这个系统?
  • 这个系统的需求是确定的,还是有很大的灰度空间?
  • 这个系统所用的技术是旧的还是新的?
  • 对于类似的系统,其他公司是怎么做的?

不同层次的人关注的范围不一样。例如,国家总理关注国家级别的问题,公司CEO关注公司和行业的问题,业务线负责人关注他们负责的业务,技术负责人关注技术问题,产品负责人关注产品问题,程序员关注代码问题。如果我们可以扩大自己关注的范围,这对我们的工作会有很大帮助。这就是全局观。

历史观

历史观是从时间的角度看问题。

任何一种技术都是为了解决特定问题而产生的,这个特定问题有其历史背景。之前的技术在解决这个问题时不够好,或者有副作用,所以才发明了新的技术。

当我们看待一个技术时,需要把它放在历史背景下,看它处于什么位置。这不仅适用于技术,对于任何学科来说,都需要有历史观。

在设计系统的长期演进方案时,需要结合历史观来考虑方案:

  • 分析过去的项目,看看哪些设计是成功的,哪些是失败的,从中学习。经验教训。
  • 考虑现有系统的问题,如技术债务、不合理的设计,避免在新方案中重复犯错。
  • 回顾历史上的业务需求变化,理解业务发展规律,做出更具前瞻性的设计。

抽象思维

抽象是有层次的,从最底层到最上层,我们需要在不同的工作阶段,从不同的抽象层次中思考。

很多程序员习惯于"自底向上"的思考方式。在讨论需求时,他们首先会考虑如何实现这个需求,而不是考虑这个需求本身是否合理,或者这个需求与其他需求有何关联。

这种过早考虑"实现细节"的方式,会让我们只看到局部,最后陷入繁杂的细节中,无法把握重点。

如果要建一个新的系统,我们需要从"抽象"到"具体",考虑以下事项:

  • 每个需求的合理性。
  • 系统的领域模型。
  • 是在旧系统上改良还是新建一个系统。
  • 系统应该如何分期实施。
  • 系统应该如何拆分为子系统。
  • 每个子系统又应该拆分为多少个模块。
  • 系统的表设计、API接口设计、Job的设计,以及系统间的消息传输如何实现。

这是一个自顶向下,逐级细化的过程。

每进入一个新的层次,就可能需要回到上一层次进行修改。

深度思考

技术每年都在更新换代,我们不可能对所有领域都非常精通,但至少需要在一个领域有深入的见解。

通过深入理解某个技术领域,养成深度思考的习惯。当面对新的技术时,这种深度思考能力可以帮助我们更好地理解新技术。同时,也能帮助我们更清楚地认识到技术风险,在项目开始之前就能发现潜在的问题。

如何判断一个人在某个领域有深度?

深入理解原理、系统性沉淀最佳实践、丰富的实战经验、持续输出、具备领域影响力,以Java技术领域为例:

  • 深入理解Java的核心概念。
  • 深入理解JVM的内部工作机制。
  • 掌握Java性能调优。
  • 基于SOLID原则、DRY原则、KISS原则、设计模式等最佳实践,写出高质量的Java代码。
  • 硬核的项目经验。
  • 高质量的知识分享,获得同行的认可和影响力。

落地能力

落地能力取决于很多因素。

首先,架构方案必须是可行的,不能只是停留在理论上。

作为架构师,需要监控从设计到实施的全过程,发现并及时解决问题,以确保理论和实践的一致。

其次,架构师作为项目负责人,需要管理项目中的所有潜在问题。大多时候这些问题与人相关,而不是技术。例如,不充分的沟通,组织的混乱等。我们需要意识到这些问题的存在,并找到解决的方法。

怎样提升落地能力?

  • 深入理解业务目标和需求,确保架构设计能够满足业务需求,同时也具备前瞻性。
  • 多参与项目,了解项目中的细节,关键问题需躬身入局,积累实践经验。
  • 积极与项目管理者、开发人员和其他利益相关者的沟通协作,确保大家对设计方案形成共识,并有效执行。
  • 建立反馈机制,从项目实施和运营中获得反馈,不断学习、调整和优化架构方案。

写在最后

优秀的架构师需要具备全局观、历史观、抽象思维、深度思考和落地能力。

全局观帮助架构师全面理解工作。

历史观让架构师从时间角度看问题。

抽象思维能让架构师从不同的抽象层次思考问题。

深度思考则让架构师在某个领域有深入的见解。

落地能力要求架构师能将理论转化为实践,解决实际问题。

​《Leetcode算法刷题宝典》一位阿里P8大佬总结的刷题笔记。
《大厂Java面试题汇总及详解》进大厂必看。
《架构学习资料大礼包》早日成为百万年薪架构师。
《AI学习资料大礼包》学习AI抢占先机。
请到下面公号【架构师汤师爷】取↓↓↓

  • 22
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值