什么是架构师?
的确,这个问题难以回答。架构师是挺抽象的。
但是架构师是产品与技术之间的桥梁。目前我是这么体会的。
毕业三年,我的目光很少关注产品本身,而只是技术本身。在技术中,我去探索底层实现。而在这三年中,我认为架构师就是去做这些底层实现的人。比如在OA,他会设计并实现工作流;并且,他可以实现一个便于开发人员开发的技术框架。但我在问:这个是不是只是框架设计师?其范畴也是技术开发人员,或者研发人员。但为什么要设计这样功能的工作流?为什么要有这些技术框架?为什么要用到缓存?缓存那么多为什么用那个?为什么用php而不用jsp?这些有什么依据?如果光是能接到这样的指令去实现出来,但这些问题是不是能回答的上来?而回答这些问题的人,是什么样的人呢?
后来,当我欣赏新浪微博,淘宝,当当,有心去考虑其某些功能模块是怎么实现的时候,并且在与一位技术总监聊天之后,我在想:如果有一个人,对于这些奇妙的实现,能迅速提供一个合理的解决方案,并可有效的实行,并且可以长期稳定的运行,甚至扩展,那这个人很了不起。
方案!
这个人,他不做具体的开发,他可能也不做底层的研发。他只是提供思路。我个人觉得,他是架于产品和技术之间的那个人。没有他,技术很难遥望产品这一对岸,产品也很难依靠技术去实现自己的理念。
也许他就是架构师。这是我目前的理解。
而怎么才能达到这个人的层次呢?
我个人是这么想的:
要关注各个层面的技术:比如做java,不光是深入学习spring,struts,这些只是开发的手段。只是停留在开发这个层次。而是要对所需要的相关层面的技术去涉及,有些可以是深入,
有些可以是了解。比如互联网应用,最起码要涉及基于mvc的开发流程,性能的考虑,缓存的设计,智能分析的了解。
 
可是存在这样的一个问题:知识是无穷无尽的,在无穷无尽的知识海洋中,你必须去选择,哪些要精通?哪些要深入?哪些要了解?
对于刚开始工作的人,以我的经历,我的选择依据是统计公司的招聘需求,很多公司要ssh,我就学ssh,很多公司用oracle,我就学oracle,很多公司在从中级到高级的选拔中,需要精通设计模式,需要懂得性能调优,那就去学这些。
 
但对于一个已经在职场工作几年的人,就不必再光从这个角度去选择了,因为你的经验已经是你找工作最大的筹码,你掌握的很多知识,已经可以和很多公司的需求匹配。要主动去寻找动机去深造。
 
而这个就是要渡河登陆产品,深入你所在的相关行业。你要去了解产品,也许你可以不清楚产品是怎么运营,如何推广,但你要知道的是,这个行业,这个产品需要实现什么?会遇到什么困难?而这些都是要技术解决的。
 
目前我已经意识到了这一点,但如何在产品的岛屿,去得到这些技术需求,我个人目前也只是这么想:当你上微博时,当你去淘宝购物时,当你去支付或转账时,要留心了,考虑你面对的一些常用的功能,应该如何实现?问问你的经验?再去网上寻找些帮助,从而能够知道在什么方向能提供这样的技术支持。
 
 
那这些点如果都思考好了,就得更细致的划分:什么该了解?什么该深入?什么该精通?
 
这个问题,我目前的回答,应该得结合兴趣,结合该技术面对整个产品价值实现的作用,结合自己目前的能力来去考虑。比如说,商城会在首页通过缓存列出分类等信息,那么这一块可能会和nosql有关,而这个学起来不困难,自己去对mongodb,memcached去自学一番,很容易,所以可以去深入。再比如,搜索是每个网站基本都有的,这个很重要啊,必须深入!
lucene是一个不错的框架,去看吧!再比如,如果涉及到数据挖掘相关的,而你觉得自身没什么数学基础,那完全可以先去了解,毕竟你的方向不是专门去研究这个的。
 
 
再下面,就是必要的实践。实践是检验真理的唯一标准。也许你去深入了解了很多,可是他们到底可行吗?你的性能调优方案,会给访问速度带来多大的提升?要去自己设计实验,并
老老实实的去做出来,并得到实验数据结果,以证实自己的结论。否则,一切都是纸上谈兵。
 
而如果能做到上面提到的架构师,我个人在想,有这样探索素质的人,可能会想:我也是被驱动的,被产品驱动?那为什么要设计这样的产品?目前的产品给公司带来的利益,多吗?有
什么缺陷?可以更好的改善吗?应该怎么去考虑改善方案?或者说,从整个行业来看,还有什么更好的利益圈子,适合我们公司去探求的?公司应该如何调整自己的产品线,长足走下去?
当然,思考这些的同时,也许他还是对技术感兴趣,哪怕是业余,但这份热情依旧吧。
以上仅笔者个人观点,欢迎谩骂,欢迎批判,大家一起讨论这个问题。
posted on 2012-10-17 11:44  王小涛  阅读(1024)  评论(1编辑  收藏  举报