6.9 重新认识架构师

大家读本章内容时是否会有点发虚的感觉呢?相信我,你并不孤独。实际上,本章探讨的几个话题,要想叙述清楚,不仅需要大家具备诸多前置条件,如熟悉产品了解需求等,而且还要具备一定量的编码训练,甚至最好能跟着我们团队摸爬滚打一段时间,大家才能真正体会。

正因为这个原因,在本章内容叙述时,我刻意着墨于各种架构理念的演化过程,而非具体技术细节。在我心目中,架构是活的,是长出来的,别人的架构你很难直接拿走。但看到是一种力量,看到别人能迭代出一套优秀的架构,我们大脑中的镜像神经元就会开始努力工作,帮助我们去“体验”那种经历。

镜像神经元是最近脑科学的研究成果。镜像神经元的存在,使我们有模仿能力,有同理心,看到别人打针我们会痛,别人打哈气我们会困,看到别人演奏钢琴曲,我们内心也会突然冒出学钢琴的冲动。

大家要努力呵护自己的这种情愫,看到别人的优秀设计理念后,脑袋中不妨天马行空一番,如将这种设计理念用于自己的产品,会长成什么样子,然后尽快的将最终期望的样子记录下来。潜移默化的力量是很强大的,你以后的工作中会下意识的用到那么一点点。相信我,时间会给你惊喜。

◇◇◇

关于架构学习的认识,我曾经走过一些弯路。很久以前,架构是我心目中闪闪发光的词汇,我在网络上四处游荡,搜到一个颇为经典的架构:MVC模式。这是一种非常经典的程序架构思想,将程序分割成模型(model)、视图(view)和控制器(controller)三部分,以达到程序分层和解耦的作用。

我看得懂这个架构设计,也知道自己学过的MFC类库、qt、网页开发等都用到了这个架构,但唯独自己做的产品中用不到。

不仅如此,我后来又阅读了大名鼎鼎的所谓四人帮撰写的《设计模式》一书,而且反复阅读了多遍,我确信自己看得懂,但在产品中依然用不上。

一开始我怀疑是自己做的产品太low了,所以用不上。后来我发现网络上有牛人用一个简单的例子就可以演示好多种设计模式,才不得不承认是自己太笨了。单纯想通过学习就具备架构设计能力这条路走不下去了,哎,算了,我本庸人,何必自扰之,咱敬而远之总可以吧。

现成的架构设计没学来,但工作依然要继续。为了让自己的产品代码复用率更高,我们团队想出了很多策略,从最初级的分层、接口抽象、回调函数起步,慢慢的经常会冒出很多神来之笔。无意中,当大家再次翻开《设计模式》一书时,发现其中很多设计理念早已用了大半,虽然大多用的不伦不类。此时,再去反思对比,开始有一种豁然开朗的感觉。

此时,大家才意识到,架构很难简单学来,但如果能有好的抓手,优秀的架构就可以自己长出来。因为这个经历,我带团队时,一开始仅要求大家囫囵吞枣的快速了解各种架构和设计模式,然后先在分层、抽象、缓存、消息队列等基础策略方面给予足够训练,最后则将精力全部侧重于对“抓手”的要求上了。

◇◇◇

多年的工程经验,我们团队探索出一些比较好的抓手,分享给大家。

  1. 架构设计首先是用于组织真实产品无数程序模块的,因此程序静态架构和动态架构很关键,严格分层是一个很好的抓手。

  2. 架构不仅用于组织程序模块,也可用于组织团队成员。将架构设计图形化,并内化为团队的共识,不仅有助于架构迭代,也有助于团队建设,额外,统一的目录结构、工具、配置环境等也有助于团队成员形成默契。

  3. 要想让架构持续迭代,复用是一个很好的抓手,如果能严格控制基于成熟平台之上新产品的代码复用率,会自然迭代出一套可复用的架构(新领域新产品应该适度放开复用这一要求)。

  4. 复杂的软件模块,或者多个产品可能用到的模块,编写成本比较高,开始构建时就需要充分考虑可复用性。而且,这些较小的模块是新人成长的阶梯,统筹人力资源,让大家都具备能力提升的机会,有助于整个团队发展。

  5. 架构设计时视野要宽,不能仅关注产品本身,还要考虑营销,生产,工程等多个环节。关注这些领域会衍生出很多有趣需求。如我们团队的设计产品中,非常注重各环节的观测点,这些观测点不仅有助于现场快速定位问题,持续提升产品质量,不同厂家产品联调时也能省去很多口水仗。

  6. 元件化、脚本化、虚拟环境等都是软件行业迭代出的优秀策略,这些策略不仅加快了产品研发进度,关键是可以更快的适应市场的变化,帮助我们在激烈的竞争中活下来。因此,架构师也需要适度关注行业发展趋势。

  7. 重视架构迭代过程中的积累,这方面我以前介绍过的知识库是一个很好的工具,如能引入考核机制效果会更佳。

  8. 将人员培养纳入架构设计。实际上架构设计时必须考虑团队成员的构成,能力水平等多种因素。根本没有最好的架构一说,只有在约束条件下最适合的架构设计。

这些抓手都是侧重技术方面的,额外还有一个更重要的抓手:人性。

架构师到底是什么,需要组织程序结构、需要安排团队、需要人员培养、需要和各环节交流等等,但这些都是具体工作。大家试着从老板或公司的角度思考,架构师是什么?

在老板的心目中,架构师就是产品就是金钱。如我是老板,我只要招进一名优秀的架构师,他就会自己构建并培养团队、又好又快的做出市场需要的产品,我的公司就可以赚到钱。

因此,一名优秀的架构师是非常稀缺和值钱的。职场多年,我终于明白了一个人的收入与其工作态度、是否加班、工作量等关系都不算太大,最大的影响因素就是“稀缺”,而成为架构师,会让你变得稀缺。

朋友们,身在职场,为了票子,为了房子,为了尊严,为了能吸引来漂亮的女孩,哪怕爬,我们也要爬到架构师这个位置。入职——团队——抽象——架构——复用——质量——标准化,台阶已帮大家搭好,还有诸多抓手,相信自己,你一定会成长为一名优秀的架构师的。

——————————————

返回目录

我是小马儿,一个渴望良知与灵魂的嵌入式软件工程师,欢迎您的陪伴与同行,如感兴趣可加个人微信号nzn_xiaomaer交流,需备注“异维”二字。

猜你喜欢

转载自blog.csdn.net/zhangmalong/article/details/107113396