沈剑老师在阿里云的直播中分享的一些自己关于架构师的看法和成为架构师的心路历程,内容经精炼整理成文,分集如下:
上篇:我的架构师之路
本篇:架构师“三部曲”
下篇:网友经典Q&A
一、架构师,什么样的人适合?
好多同学会有类似“我适不适合”的问题,比如:走技术,还是走管理?走深度,还是走全栈?带项目,还是带业务?沈剑老师认为每个人的个人情况不同,这类问题没有标准的答案,但是可以通过问自己一些问题来分析自己。自己不适合,主要需要考虑两个方面:我喜欢什么和我擅长什么。
如果不知道自己擅长什么,不知道自己想要什么,可以问自己几个问题:把它当做职业,还是事业?解决技术问题,还是解决业务问题的时候更有成就感?自己单干,帮助团队成果,哪一个更有成就感?这些问题是要自己想清楚的,别人能你方向和经验,但是没法给你答案。走技术,还是走管理?对于这个问题,可以想一下是在做技术的时候还是带团队成长更加兴奋。走深度,还是走全栈?这个问题,可以想下是深挖一个技术细节更加兴奋还是学习各种新技术更加兴奋。带项目,还是带业务?这个问题考虑下是项目组按时交付更让你兴奋还是带领一个业务完成各种考核指标更让你兴奋。做一件事情的时候,口头禅是“我应该”、“我可以”还是“我想要”。他们的主要差别是在于主动去做和被动去做,“我应该”、“我可以”是相对被动的,而“我想要”是主动的。以上问题至少可以得出“我喜欢什么”这个问题的答案。
找到“我喜欢什么”这个问题的答案后,我们还要考虑“我擅长什么”。所以还要一些问题,这些问题是帮助自己找到自己擅长的:问自己,擅长搞技术,还是带团队?问同事,问领导,对自己的哪些产出更满意?看历史,做项目带业务,结果如何?上面有的问题是问自己的,有的是问其他人的,自我觉察可能没有那么准确,这时候可以问领导和同事,对自己的哪些产出更加满意,过往的成绩是不会骗人的。在找到自己擅长的过程中,心里要有谱,我在做什么的时候是容易的,压力没那么大的。
图1 架构师,什么样的人适合?
二、有什么坑?
很多人会问走架构师这条路有什么坑。比如,对于架构师来说,写代码还是不写代码?沈剑老师认为架构师是需要写代码的,且架构师要对业务非常了解,且业务中最核心、最关键的代码最好是架构师来写,且这个能力是一个架构师的核心竞争力。如果真的没有时间来写,也要Review这块代码,并且进行把关,否则很有可能不同部门之间会造成对业务逻辑的认知偏差。
另一个问题,写PPT,还是不写PPT?沈剑老师认为这个问题与写不写代码的问题不矛盾,PPT是一定要写的,这本身也是一种能力。抽象、总结、沉淀、传承,本身就是一个架构师的核心职责之一。沈剑老师认为作为一个架构师,架构文档写不好,架构图画不好,不是一个合格的架构师。包括文档也一样,是对自己工作的总结,是对自己负责,也是对其他人的负责。写代码、写材料、写文档都是一样的,是不矛盾的,架构师都需要做,而这也是当前很多架构师需要进步的地方。
还有一个问题:单干,还是带团队一起成长?沈剑老师认为,很多大型公司的代码,是无法一个人写的,一定是团队在作战。在大的公司,架构师是一定要带团队的。而且在很多公司,架构师和带团队也是没法分开的,如果单干的话很多复杂的系统是无法完成的。架构师在带团队一起成长的过程中也获得成就感,对自己的成长也有帮助。
图2 架构师必须要坚持的几点
三、如何成为一名优秀的架构师?
要想成为一名优秀的架构师,首先会遇到的一个问题:使用最先进的技术,还是使用适合的技术?沈剑老师在文章中经常提到的一句话,架构不只是设计而来的,而是演进而来的。在做架构工作中要避免一个问题:不针对业务进行架构,比如突然接触到一个高深的技术,脑子一热就想要用到业务中。要知道架构是为了解决问题的,不是为了技术来架构,你学到的新的技术,有时候并不与业务相适应。一些架构师倾向于使用最前沿的技术,但是这些技术往往不是很稳定。对于新技术我们要去学习,要去关注,要去研究,但是与将其应用在线上是两回事。新技术对于个人履历来说是加分项目,但是新技术应用到线上要慎重,作为一个架构师要对整个业务负责,而不是单纯的为了给自己的履历加分就置业务于不顾。总的来说,学习新技术与应用到线上是两回事,我们不能将两者定性的联系起来,架构师为了自己的履历而一心的去使用新技术,有可能会给运维、测试等部门带来不必要的麻烦。
另外一个问题,做架构师是否需要听产品的“唠叨”?沈剑老师认为要多和产品去沟通,去问清楚为什么要这么做,这么做技术的难度大不大等等,可以从架构的角度给产品一些反向建议,以优化产品的功能来达到优化架构的功能。比如说秒杀的例子,这种业务能否异步呢?比如说下单之后要在一定时间内付款,而不是需要立马支付,这样子把下单和支付分开,大大降低了并发,给架构的压力也小了许多。
很多架构师在架构的过程中会出现较真的现象,试图做完美的系统。沈剑老师认为我们要依据二八原则,解决主要矛盾为优先,因为人无完人,架构也没有面面俱到的架构。如果为了一个出现概率千分之一的问题,使架构复杂了二十倍,那么这个投入是不划算的,拥有太多的what if,系统就没有做了,没有完美的系统。比如拿58同城为例,现在的架构跟十年前的架构肯定是不同的,但是就算现在回头再去设计十年前58同城的架构,仍然会是一样的,架构是结合业务的,脱离了业务的架构设计,都是耍流氓。
图3 如何成为一名优秀的架构师
更多精彩,点击查看
上篇:我的架构师之路
下篇:网友经典Q&A
直接观看视频