(转)论架构师的自我修养

架构师,固然是脑力劳动者,可是一样是脑力劳动也存在重大的差异。有一类脑力劳动的成果,是比较容易被评价的。可是,架构设计只是软件开发过程当中的一个环节,在这个多人协做的场景中,咱们很难单独评价架构的优劣。架构

架构师,固然是脑力劳动者,可是,一样是脑力劳动也存在重大的差异。有一类脑力劳动的成果,是 比较容易被评价的。或者可以判断其对错:好比考试的分数;或者可以比较其高下:好比两我的下棋分出输赢;或者可以交由市场来判断:好比某种UI/UE设 计,咱们能够经过数据统计,了解其受用户欢迎的程度。框架

可是,架构设计只是软件开发过程当中的一个环节,而在这个多人协做的场景中,咱们很难单独评价架 构的优劣。因为硬件、软件、部署、人员、测试、用户、市场等众多的差异,即便是很是相近的两个系统,咱们也很难判断两个架构孰优孰劣。好比:eBay的架 构与Taobao的架构哪一个更加优秀?在交付拖延的时候,咱们能够将问题归咎于开发团队的效率低下。在出现质量问题的时候,咱们能够将问题归咎于测试团队 的疏忽大意。在负载撑不住的时候,咱们能够将问题归咎于运维团队不够专业,甚至是竞争对手的DDoS攻击。那么,在出现什么样的问题的时候,咱们能够将责 任归咎于架构呢?运维

因此,现状就是:架构师是一个很难作好的职业。可是,从某种意义上来讲,又是一个很是容易混的职业。(固然,混是另外一种须要持续修炼的高端技能。)所以,架构师也是特别须要强调自我修养与职业道德的职业。学习

什么是架构?什么是架构师?测试

对于架构的定义,有不少种,我比较赞成的一种定义是:“架构是一组关键决策”。这样的决策包括 但不限于:使用什么操做系统、语言、框架与类库;是否在架构中使用某种全新的技术方案;优先考虑或知足哪一方面的需求以及如何在技术上实现这一点;更进一 步的,面对一个不断发展的系统,哪些部分须要优先重构or优化、哪些决策须要从新考虑甚至修改;再进一步,某些前瞻性的考虑,也是架构决策的一部分,等到 问题发生再来解决,一样是架构方面考虑不周。优化

可以作出这些决策的,就是架构师。或者说,在一个团队中,实际的最终决策者,就是事实上的架构师。不管他被赋予什么样的头衔。在一个团队中,咱们总能找到这样的角色(不管他作得是否是称职),而一个优秀的架构师,就是一般可以作出“较多”正确决策的人。操作系统

架构师的工做是什么?架构设计

仅仅作出决策是不够的,咱们能够从时间线上来观察:在作出决策以前,架构师须要足够了解本身的“可选项”,不管是用户的实际需求,仍是最新出现的技术和框架,而且都得要有足够深刻的理解(不然就是在拍脑壳作决策)。这时,架构师的角色,是一个“研究者”。翻译

在综合各项因素,甚至是相互矛盾的各类需求以后,在考虑到团队的实际能力与交付压力以后,在平衡了先进性与可靠性、扩展性与稳定性、重要性与紧迫性以后,架构师作出了一组决策。这时,架构师的角色,是一个“设计师”。设计

为了确保本身架构设计可以被正确地实施和贯彻,架构师须要与研发团队密切配合,或者说服、或者引导、或者辅导、或者鼓动、甚至须要某种“强有力的推动手段”,这对于架构师的「硬实力」与「软实力」都提出了很高的要求。这时,架构师的角色,是一个“Top Coder”。

在某些大公司,架构师还需作不少的文档工做,这些文档并非交付给开发团队的说明性文档。而是某种向上级证实某某方案可行,某某架构有效的证实性文档。这时,架构师的角色,是一个“说服者”。

从上面的描述,咱们也能够发现,架构师像是一个千面人:须要与上下先后左右的不一样角色打交道;多面手:须要了解甚至掌握诸多不一样的知识和技能。要想作好这个工做,提高自我修养是根本之道!

什么是架构师的自我修养?

1. 以理解用户为荣,以想固然尔为耻

架构师不是产品经理,不是市场人员,不是客服人员。可是,若是只懂技术,只考虑技术,不能深刻的理解用户的需求(强调一下,用户的真实需求!),就会作出“纯粹追求技术先进性”的想固然尔的架构出来。

2. 以脚踏实地为荣,以夸夸其谈为耻

架构师固然须要很强的表达能力,甚至还须要有忽悠能力。可是,不管是表达仍是忽悠,都必须以“实力为基础”。若是不能脚踏实地,积累实力,只会夸夸其谈。那就至关可耻了。

3. 以一马当先为荣,以指手画脚为耻

仍是那个经典的台词“兄弟们跟我上”与“弟兄们给我上”的区别。若是对于一些困难的问题,架构师本身都搞不定,却摆出一副成竹在胸的表情:“这不是很简单的吗?你到网上搜一下嘛,资料大把大把的。”这种作派,就很使人不齿。

4. 以实践检验为荣,以道听途说为耻

若是某种技术,架构师本身都没有作过评测,没有看过框架代码,没有在过去的实践中应用过。却由于一篇文章,一个讲座,甚至某个大公司曾经用过这样的证据,就将一种技术引入到项目之中。这样的决策,不多有不失败的。

5. 以先见之明为荣,之后知后觉为耻

“过分设计”固然是一个贬义词,可是架构师必定要有前瞻能力。不能等到火烧起来了,再去救火。虽然在企业里,的确存在“救火英雄升迁快”的现象。可是,一个优秀的架构师,应该以“消除隐患于无形”为荣。

6. 以兼容并包为荣,以专断专行为耻

在架构领域,不多有惟一解、最优解。大多数时候,咱们只能在多个各有优劣的方案中,反复权衡,考虑取舍。这时,开阔的视野、开放的心胸,就显得尤其重要。若是一味的专断专行,听不进团队里其余同事的意见(尤为是那些学习了乔布斯的架构师),就会很是危险。

7. 以主动学习为荣,以固步自封为耻

技术的进步实在太快,曾经有一种夸张的说法:“平均天天诞生一种革命性的、颠覆性的技 术”。虽然有不少新技术,都在如此宣称,做为架构师,却必须不断地主动学习,了解,甚至在某些领域作一些初步的尝试。这样的过程,在架构师的整个职业生涯 中,都没法中止。一旦产生了“固步自封”的念头,这个架构师也就“不过尔尔”了。

8. 以勇猛精进为荣,以疏忽懈怠为耻

架构师是一份困难的工做,更加剧要的是:随着架构设计的完成,架构师的工做,才刚刚开始。接下 来的任务,会很是琐碎,也许会更加困难。这份工做的主题是:“架构看护”尽量保护架构,不会随着时间的推移,随着特性的增长,渐渐变得腐化。不少最初设 计得至关优秀的架构,到最后变得不堪入目。说到底,仍是要怪架构师没有可以坚持本身当初的决策。

如何提高架构师的自我修养?

在《中庸》里,子曰:“好学近乎知,力行近乎仁,知耻近乎勇。知斯三者,则知因此修身;知因此修身,则知因此治人;知因此治人,则知因此治天下国家矣。”

简单的翻译解释下:好学就能显得有智慧(至少能有知识),力行就能不脱离群众(因不忘本而能具 备仁慈之心),知耻就能守底线(有所为有所不为之勇)。能作到这三点,就算是懂得如何提高本身的修养了。懂得如何提高修养,才能懂得如何驾驭团队。懂得如 何驾驭团队,才能创做出真正伟大的,甚至风行全球的软件产品来。

相关文章
相关标签/搜索