啥是架构师啊?

凤舞凰扬 2010-10-15
   如果对于面试来说,首先要清楚对方公司定义的架构师是指的是什么,业务架构、技术架构(还分应用架构、数据架构)还是基础架构等。不同行业的架构师有不同的需求和定位,但是起码有一些是共通的。
   如何识别一个架构师和一个工程师(或者说高级程序员),就如同建筑行业识别一个结构工程师(也就是软件架构师概念的来源)和土建工程师一样。
   一个架构师与一个工程师的具体区别在于:
1。架构师懂得为什么要用一个东西,以及它的好处和坏处,它的应用场景,而不是如何去用。比如大家最为熟悉的SSH。
2。架构师能够识别影响软件整体的关键性问题,并能提出整体的解决方案。
3。架构师不但有比较扎实的技术功底,更加有比较广泛的技术面。
4。架构师应该有比较丰富的经验,面对和处理过系统级的问题。
5。架构师要有很好的表达能力(图形、文字及口头),有明确的设计理念,并能够将思想和理念传递给其他同事。
     至于很多人谈到说架构师要会或不应该封装、要懂业务、要能写非常好的数据结构代码等等,这些都不是体现架构师职责和作用的关键。一个软件项目需要架构师,更多地是需要它把握技术的方向、控制项目的技术风险,解决项目中的技术难题。
凤舞凰扬 2010-10-15
kurier 写道
说说我的看法,我觉得架构师要做的事情就是:
针对当前的业务需求、短期内可预见的需求、非功能性需求,提出解决方案。
解决方案应该包括:1、业务建模;2、技术选型;3、需求按模块划分及模块关联;4、核心代码的实现;等等。
解决方案还要具备以下特性:1、具体需求所属模块定位清晰;2、开发人员分工明确;3、与软件硬件人才等现实基础相符,解决方案可落地;等等。

   业务建模是高级需求分析,或者说业务架构师的职责。技术选型的确是架构师的职责,而需求按模块划分又是系统分析员的职责了,核心代码实现其实不算架构师的职责,只是很多时候架构师干了这个活。
   至于解决方案特性中开发人员分工明确算是项目经理的职责了。

   这些其实说明了一个现状,项目经理、架构师、系统分析员往往在实际项目中高度重合了。
javamonkey 2010-10-18
技术不是架构师要面对的唯一任务,理解业务需求,把其转化为合适的技术实现是比较实际的

比如俩年前一个项目,用BEA的BPM处理流程上的东西,导致了很多问题。现在大家一致决定取消BPM,这是为什么呢,因为系统本生就只有俩个简单流程(无循环,一个分支),且流程很固定,完全可以通过数据库表维护其流程状态就可以了。当时为什么做这个决定,这完全是架构师拍脑袋想的。
凤舞凰扬 2010-10-18
单系统内的两个简单流程,用BPM,呵呵,看来你们的架构师真是在练手了。
javamonkey 2010-11-01
练手没有错,就是忽悠了太多人就不好了
javamonkey 2010-11-05
上次那公司三月后又找我了,看样子我突然又可以成为架构师了,哈哈。
cfeers 2010-12-07
  什么时候我才可以到架构师啊。
javamonkey 2010-12-07
cfeers 写道
  什么时候我才可以到架构师啊。


认真搞搞技术,肯定要不了4,5年,就可以了。
javamonkey 2010-12-13
csc365kl 写道
建筑业的总规划工程师吧


不太同意,至少有一点我认为是不通的,建筑行业的架构师只是画画图什么的。

软件这一行的,我看到大部分架构师还是要亲自动手的
Global site tag (gtag.js) - Google Analytics