如果认同偶的回答,麻烦点个赞哦~~
偶是一名从业十余年coder,2010年通过系统分析师考试,结合偶的理解回答一下吧。
偶于2005年参加工作,之后才开始考软考证书,软件设计师和系统分析师,两个证都是在工作五年内考过的。其中:系统分析师证、系统设计师证对于工作和项目经验有一定要求。
下面偶分别从技术层面和业务层面来回答一下。
看完了下面的内容,你就能够进行”对标“,知道一个架构师最核心的能力在哪了,就能明白“怎么样才能称为架构师”。
技术层面
架构师:从名字上看就是完成系统的结构设计,但这个结构设计并不是这么简单的。
架构师的主要工作是根据一个系统的业务完成顶层设计,需要想清楚系统【当前有什么】【想要什么】【未来想成为什么】几个问题的回答,制定符合“要求”并且可落地执行的方案。
同时,还要做好技术选型、难题攻关等,这中间可能涉及了开发语言、服务器、网络、数据库等多个维度的问题。
架构师最重要的能力就是:能够根据现有环境,设计出可执行和符合未来规划的方案。
现在一些大厂(例如淘宝等)的架构是公开的,但是绝不能直接生搬硬套。因为在人力、物力方面,各个公司之间是不对等的,特别是成本方面的考虑。
举个例子:开发一个新闻资讯类的网站,公司A希望投入500万用于IT支出,希望面向全国推广。那公司A的架构上就要考虑CDN,考虑云存储、多节点部署等。公司B希望投入10万,只做本地资讯,那架构上就是本地IDC,高带宽,本地数据库(分离、互备)等。
上面只是从IT支出成本方面考虑,另外还有一个重要的点就是”团队技术”考虑。
架构师在做好了设计以后,能不能推行和执行下去,这个和团队密切相关。首先要考虑团队的技术实力,在哪个技术方向和领域具有较好的功底,对于选型的技术难题攻关以及对未来系统维护、升级等方面的处理能力。
架构师在设计时要考虑高并发、分布式、高性能、高可用、可扩展、好维护、系统安全等方面因素。
例如微服务架构设计、缓存系统设计、OAuth认证、消息中间件、监控中间件、配置中心等。
以上的这些都需要在成为架构师的道路上积累经验。
业务层面
很多人认为,对于程序员,35岁是一个坎,不知道以后如何发展,做系统架构设计(架构师)其实是一个水到渠成的发展进程。
成为架构师其实是对一个综合能力的考查。
其中:能够理解和熟练掌握业务是基础。
合理的即是最好的。
系统设计没有最好之分,只有是否合理之分。
不同系统业务不同,业务发展规划不同,所以,架构设计上要满足这些需求。
做为架构师就需要一定沟通能力,需要一些行业方面的经验和背景。
如果是一直在某一行业,则对这个行业的系统“深度”上会有较好理解;
如果是涉及多个行业,则是对架构“广度”上有较好基础。
总结
通过以上分析,你肯定可以发现,对架构师的能力要求中,技术只是一个层面。
架构师的一些工作职责和项目经理、技术总监有一部分是重合的。
所以,成为架构师,后续可以快速成为技术总监或CTO。
努力吧,少年!
偶是一名Java全栈开发工程师、系统架构师,从业15年。曾带领小团队完成多个数百万级项目。偶正在写一些关于互联网行业及开发技术方面的文章,关注偶,你一定会有所收获。
如果有项目开发、行业及求职方面的问题,都可以在评论区留言或私信偶。(关注后私信偶,向你免费分享行业级学习资料)