分类: Mysql/postgreSQL
2012-05-11 16:48:43
据我在一些社区里面的观察和发博客,发帖子的情况来看,每次只要一谈及架构或与架构有关的话题,看的人与跟帖的人特别的多。说明了大家非常向往“架构设计”这个活动,也非常崇拜“架构师”这样神级般的人物。
这篇文章主要就是和大家来聊聊一些与架构相关的知识,这里不涉及到太多的技术性方面的东西,偏向于职业发展。
架构设计是什么
这里之所以提出来,是因为每次我去其他的企业或与一些技术朋友讨论,或者面试新人的的时候,每次都会有人把架构设计与一些模式混在一起。认为架构设计,就是使用模式(设计模式,企业架构模式,集成模式等等)。
其实就我个人的观点来看,架构设计和模式的关系就好比:一栋大楼与其中一块砖的关系。也就说,会使用了模式,并不代表你就会做架构设计。
有时候,其实我也有一个比较尴尬的情况:有朋友问我:什么是架构设计?
对已这个问题,真的非常不好回答!我常常给出的回答就是:架构设计,什么都不是,也可以说它什么都是。这个问题,使我想到了另外一个问题:有朋友问我进行SQL优化,怎么搞?这个问题太大,太粗了,你如果全面给他们讲,不可能,一是没有这么多的时间,另外,就是你愿意讲,人家不见得愿意听(再说了:具体问题真的具体分析,没有万精油,可以搞定一切)。
所以,常常给他们这样一个回答:你去加索引,看行不行!其实要说的太多了,这里没有办法全部讲出来,只能给一个非常非常大概的答案给他。其实有关SQL优化,那么要讲的东西很多,例如,我们告诉他:去看看数据库中的等待类型,收集系统和数据库的计数器值,将问题的访问定位(看看是内存的问题,还是磁盘,CPU,存储架构设计问题,网络等的问题),然后对于不同的问题,再怎么样去收集数据,再去分析…太多了!如果通过分析之后,确认是存在缺失索引,那么就可以加,否则“加索引”就是废话,反而加剧了性能问题。
有人也问了:我做架构的时候,分了几个层,你看行不行?
这个问题,我依然无法回答,只能说:行,可以。分几个层和架构没有什么很大的关系!其实问这个问题的朋友就是希望把架构设计实体化----把架构设计表现在分层这个动作上。
我一直认为:架构设计体现的就是一种思维,因为思维是无形的,不管你怎么去实现,可以说都是对的,问题就是:你培育的那种思维是不是周密的,正确的,是否具有远见的。而这些,不仅仅是要从技术方面去考虑,还要从项目本身去考虑,例如,时间,人员,业务,软件硬件资源的调度和使用,还以后的发展和变更,甚至要考虑市场。
这样一说,就感觉架构这东西好虚,内容也很多,所以,我们可以按照自己的喜欢来专攻一块,例如成为技术架构师,业务架构师,系统架构师,数据架构师等等。不同的职能可能与其他的职能有一些交集。
其实,到最后发现:架构师是什么这不是问题的关键?你到底是不是一个架构师也不是关键?关键是:你是否也是一个可以真正有实力创造价值的人。这一点才是关键!就算你去了一个公司,给你一个架构师的职位和头衔,但是你就是搞不出东西,就是没有实现价值,有什么用呢?此时,你再拿架构师这个“神牌”来说:我是架构师,我XXX!这就没有意义了。
武汉北大青鸟汉口总校区。