【开源访谈】华为 SCEF 产品软件架构师姚磊:如何成为一名优秀的软件架构师

OSC源创君 发布于 2017/06/07 03:32
阅读 4K+
收藏 42

随着软件行业的发展,软件人才的队伍不断壮大,但同时新老交替的速度也在不断加快,让很多技术人员开始有一种危机感。在这种大环境下,从事更高层次开发构架工作的软件架构师成为令人向往的角色。本期【开源访谈】邀请到华为 SCEF 产品软件架构师姚磊分享如何成为一名优秀的软件架构师。

【分享嘉宾】

姚磊,华为SCEF产品软件架构师,8年电信设备从业经验,进入华为以来一直从事华为EPC网络能力开放产品SCEF软件开发、设计工作,对SCEF产品架构、业务功能有深入的理解。

【访谈实录】
1、请简单地介绍一下您自己(技术背景、学习经历、工作经历)。

答:大家好,我是姚磊,2010 年毕业于湖南大学。我一开始是在一家电信设备公司从事网管的工作,当时基于开源软件做了一个网络管理工具,算是一些比较简单的代码编写和模块开发工作;工作两三年之后,开始涉及一些模块的设计,可以说是一名优秀开发者了,但还算不上一个架构师;后来到了第二家公司主要做了一个协议的开发; 2014 年进入华为,刚开始的时候作为 SE 负责产品的开发,做的是开源代码的研究,就是考虑怎么把开源代码集成到我们的产品中去,后来担任的是华为的 MDE,研究平台的对接,再后来开始做一些独立性的设计。所以,从我个人来说看来,大部分时间只是在做开发的工作,真正作为一名架构师的资历还是比较浅的。


2、程序员与架构师的区别是什么?

答:程序员可能更多关注的是如何实现一个模块的功能,但做为一名架构师要有一个全局性的思维,关注的不是具体实现的细节,而是各个模块之间怎么去交互、部署,还有它们的性能、安全,以及跟 web 的交互,以及怎么去管理等等。把各个模块都部署好之后,还要把限制通讯的结果、交互的内容都清晰地定义好,考虑接口对接的时候采用什么样的协议这些层次的问题。


3、软件架构师的进阶除了日常工作上的积累,还需要哪些方面的学习?

答:作为一个架构师首先要关注技术方面的问题,但不仅仅关注于当前的产品的技术,还要关注整个行业的发展趋势,包括优秀的一些架构,比如优秀的开源技术架构等,如果你只是关注自己产品的架构的话,也许能满足当前的需要,一旦外部发生变更的时候,就可能不适用了。

除了技术方面的问题外,周边的东西或者日常生活的方方面面都要去留心观察。举个例子,我们架构部有个大拿,他在设计我们产品的一个主要架构的时候,想了很多方案都通不过,有一天他在路上看到交通管制,看交通梳理的时候灵感来了,他按照这个思路设计了一个架构之后投票一次就通过了。


4、软件架构师需要具备怎样的素质与职责

答:(1)过硬的技术。其实大部分的软件架构师都是软件出身的,所以至少是某一个技术方面的大拿,如果技术不过关的话,设计的框架的性能、安全性都会受到约束。即使是成为架构师之后写代码的机会少了,也要经常去研究一些比较优秀的代码、开源架构,还要学习别人优秀的实践经验等等。

(2)良好的沟通能力。作为一名架构师,设计好一个架构之后肯定要给别人介绍这么一个东西,告诉别人这个架构能解决别人的问题,这就需要一定的沟通能力。

(3)良好的书面表达能力。一个优秀的文档能更好地呈现你所设计的东西。现在一些比较规范的公司,写架构的时候都会要你写这个架构的模板,包括安全、性能、数据库都要有一个章节去分析。但是一些别的小公司没有那么规范,这时候就要去研究一下周边的一些大公司或者行业的标准。


5、作为 SCEF 软件的架构师,应该注重业务上的发展,还是技术上的发展?

答:因为我本身是做技术出身的,原来我的理解是技术的发展更重要。但后来发现一个问题,我们的工程师能把产品说得头头是道,但只是从工程师这个角度去给别人演示展示这个产品,当对象发生变化了,面对的不再是工程师而是客户的时候,就不能很好地用客户化的语言去描述。

所以作为一个架构工程师的话,技术是基础,业务方面的发展也很重要。程序员可以只关注自己的技术,但是作为 SE ,视野应该放宽,不能闭门造车。华为内部对职位的划分都是很详细的,在各个层级都有很专业的人才,像行销人员的业务能力就很强,我们就可以多到一线去跟行销人员和客户沟通,学习怎么用客户的语言来跟他们沟通。


6、您是如何看待“大部分码农做不了软件架构师”这一观点的?

答:从人自身的发展来看,成为架构师要比一般的开发者要付出更多的精力,但是很多码农会满足于目前的成就,不再愿意去学习提升自己,其实架构师写的文档都是可以看得到的,所以如果愿意去提升的话可以自己去学习、去实践,大部分的架构师其实都是在一步步摸索和实践中成长起来的;从行业的大环境来说,公司方面也不需要很多架构师,一个产品最多配备一两个架构师就够了,然后可能还需要个别优秀的开发者对架构师设计的模块进行理解,把这个模块进行消化,再由其他的开发人员去实现就可以了。


7、什么样的人更合适做软件架构师?

答:程序员能成为架构师,首先当然要热爱这门技术,再者我觉得应该有良好的沟通能力和表达能力,包括写文档的能力,还有视野要开阔,能主动地从生活中的点点滴滴去感悟和思考。

加载中
1
上帝门口的排队
上帝门口的排队
该评论暂时无法显示,详情咨询 QQ 群:点此入群
永恒的Bug
永恒的Bug
就是,就是
1
小三斯基
小三斯基

做的是开源代码的研究,就是考虑怎么把开源代码集成到我们的产品中去

蛤? 

RayLee
RayLee
把开源的算法看懂之后用闭源的代码实现一遍?
1
sami
sami

老夫从医多年至今不敢自称架构师

0
上帝门口的排队
上帝门口的排队

客服是你们的脸面。。自己脸面都搞不好。。还来搞架构。。

0
u
uvd

难用他也没办法,公司大了,反应迟钝,你觉得他们会在乎客户感受么,华为很多软件都是15年前水平 不服来辩

0
开源中国RIO
开源中国RIO

架构师是不是得一直跟进新技术的学习

0
huanglinyi
huanglinyi

看到你们这么说华为我也放心了

0
jack_ma
jack_ma

华为的SDK之类的难用的一B

0
0
上帝门口的排队
上帝门口的排队

哈哈。。我喜欢你们

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部