0
点赞
收藏
分享

微信扫一扫

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

本文为​​博学谷​​狂野架构师团队原创,使用请标明出处。

在成为百万架构师前,先问两个问题:

  1. 你觉得架构师的厉害之处是什么?
  2. 你和架构师的差距到底在哪里?

想明白了这两个问题,也就知道了该如何努力。如何找到这两个问题的答案呢?

方法很简单,去招聘网站看看,看看关于架构师的招聘需求是什么样的。

我之前讲过在互联网开发领域,架构师可以分为业务架构师、中间件架构师、系统架构师。 根据不同的方向,让我们在招聘网站上看几个真实的例子:

JAVA架构师 40-70K·15薪

职位描述
1、参与相关产品需求讨论,评审和软件设计;
2、按照项目计划,按时提交高质量代码,完成开发任务;
3、规范文档的编写、维护,以及其他与项目相关工作;
4、参与个人征信、企业征信以及数据类核心业务系统架构设计及优化。

任职资格:
1、本科以上学历,计算机或相关专业;3年以上java实际项目开发以及架构设计经验;
2、有扎实的Java基础,Java多线程、并发;熟悉主流开源应用框架,如Spring、iBatis、XML、JSON、Maven等开发技术;
3、熟悉设计模式、OOA/OOD;熟悉关系型数据库MySQL Oracle等,SQL优化;熟悉Memcached、MongoDB、Redis等;
4、熟悉分布式系统的设计和应用,熟悉分布式、缓存、消息、负载均衡等机制和实现;
5、有风控产品类/数据采集类系统架构设计以及开发经验者优先。

中间件架构师 30-60K·16薪

职位描述
负责云中间件(API网关,服务框架、MQ等)的设计,核心代码开发,系统稳定性开发,性能优化等工作;
根据云计算平台的业务需求,完成云中间件产品的架构设计和优化工作;
帮助业务方解决技术难题,用技术推动业务发展。
熟练掌握c++或者java/go并发编程 ,熟悉高并发,分布式通信,存储等相关技术;

任职资格:
本科以上学历,3年以上相关工作经验;
熟悉Linux操作系统、熟悉开源的中间件软件;
熟悉消息中间件,RPC框架,API网关,数据层,性能优化等相关技术经验者优先;
具有高并发相关工作经验优先;
熟悉Spring Cloud,有spring cloud相关开发及优化经验者优先;
熟悉service mesh,有istio和envoy开发经验者优先;
熟悉gRPC/thrift框架,有gRPC/thrift框架相关开发及优化经验者优先;
熟悉开源消息队列RabbitMQ/RocketMQ框架,有相关开发经验者优先。
备注:有容器k8s背景的优先,但是要求还是熟悉微服务,service mesh,spring cloud,消息队列这些中间件方向的

直播PaaS 系统架构师 20-40K·15薪

职位描述
1、负责直播CDN PaaS集成的开发,包括需求分析、架构设计、部署设计等工作;
2、负责头部客户业务架构梳理工作,针对客户整体的平台建设提供咨询、规划;
3、需在工作中具备咨询架构师能力,掌握但不限于网络、计算、存储、IaaS、PaaS等领域咨询能力;
4、跨团队整合资源,联同前台业务、职能部门和中后台产品/研发团队,高质量推进项目管理工作,共同达到项目目标。

职位要求
1、熟悉直播CDN基本原理及部署架构;
2、有扎实的编程能力,有优秀的设计和代码品位;
3、有很好的系统分析设计能力,能够根据客户需以及系统架构,设计合理的技术方案并落地执行;
4、有较强的客户服务意识,良好的沟通和协调能力能力,具备较强的大项目管理能力;
5、具备较强的学习能力和自驱力,具备创新性思维和深度思考能力;
6、了解容器/VM虚拟化技术、Kubernetes、Mesos、Yarn、Docker等项目。

以上是三种不同架构师的能力要求,虽然类型不同,技术要求侧重不同,但是我告诉你,成为架构师都要具备以下能力

技术掌控力 架构师思维 解决问题的能力 团队协调力、管理能力 扩展人脉的能力

我们展开来说:

1、技术掌控力:

成为架构师要掌握全面的技术栈,一切技术皆工具,包括开发语言、框架、各种中间件都是工具,要达到熟练使用,了解其原理和长短板,具备合适场景合理选型和灵活运用的能力。

比如要成为业务架构师,那么必须掌握Java生态圈方方面面的技术。如何做到呢?首先需要把所有技术列出来,然后将自己现在所拥有的技术跟这个图表做一个匹配,标出里面哪些熟悉,哪些还有待提升,最后把有待提升的技术学会。

2、架构师思维

我们常说道与术的问题,架构思维就是架构师的“道”。

随着工作时间的增长,会悟出一些道理,感受到一些规律性的东西,这些东西可能现在大家觉得有点虚,但是慢慢地大家会认可。

(1)知行合一,做之前,先考虑意义 在做某件事之前,一定要知道自己的目的是什么。目的和做的事情两者要合一,这是第一个层面。 第二个层面是清楚地知道你手里的资源允许你干什么事。比如说Spring Cloud,我很想去用,但是我的团队hold不住,你强行把这个东西推下去之后,事情做的并不成功。结果还是需要你承担责任。

(2)原生优于定制,约定大于配置 如果你没有特殊需求的话,官方的东西最好,保持原样,除非它不满足你的要求,你再去定制它。因为你改了之后,一旦发生问题,你很难摸清楚错误发生在什么地方。而如果官方的出现问题,整个社区都在给你撑着,你就能够及时地把这东西补上去。

(3)什么都是,最后会沦落到什么都不是 这是我早期搞架构的时候犯的一个错误。当时我老想着做一套完整的系统,无论你想做什么样的业务,拿来之后稍微一修改什么都能支撑,后来发现根本不是我想的那样,它几乎什么都不能支持。就像造汽车,偏舒适还是运动,两者兼顾的没有。

(4)控制技术欲,不要瞎折腾 看到新技术就想用到自己的系统中的,这不是一个好架构师的行为。做架构的前提是稳,这是底线,试错一定在生产环境中。

(5)留下扩展,但不要想到100年后 当代人做当代人的事情,不要考虑那么久远。当代留下的坑,只能留给后代补。

(6)没有最好的,只有最合适的 跟第3条比较像,但第3条是广度上,这一条是深度上,垂直领域不要总想做到最完美。

(7)够用就好,玩的越花,风险越大 比如有人玩 ++i++;finally(return);if(赋值) ,这都太花了,风险很大。

(8)大巧不工,简约最美 要把代码写的很简约,很优雅。

3. 解决问题的能力

具备日常场景下的解决方案积累,举几个例子:

  • 单点登录
  • 分布式事务及数据一致性
  • 秒杀并发场景
  • 复杂工作流
  • 超高并发、吞吐量

4. 团队协调力、管理能力(加分项)

你的思维和设计要落地,必须具备团队层面推进事情进展的能力(尤其架构团队的leader)

5. 最后,扩展自己的人脉。

人脉很重要,随着职位的提升,段位的提升,需要一定的背书。

以上就是架构师要具备的能力,其中技术掌控力可以很快通过学习来提升。方法就是罗列全面的技术栈,然后对号入座,找到自己的短板,最后恶补。

举报

相关推荐

0 条评论