背景:

  今天接到一个哥们儿的电话,说,很郁闷,想和我聊聊。

  我问,有啥郁闷的事情啊,说来听听。

  他说,最近很郁闷,我本来今年的计划是成为一个架构师,但是,无论如何努力,都不知道为什么,感觉希望很渺茫…

  这哥们儿其实是一个很努力的家伙,曾经是我Team里技术最好的程序员,对一个技术不钻明白不罢休的那种程序员。

  我给他电话里说了说我一直想说,但一直都没有时间说的话,那就是:为什么你总是成为不了架构师?

  一、什么是架构师?

  其实架构师的概念并不是从程序开发专业一诞生就有的职位概念,架构师(Software Architect)仅仅是最近几年提出来的一个职位,貌似Software Architect的概念是IBM提出来的。然而,架构是什么样的一个职位,就像云计算一样,看起来很美,但是,每个人都有自己的理解。

  很多人认为,架构师就是系统分析师,是拿到系统需求进行分析的人,错!如果系统只是系统分析,那么架构设计谁来弄?

  有人认为架构师就是架构设计的人,画画UML,写一写文档之类的人,错!画UML就是设计吗?画图的人有了,设计的人是谁?

  还有人认为架构师是从属于项目经理,只管设计,而没有任何权利的人,错!如果设计的决策权交给项目经理,那么这个设计是有分量的吗?

  架构师是什么?

  我们先不回答,我们先来看看在架构师概念出现前的一些职位提法。

  在架构师概念出现前,微软是我们大多数软件企业的研发机构设置的样板,当时比较流行的职位搭配是——技术经理+项目经理。

  ok,当然也有很多企业实际上,技术经理和项目经理是一个人。

  也就是大多数企业当时是采用的开发主管负责制,即:技术+团队+项目,的负责人。

  当我们把“项目经理”剥离出开发,仅仅对项目进度以及为项目推进而排除各项外部障碍时,其实负责开发技术和开发团队的人就是“技术经理”了。

  如果,我告诉你,之前所谓的技术经理其实就现在的架构师,可能我们大家就更容易理解了。

  没错,就是这样的,如果“架构师”的设计失去了“发言权”、“技术方向的决策权”、“团队人员的开发资源调配权”,那么我们可以想见,这个设计是多么的无力!!

  因此,什么是架构师?

  架构师是具有技术发言权,方向决策权,和团队人员开发资源调配权的开发团队的TeamLear,也是这个程序的设计者,当然他是这个程序团队的灵魂!!

  因此,不想当Teamleader的程序员,绝对不可能成为真正意义上的架构师!

  同时,不是Teamleader的架构师,也是一个被架空的,苍白无力的架构师!

  二、如何才能用架构师的思想去思考?

  架构师,如果只是把需求变成程序,那就不是架构师,那是叫“照着葫芦画瓢”。

  架构师,如果只是精通各种框架,比如S\S\H之类的技术,只是利用S\S\H之类的技术去描述用户提出的需求,那是叫“用S\S\H画瓢”。

  ok,不卖关子,那么怎么思考就是架构师应该去思考的方法?

  首先告诉你,进行没有设计的架构设计叫架构师吗?

  这种情况在软件行业内太普遍了!!

  为什么没有设计?

  因为,很多人都不懂什么叫设计!!

  给大家一个概念,什么是设计?——

  设计因未来而存在!

  ——钟声 2010年6月

  没有面向未来的,只是面向过去的,那绝对不是设计,那绝对只是模仿!!

  设计因未来而存在!!

  即,没有创新,就没有设计!!

  即,没有改变,就没有设计!!

  用进化论去思考你的设计!!

  让你的设计超越一切理论!!

  设计只是记忆的载体而不是记忆的全部!!

  其实程序员是艺术家,而不是建筑工人!!

  那么,为什么你总成为不了架构师?

  不要仅仅从技术的角度出发一味的按照自己理所当然的方向去努力,要学会用设计的思想思考,并努力让你自己成为有分量的人!!

  如果你想学习 Java 工程化、高性能及分布式、高性能、深入浅出。性能调优、Spring,MyBatis,Netty 源码分析和大数据等知识点可以来找我。

  而现在我就有一个平台可以提供给你们学习,让你在实践中积累经验掌握原理。主要方向是 JAVA 架构师。如果你想拿高薪,想突破瓶颈,想跟别人竞争能取得优势的,想进 BAT 但是有担心面试不过的,可以加我的 Java 架构进阶群:582100479

  1、具有 1-5 工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加。

  2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加。

  3、如果没有工作经验,但基础非常扎实,对 java 工作机制,常用设计思想,常用 java 开发框架掌握熟练的,可以加。

  4、觉得自己很牛 B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加。