思考面向未来的架构设计
2013-09-18 15:14
183 查看
今天接到一个哥们儿的电话,说,很郁闷,想和我聊聊。 我问,有啥郁闷的事情啊,说来听听。 他说,最近很郁闷,我本来今年的计划是成为一个架构师,但是,无论如何努力,都不知道为什么,感觉希望很渺茫... 这哥们儿其实是一个很努力的家伙,曾经是我Team里技术最好的程序员,对一个技术不钻明白不罢休的那种程序员。 我给他电话里说了说我一直想说,但一直都没有时间说的话,那就是:为什么你总是成为不了架构师? |
其实架构师的概念并不是从程序开发专业一诞生就有的职位概念,架构师(Software Architect)仅仅是最近几年提出来的一个职位,貌似Software Architect的概念是IBM提出来的。然而,架构是什么样的一个职位,就像云计算一样,看起来很美,但是,每个人都有自己的理解。
很多人认为,架构师就是系统分析师,是拿到系统需求进行分析的人,错!如果系统只是系统分析,那么架构设计谁来弄?
有人认为架构师就是架构设计的人,画画UML,写一写文档之类的人,错!画UML就是设计吗?画图的人有了,设计的人是谁?
还有人认为架构师是从属于项目经理,只管设计,而没有任何权利的人,错!如果设计的决策权交给项目经理,那么这个设计是有分量的吗?
架构师是什么?
我们先不回答,我们先来看看在架构师概念出现前的一些职位提法。
在架构师概念出现前,微软是我们大多数软件企业的研发机构设置的样板,当时比较流行的职位搭配是——技术经理+项目经理。
ok,当然也有很多企业实际上,技术经理和项目经理是一个人。
也就是大多数企业当时是采用的开发主管负责制,即:技术+团队+项目,的负责人。
当我们把“项目经理”剥离出开发,仅仅对项目进度以及为项目推进而排除各项外部障碍时,其实负责开发技术和开发团队的人就是“技术经理”了。
如果,我告诉你,之前所谓的技术经理其实就现在的架构师,可能我们大家就更容易理解了。
没错,就是这样的,如果“架构师”的设计失去了“发言权”、“技术方向的决策权”、“团队人员的开发资源调配权”,那么我们可以想见,这个设计是多么的无力!!
因此,什么是架构师?
架构师是具有技术发言权,方向决策权,和团队人员开发资源调配权的开发团队的TeamLear,也是这个程序的设计者,当然他是这个程序团队的灵魂!!
因此,不想当Teamleader的程序员,绝对不可能成为真正意义上的架构师!
同时,不是Teamleader的架构师,也是一个被架空的,苍白无力的架构师!
二、如何才能用架构师的思想去思考?
架构师,如果只是把需求变成程序,那就不是架构师,那是叫“照着葫芦画瓢”。
架构师,如果只是精通各种框架,比如S\S\H之类的技术,只是利用S\S\H之类的技术去描述用户提出的需求,那是叫“用S\S\H画瓢”。
ok,不卖关子,那么怎么思考就是架构师应该去思考的方法?
首先告诉你,进行没有设计的架构设计叫架构师吗?
这种情况在软件行业内太普遍了!!
为什么没有设计?
因为,很多人都不懂什么叫设计!!
给大家一个概念,什么是设计?—— 设计因未来而存在! ——钟声 2010年6月 |
设计因未来而存在!!
即,没有创新,就没有设计!!
即,没有改变,就没有设计!!
用进化论去思考你的设计!!
让你的设计超越一切理论!!
设计只是记忆的载体而不是记忆的全部!!
其实程序员是艺术家,而不是建筑工人!!
那么,为什么你总成为不了架构师?
不要仅仅从技术的角度出发一味的按照自己理所当然的方向去努力,要学会用设计的思想思考,并努力让你自己成为有分量的人!!
相关文章推荐
- 微服务架构 (七): 微服务粒度设计上的核心设计原则与思考的面向
- 面向AARRR 的 移动架构设计 思考备忘
- 面向对象架构 设计原则
- C语言的面向对象设计 —— 对 X264/FFMPEG 架构探讨
- 面向业务的立体化高可用架构设计
- 面向服务的体系架构(SOA)和业务组件(BC)的思考
- 架构分析设计在面向对象系统分析和设计中的作用
- 使用WCF实现SOA面向服务编程—— 架构设计
- .NET应用架构设计—面向查询的领域驱动设计实践(调整传统三层架构,外加维护型的业务开关)
- 对ASP.Net网站架构设计的思考
- A段架构设计_隽语集(IT+設計思考_1801)
- 优美的包裹——面向包和组件设计的架构模式原则
- 架构设计-SOA面向服务架构
- C语言的面向对象设计之 X264,FFMPEG 架构探讨
- 游戏服务器架构设计中的一些思考
- 关于软件架构设计的一些思考--通用架构设计模式
- 移动架构29_面向对象式手写数据库架构设计一(基本框架与插入数据)
- .NET应用架构设计―面向查询的领域驱动设计实践(调整传统三层架构,外加维护型的业务开关)
- 使用WCF实现SOA面向服务编程—— 架构设计
- 关于如何设计一个基于事件驱动架构的思考