论架构师的自我修养
架构师,当然是脑力劳动者,但是同样是脑力劳动也存在重大的差别。有一类脑力劳动的成果,是比较容易被评价的。但是,架构设计只是软件开发过程中的一个环节,在这个多人协作的场景中,我们很难单独评价架构的优劣。
架构师,当然是脑力劳动者,但是,同样是脑力劳动也存在重大的差别。有一类脑力劳动的成果,是 比较容易被评价的。或者能够判断其对错:比如考试的分数;或者能够比较其高下:比如两个人下棋分出输赢;或者能够交由市场来判断:比如某种UI/UE设 计,我们可以通过数据统计,了解其受用户欢迎的程度。
但是,架构设计只是软件开发过程中的一个环节,而在这个多人协作的场景中,我们很难单独评价架 构的优劣。由于硬件、软件、部署、人员、测试、用户、市场等众多的差别,即使是非常相近的两个系统,我们也很难判断两个架构孰优孰劣。比如:eBay的架 构与Taobao的架构哪个更加优秀?在交付拖延的时候,我们可以将问题归咎于开发团队的效率低下。在出现质量问题的时候,我们可以将问题归咎于测试团队 的疏忽大意。在负载撑不住的时候,我们可以将问题归咎于运维团队不够专业,甚至是竞争对手的DDoS攻击。那么,在出现什么样的问题的时候,我们可以将责 任归咎于架构呢?
所以,现状就是:架构师是一个很难做好的职业。但是,从某种意义上来说,又是一个非常容易混的职业。(当然,混是另一种需要持续修炼的高端技能。)因此,架构师也是特别需要强调自我修养与职业道德的职业。
什么是架构?什么是架构师?
对于架构的定义,有很多种,我比较同意的一种定义是:“架构是一组关键决策”。这样的决策包括 但不限于:使用什么操作系统、语言、框架与类库;是否在架构中使用某种全新的技术方案;优先考虑或满足哪一方面的需求以及如何在技术上实现这一点;更进一 步的,面对一个不断发展的系统,哪些部分需要优先重构or优化、哪些决策需要重新考虑甚至修改;再进一步,某些前瞻性的考虑,也是架构决策的一部分,等到 问题发生再来解决,同样是架构方面考虑不周。
能够做出这些决策的,就是架构师。或者说,在一个团队中,实际的最终决策者,就是事实上的架构师。无论他被赋予什么样的头衔。在一个团队中,我们总能找到这样的角色(无论他做得是不是称职),而一个优秀的架构师,就是通常能够做出“较多”正确决策的人。
架构师的工作是什么?
仅仅做出决策是不够的,我们可以从时间线上来观察:在做出决策之前,架构师需要足够了解自己的“可选项”,无论是用户的实际需求,还是最新出现的技术和框架,并且都得要有足够深入的理解(否则就是在拍脑袋做决策)。这时,架构师的角色,是一个“研究者”。
在综合各项因素,甚至是相互矛盾的各种需求之后,在考虑到团队的实际能力与交付压力之后,在平衡了先进性与可靠性、扩展性与稳定性、重要性与紧迫性之后,架构师做出了一组决策。这时,架构师的角色,是一个“设计师”。
为了确保自己架构设计能够被正确地实施和贯彻,架构师需要与研发团队密切配合,或者说服、或者引导、或者辅导、或者鼓动、甚至需要某种“强有力的推进手段”,这对于架构师的「硬实力」与「软实力」都提出了很高的要求。这时,架构师的角色,是一个“Top Coder”。
在某些大公司,架构师还需做很多的文档工作,这些文档并不是交付给开发团队的说明性文档。而是某种向上级证明某某方案可行,某某架构有效的证明性文档。这时,架构师的角色,是一个“说服者”。
从上面的描述,我们也可以发现,架构师像是一个千面人:需要与上下前后左右的不同角色打交道;多面手:需要了解甚至掌握诸多不同的知识和技能。要想做好这个工作,提升自我修养是根本之道!
什么是架构师的自我修养?
1. 以理解用户为荣,以想当然尔为耻
架构师不是产品经理,不是市场人员,不是客服人员。但是,如果只懂技术,只考虑技术,不能深入的理解用户的需求(强调一下,用户的真实需求!),就会做出“纯粹追求技术先进性”的想当然尔的架构出来。
2. 以脚踏实地为荣,以夸夸其谈为耻
架构师当然需要很强的表达能力,甚至还需要有忽悠能力。但是,无论是表达还是忽悠,都必须以“实力为基础”。如果不能脚踏实地,积累实力,只会夸夸其谈。那就相当可耻了。
3. 以身先士卒为荣,以指手画脚为耻
还是那个经典的台词“兄弟们跟我上”与“弟兄们给我上”的区别。如果对于一些困难的问题,架构师自己都搞不定,却摆出一副胸有成竹的表情:“这不是很简单的吗?你到网上搜一下嘛,资料大把大把的。”这种做派,就很令人不齿。
4. 以实践检验为荣,以道听途说为耻
如果某种技术,架构师自己都没有做过评测,没有看过框架代码,没有在过去的实践中应用过。却因为一篇文章,一个讲座,甚至某个大公司曾经用过这样的证据,就将一种技术引入到项目之中。这样的决策,很少有不失败的。
5. 以先见之明为荣,以后知后觉为耻
“过度设计”当然是一个贬义词,但是架构师一定要有前瞻能力。不能等到火烧起来了,再去救火。虽然在企业里,的确存在“救火英雄升迁快”的现象。但是,一个优秀的架构师,应该以“消除隐患于无形”为荣。
6. 以兼容并包为荣,以独断专行为耻
在架构领域,很少有唯一解、最优解。大多数时候,我们只能在多个各有优劣的方案中,反复权衡,考虑取舍。这时,开阔的视野、开放的心胸,就显得尤为重要。如果一味的独断专行,听不进团队里其他同事的意见(尤其是那些学习了乔布斯的架构师),就会非常危险。
7. 以主动学习为荣,以固步自封为耻
技术的进步实在太快,曾经有一种夸张的说法:“平均每天诞生一种革命性的、颠覆性的技 术”。虽然有很多新技术,都在如此宣称,作为架构师,却必须不断地主动学习,了解,甚至在某些领域做一些初步的尝试。这样的过程,在架构师的整个职业生涯 中,都无法停止。一旦产生了“固步自封”的念头,这个架构师也就“不过尔尔”了。
8. 以勇猛精进为荣,以疏忽懈怠为耻
架构师是一份困难的工作,更加重要的是:随着架构设计的完成,架构师的工作,才刚刚开始。接下 来的任务,会非常琐碎,也许会更加困难。这份工作的主题是:“架构看护”尽可能保护架构,不会随着时间的推移,随着特性的增加,渐渐变得腐化。很多最初设 计得相当优秀的架构,到最后变得不堪入目。说到底,还是要怪架构师没有能够坚持自己当初的决策。
如何提升架构师的自我修养?
在《中庸》里,子曰:“好学近乎知,力行近乎仁,知耻近乎勇。知斯三者,则知所以修身;知所以修身,则知所以治人;知所以治人,则知所以治天下国家矣。”
简单的翻译解释下:好学就能显得有智慧(至少能有知识),力行就能不脱离群众(因不忘本而能具 备仁慈之心),知耻就能守底线(有所为有所不为之勇)。能做到这三点,就算是懂得如何提升自己的修养了。懂得如何提升修养,才能懂得如何驾驭团队。懂得如 何驾驭团队,才能创作出真正伟大的,甚至风行全球的软件产品来。
这就是我理解的架构师的中庸之道,与诸位共勉吧。
来源:51CTO

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
多云未来,Hadoop何去何从?
Hadoop是目前大数据分析领域中应用最广泛的一种分布式架构,而经过相当长时间的发展,Hadoop在功能上也越来越成熟。尤其在过去三年里,它得到前所未有的发展,并被很多公司大规模采用。然而时代在变化,Hadoop在多云的未来该何去何从? 根据市场调研公司Forrester估计,2017年用户将在Hadoop软件和相关服务上花费8亿美元。这并不奇怪,因为在过去这段时间里,Hadoop供应商们充分利用Cloudera、 Hortonworks、和MapR等产品使Hadoop家喻户晓。但是,时代在变化,Hadoop与其它技术一样也受到云计算的影响。 用户们希望借助公有云来处理更多的大数据,所以尽管Hadoop不是专为云而生,Hadoop供应商们还是在努力将Hadoop与云联系起来。就像一位Hadoop供应商的内部人士所言:“如果我们真正理解云,就不会用原来的方式去设计Hadoop。“事实上,所有Hadoop供应商都在通过自家策略使Hadoop与云相结合,尤其是在对象存储和调度策略上。 但是,云供应商似乎并未向Hadoop供应商们敞开怀抱。云供应商正在通过自己的数据解决方案代替Hadoop,这...
- 下一篇
6个公司的大数据岗位的面试经验
本人住在有人间天堂之称的城市,6年多开发经验,最近2年主要在做大数据相关的开发,最近考虑换工作,基本也只考虑大数据相关岗位。目前新工作已经找好,但想分享一下最近面试的失败一些经历(成功的那些就不讲了),吐槽吐槽,跟广大吃瓜群众分享一下过程中的经历心得,我的语文体育老师教的,还请大家莫怪。 1.公司:国内知名电信运营商,其下面的大数据研究院,面两轮 一面:技术人员面,先自我介绍,项目经验相关介绍,问比较细,问了一些Hadoop、HBase的问题,JAVA基础,JVM内存分配小于32G原因,G1和CMS对比,问关系型数据库事务级别,脏读、幻读意思。 问题回答情况:其中G1与CMS区别我只讲了G1比CMS更耗CPU,但回收更快效果更好,两者内存划分设计不同,G1更适合大内存等,具体原因及细节没讲清;脏读、幻读只回答出跟数据库事务有关,面试当时忘记了具体什么叫脏读,什么叫幻读,有点分不清。这两个好像都没有答好,然后面试官问了我待遇期望。 二面:隔了4天,打电话过来让我去二面,是部门经理面,其也是做技术的。上来让我自我介绍,然后就围绕我讲的开始问。讲到之前项目中通过hbase的copro...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装Docker,最新的服务器搭配容器使用
- Linux系统CentOS6、CentOS7手动修改IP地址
- 2048小游戏-低调大师作品
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8