大家读本章内容时是否会有点发虚的感觉呢?相信我,你并不孤独。实际上,本章探讨的几个话题,要想叙述清楚,不仅需要大家具备诸多前置条件,如熟悉产品了解需求等,而且还要具备一定量的编码训练,甚至最好能跟着我们团队摸爬滚打一段时间,大家才能真正体会。
正因为这个原因,在本章内容叙述时,我刻意着墨于各种架构理念的演化过程,而非具体技术细节。在我心目中,架构是活的,是长出来的,别人的架构你很难直接拿走。但看到是一种力量,看到别人能迭代出一套优秀的架构,我们大脑中的镜像神经元就会开始努力工作,帮助我们去“体验”那种经历。
镜像神经元是最近脑科学的研究成果。镜像神经元的存在,使我们有模仿能力,有同理心,看到别人打针我们会痛,别人打哈气我们会困,看到别人演奏钢琴曲,我们内心也会突然冒出学钢琴的冲动。
大家要努力呵护自己的这种情愫,看到别人的优秀设计理念后,脑袋中不妨天马行空一番,如将这种设计理念用于自己的产品,会长成什么样子,然后尽快的将最终期望的样子记录下来。潜移默化的力量是很强大的,你以后的工作中会下意识的用到那么一点点。相信我,时间会给你惊喜。
◇◇◇
关于架构学习的认识,我曾经走过一些弯路。很久以前,架构是我心目中闪闪发光的词汇,我在网络上四处游荡,搜到一个颇为经典的架构:MVC模式。这是一种非常经典的程序架构思想,将程序分割成模型(model)、视图(view)和控制器(controller)三部分,以达到程序分层和解耦的作用。
我看得懂这个架构设计,也知道自己学过的MFC类库、qt、网页开发等都用到了这个架构,但唯独自己做的产品中用不到。
不仅如此,我后来又阅读了大名鼎鼎的所谓四人帮撰写的《设计模式》一书,而且反复阅读了多遍,我确信自己看得懂,但在产品中依然用不上。
一开始我怀疑是自己做的产品太low了,所以用不上。后来我发现网络上有牛人用一个简单的例子就可以演示好多种设计模式,才不得不承认是自己太笨了。单纯想通过学习就具备架构设计能力这条路走不下去了,哎,算了,我本庸人,何必自扰之,咱敬而远之总可以吧。
现成的架构设计没学来,但工作依然要继续。为了让自己的产品代码复用率更高,我们团队想出了很多策略,从最初级的分层、接口抽象