潜鱼在渊

Concentrating on Architectures.

posts - 77, comments - 309, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

理解架构师

Posted on 2005-12-17 16:40 非鱼 阅读(3154) 评论(16)  编辑  收藏 所属分类: 面向对象设计
    今天被鄙视了一下。一个编码比我好的朋友说:“非鱼,说实在的,我挺鄙视你搞的架构师小组的。基本功不扎实,就搞什么架构师,是我一向鄙视的行为。”其实我自己也认为自己不是一个合格的架构师,或许勉强算是一个预备役的架构师吧。

    但这并不影响我对于架构师职业的理解和学习,而我也愿意把我的学习经验和大家分享。目前国内真正的架构师还是极少的,我以“架构师”来称呼自己,算是自 诩,但更是自勉。我建立“架构师之家”这样一个团队BLOG,更多是想加入的人(多半还不是架构师吧)一起学习进步,所谓每月至少一篇关于架构师的文章算 是一种督促吧。

    朋友的意思,如果我没有理解错的话,基本功是指的编码。没有写过代码的人来做架构师,是一个笑话。但如果只有Anders Hejlsberg这样的人才能成为一个架构师的话,恐怕这个世界上的架构师就太少太少了。每个人都可以向Anders Hejlsberg学习,但不是每个人都要成为Anders Hejlsberg。我认为一个架构师应该对编码很精通,能够掌握各种数据结构和大部分算法,知道何时何地应用何种数据结构和算法。这样应该足够了。

    架构师应该精通分析和设计。架构师应该比常人容易理解事物的基本原理,具有正确的分析手段和良好的认识论、方法论基础。掌握各种设计原则和模式是一个架构 师的职业要求。架构师应该具有一定的领导能力,带领一个团队。架构师应该具有良好的沟通能力,和客户沟通以确保产品满足其需求。

    架构师往往没有一个他“自己”的产品,如Martin Fowler,这个牛人也没有什么架构产品吧?架构是产品的基础,但架构本身不是一个产品,架构师所做的都是幕后工作。架构师是编剧,重要而不如导演名气 大,但Hollywood是编剧负责制,不是导演负责制。有激情的程序员不屑于架构师,因为架构师没有一个产品。

    架构师需要考虑满足多个风险承担者的利益。站在不同风险承担者的角度权衡利弊,尽可能满足所有人的要求。他象一个走钢丝的杂技艺人,最终会为自己的成功表 演而感受内心的愉悦。但架构师不是无原则的走中庸之道,他的原则就是所有风险承担者的利益。

    成功的架构师会把杀手特性扼杀在摇篮之中。他不允许一个程序员过度考虑一个看上去非常吸引人但代价高昂的特性(中国称“亮点”)或高性能的实现。因为这会对整个产品的发行造成负面影响,甚至于导致项目失败。

    架构师对于产品质量的敏感是程序员做不到的。他从全局角度考虑质量,并把这些质量的属性反映到产品中。

    “另外作为架构师还要考虑的问题很多,甚至比技术架构更重要如授权模式、部署模式及成本、维护方案、安装及升级方案、商标及商标的相关元素、发布及发布管 理、安全因素、市场因素及技术市场架构(个人认为这个因素最难也最重要)” ——Donald

评论

# re: 理解架构师  回复  更多评论   

2005-12-17 16:45 by petit
非鱼渴望成为张炭,然后找到陈大导演,拍一部

# re: 理解架构师  回复  更多评论   

2005-12-17 16:55 by 非鱼
没有办法,象你这样已经拍过3部A片的大影星是不会理解我们这种小人物的苦处的~~~

# re: 理解架构师  回复  更多评论   

2005-12-17 17:55 by Donald
Martin Fowler肯定也是架构过产品的
基于J2EE这种中间件架构的产品也一样是产品啊,不是windows才叫产品吧,呵呵
Fowler还是很牛的,我想不比Anders差^_^

原来我很想写点关于这个的文章,名字都想好了,包括两个系列
《你是架构师-架构模式大系》系列
-主要讲各种中间件及系统平台的各种‘架构’模式
《你不是架构师-超越技术架构师》系列
-主要讲述光会技术是不行的,集中讨论包括如授权模式、部署模式及成本、维护方案、安装及升级方案、商标及商标的相关元素、发布及发布管理、安全因素、市场因素及技术市场架构等等方面的问题

可惜...没时间,好庞大的内容,我看还是有时间建个wiki大家一起搞比较好
如果谁有兴趣,我给个提纲,大家丰富一下也好

# re: 理解架构师  回复  更多评论   

2005-12-17 18:02 by 非鱼
好啊,Donald的建议很好。

# re: 理解架构师  回复  更多评论   

2005-12-17 18:14 by romza
如果只是在心里称为自己“架构师”,那可以算得上对自己的勉力,对着别人称自己为“架构师”,那就有点其他的意思了,又如果你没有达到那个实力,那么也许就会有人跳出来说了:你凭什么称自己为XXX?

当然,这个世界没有绝对的真理,就算宣称自己是上帝,只要你的理由够唬人,也能让不少人相信你。在别人认可你之前就先自我认可的前提是-能够马上应对来自其他人的责难,这之后就出现了两种结果,你确实是XXX,或者你根本就是个XXX。

# re: 理解架构师  回复  更多评论   

2005-12-17 18:48 by wfeng007
不错不错。

软件架构师注重整体把握,高级程序员负责细节精华。者这个观点来说,两者级别是一样的,只是关注点不同。

“另外作为架构师还要考虑的问题很多,甚至比技术架构更重要如授权模式、部署模式及成本、维护方案、安装及升级方案、商标及商标的相关元素、发布及发布管理、安全因素、市场因素及技术市场架构(个人认为这个因素最难也最重要)“
。。。。。。。。。这个好像已经上升到系统分析级别了。。。该角色关注范围比构架师跟广。

# re: 理解架构师  回复  更多评论   

2005-12-17 19:15 by 非鱼
@romza
这个没有一个标准。我自己认为还没有达标(自己的标准),或许别人看来我达标了(别人的标准)。无所谓,你不妨认为“我根本就是个XXX。”另外,我搞个“架构师之家”其实也没有自称“架构师”。:)上次和朋友交换链接我都要他给个“预备YI架构师”的TITLE。这么看来我还有点自知之明吧。搞这个东西只是说明一件事:“我有钱就可以开公司,不懂管理无所谓,我可以请职业经理人。”

@wfeng007
最后一段是引用Donald的。

# re: 理解架构师  回复  更多评论   

2005-12-18 11:20 by luffy520
如何培养才能达到架构师的程度呢?^_^

# re: 理解架构师  回复  更多评论   

2005-12-18 11:46 by Donald
@wfeng007
这说明你还不理解架构师的职业含义
看看微软的bill的工作就知道了
类似的还有很多,很多公司的Chief Architect都同时兼着vice president或更高的职位,因为他们需要很高的视野
如果Chief Architect只懂技术,这公司肯定发展不好

# re: 理解架构师  回复  更多评论   

2005-12-18 13:37 by <font color="orange">非鱼</font&g
@luffy520
这个问题比较难说,有人说要11步呢,听着就恐怖。

不过我以为编码-设计-领导-管理逐步提高,水到渠成吧。重要的是打好基础,步步为营。

# re: 理解架构师  回复  更多评论   

2005-12-18 13:43 by <font color="orange">非鱼</font&g
@Donald
架构师还是以技术为主。仔细看下Architecture Description的内容,会发现其中主要就是技术的东西。产品的市场因素,一般需要架构师和市场工作人员有良好的沟通,但我个人认为架构师不能就这方面下结论甚至替代其工作,架构师的工作内容复杂,并不说明其职责大而全。

# re: 理解架构师  回复  更多评论   

2005-12-18 15:01 by david.turing
将Anders Hejlsberg和Martin相比是不合适的,前者的天才是后者无法相比,当然,Martin更专注于项目和架构的整体设计,后者对各种大小项目的经验的积累是前者不得不佩服的。
回到你的Point,是否需要有很好的代码基础才能成为架构师?
我认为,架构师需要很多素质,这些素质可以通过写代码来培养,当然,写代码不是唯一的途径,如果你从事设计,并在一个团队里面不断跟别人合作,并能知道自己的设计对编码产生的影响(通过你的写编码的同事,开发经理,测试人员,客户等等的反馈而不断重新思考),你的架构师的素质会不断提高。
一句话,认同你的观点,但不认同你解释你自己的观点的论据。

# re: 理解架构师  回复  更多评论   

2005-12-18 16:22 by 非鱼
@dove

As you know, 关于Martin Fowler是朋友说的。

Anders和Martin应该是殊途同归:Technology makes life easier. 无论是Code Guru还是Architect,如果不能做到这一点就是失败的。Anders和Martin都做到了这一点,无论他们谁高谁低。

我的真正的观点是,选择什么都是可以的,但别忘了我们的最终目标。

# re: 理解架构师  回复  更多评论   

2007-05-15 20:46 by 金大为
我还是认为架构师必须是优秀的程序员,不然,就容易纸上谈兵,坑上难下。

# re: 理解架构师  回复  更多评论   

2007-06-10 13:33 by itkui
架构师,我的梦想!

# re: 理解架构师  回复  更多评论   

2007-07-07 09:55 by itkui
@金大为
这话我比较同意。
虽然我是Java初学者。

只有注册用户登录后才能发表评论。


网站导航: