如何成为一名优秀的软件架构师

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

【分享嘉宾】

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

文章转载自 开源中国社区 [http://www.oschina.net]

时间: 2024-09-30 23:20:58

如何成为一名优秀的软件架构师的相关文章

如何成为一名优秀的数据分析师?

本文将从一个数据分析师的所需要的整体知识框架和能力入手,和大家分享一个优秀的数据分析师是怎样炼成的. 主要会讲数据分析师的演变.数据分析价值体系.数据分析师必备的四大能力.七大常用思路以及实战分析案例. 近些年,互联网公司对数据分析师岗位的需求越来越多,这不是偶然. 过去十多年,中国互联网行业靠着人口红利和流量红利野蛮生长;而随着流量获取成本不断提高.运营效率的不断下降,这种粗放的经营模式已经不再可行.互联网企业迫切需要通过数据分析来实现精细化运营,降低成本.提高效率;而这对数据分析师也提出了更

如何成为一名优秀的全栈工程师?

写在最前 我的前一篇文章<给职场新人的 10 点建议>发表后,得到了很多网友,特别是年轻程序员朋 友们的喜爱,这令我颇感意外,但又很受鼓舞.同时,我也收到了一些私信,大多来自那些毕业不久,刚步入工作岗位的职场新人.询问的内容也大多是如何选择职业方向,如何成为一名优秀的软件工程师,以及怎样快速提高自身的技能等.我在一一回复的同时,不禁想结合自身的经历,谈谈如何才能成为一名优秀的全栈工程 师. 什么是全栈工程师 全栈工程师一词,最早出现于Facebook工程师Calos Bueno的一篇文章 - 

如何才能成为一名优秀的软件测试人员

     最近在和一些公司的软件工程师和管理人员交流时,发现他们经常发出这样的感慨:寻找一名优秀的测试人员这是太难了.那么,具备哪些要素才成成就一名优秀的测试人员,下面是我认为比较重要的几点:     1.对分析和测试的激情:任何事情的成功的关键在于你是否对它怀有真正的激情.     2.专业技术:要想成为一个伟大的测试者,必须要具备非常出色的编程能力,这样你才能很好的理解你要测试的系统,才能和开发人员进行更加有效的沟通,才能写出高效的自动化测试程序.     3.良好的分析能力:需具备很强的分

程序开发-如何成长为一名优秀的数据挖掘工程师?

问题描述 如何成长为一名优秀的数据挖掘工程师? 想咨询在阿里.百度.腾讯等一些企业工作的前辈们,如何成长为一名数据挖掘工程师?我是研一的新生,想在研究生期间努力学习,将来能找一个好工作.但是学生不知道要往哪方面努力.学生基础比较差,现在在练习编程. 1.前辈们能不能给后辈提点建议.怎么去准备,去学习一些什么知识?最好是提供基本好的教材. 2. 数据挖掘工程师需要哪些基本的能力,会哪些技术. 3.求抱大腿,希望有前辈愿意带带我,学生深知喝水不忘挖井人这个道理,本人懂得感恩,是个人品不错的人. 解决

如何成为一名优秀的web前端工程师

我所遇到的前端程序员分两种: 第一种一直在问:如何学习前端? 第二种总说:前端很简单,就那么一点东西. 我从没有听到有人问:如何做一名优秀.甚至卓越的WEB前端工程师. 何为:前端工程师? 前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业. Web前端开发技术主要包括三个要素:HTML.CSS和JavaScript! 它要求前端开发工程师不仅要掌握基本的Web前端开发技术,网站性能优化.SEO和服务器端的基础知识,而且要学会运用各种工具进行辅助开发以及理论层面的知识,包括

访资深DBA赵振平:如何成为一名优秀的DBA

2009年4月2日,51CTO技术人频道邀请了资深Oracle DBA.<Oracle数据库精讲与疑难解析>的作者赵振平老师作客嘉宾聊天室,与我们共同探讨如何成为一名优秀的DBA. 赵振平:生于20世纪末中国西南的一个边陲小镇.公元2001年,我正式主攻数据库和数据仓库.开始的岁月,Sybase.Oracle与SQL Server三座大山压得我无法喘息,从不低头的我们仍然要继续前行的路.N年以后,我们越过了Sybase.Oracle.SQL Server.MySQL.DB2这几座大山.但是,中

10个习惯助你成为一名优秀的程序员

当谈到编程时,很多人应该都有听过10x程序员的说法. 据说一个10x程序员的效率大约是其他程序员的10倍. 这是一个有争议的话题,无论你选择相信10x程序员,还是认为这十分可笑,下面的10个习惯可以在一定程度上助你成为一名势不可挡的优秀程序员. 1.积极使用搜索工具 作为开发人员,你需要了解如何利用搜索解惑,查看其他人对你正在研究的主题所讨论的话题和内容,并将学到的知识应用于手头的项目. 当面临一个问题,优秀的程序员应该知道如何花很少时间去查验和解决手头的问题. 2.保持初学者心态 技术发展如此

如何成为一名优秀物联网开发人员

物联网(IoT)行业正蓬勃发展.根据最近的Gartner报告,在2017年,全球使用的互联设备数量将达到84亿,超过全球人口总量. Gartner预测,到2020年,将会有超过208亿件物联网设备. 随着家庭互联.汽车互联和办公室互联变得越来越主流化,需要更多的开发人员来确保互联设备正常.安全地运行. IBM物联网开发人员生态系统主管Greg Gorman说:"'物联网开发人员'一词的含义很广泛,包括安全.网络.系统工程.云编程和硬件设备编程.开发人员应该在团队中灵活地扮演许多不同的角色.&qu

[转载]一名优秀的Flex开发者需要知道的10样东西

原文:http://blog.flexdevelopers.com/2010/04/10-things-good-flex-developer-should.html 翻译:http://bbs.9ria.com/viewthread.php?tid=54144&from=recommend_f   要想成为一名优秀的Flex编程人员,单单知道怎么样去使用Flex内建的容器和组件是不够的,而且是远远不够. 下面是我对这个问题的一些看法......并且给出了一些资源和关键字,你可以通过Google