`

Rod Johnson:架构师必须保持实际参与编码

阅读更多
在Rod Johnson的《expert one-on-one J2EE Development without EJB》一书中,有这么一段话:
引用

   在我们的行业里,所谓“架构师”这个说法的准确含义是人么热辩的话题——同样,人们也在争论这个“架构师”概念(相对于“开发者”)到底有没有意思、是不是可取。
    我以为,架构师的作用非常重要,但是架构师们必须保持实际参与编码。如果他们脱离了生产第一线,仅仅满足于闭门造车式规定系统架构,那么他们也就时区了对许许多多的实际问题的接触,而正是这些实际问题决定了项目的最终成败。这种做法孕育着真正的危险。它是失败的温床,而且几乎总是导致过度的复杂性。不幸的是,很多人相信如果一个人在专业技术上获得了成功,他就应该最终完全脱离实际编码——这种观念很难根除,而且危害极深。
    对于软件的“架构”而言,实现架构时会遇到形形色色的问题,而解决这些问题则需要具体、详尽的细节知识;只有掌握了所有这些细节知识,才能够确定整个系统架构。所以,如果架构师把时间都花在编写文档、搭建模型上,那也就很难作出切实可用的架构。


说得太好了!
我们部门的SE们好象都有不参与实际编码的不良习惯
分享到:
评论
44 楼 java心如止水 2008-06-12  
長江七號....
圖像...
43 楼 yuyi_aha 2008-01-20  
xly_971223 写道
不太同意楼主观点
架构师参与编码容易陷入技术细节 而忽略了对整体的把握
当然也不能一个代码不写 那样就严重脱离了实际 纸上谈兵
架构师要编码 编写那些系统核心级别 通用级别的代码




同意, 作为架构师,大局观,整体性偏重. 即使要编码,也是重在核心层.
42 楼 yyjn12 2008-01-20  
非技术帖,应该挪到 海阔天空版块
41 楼 dearwolf 2008-01-19  
说一个我们项目的实际例子吧。

我们跟客户是合作开发的关系,那边的角色有:PM,Product Owner,Architect,Scrum Master,developer;我们这边是Scrum Master,developer,tester。

项目的组件模型,交互协议,安全协议等基本全是那个架构师设计出来的。在沟通中他留给我们的印象是:知识渊博,经验丰富,举重若轻。

看上去算是个很彪悍的人了,但到了实际开发过程中,几乎我们天天都在骂他。为啥?没有具体的指导建议,扔出一个脑中的概念出来,丝毫不顾实际应用中可能会遭遇何等的困难,交给开发人员以后就拍拍屁股不知道干啥去了。比如07年春节放假后收到邮件说,svn的组织结构已经被他调整过了,从今以后要用maven处理各个组件之间的依赖,over。好嘛,中方瑞典方一起开始学maven,配置pom,管理依赖,搭建私服,有四个人几乎在这上面花了整整一星期。到现在还是常常一个项目deploy上去,其他人根本下载不到最新的依赖包。

我不想在这里说maven或者项目管理中的问题,单就这个人的做法而言,造成的类似结果还有很多。如果他能够做到gigix所说的那个标准,我们项目就能少很多浪费了……
40 楼 gigix 2008-01-19  
来自深圳,又有“SE”这个职位,楼主大概是H公司的吧?

实际上真正应该讨论的并不是SE或者说架构师要不要编码,而是这些拥有更丰富经验、拿着更高薪水的人应该如何承担更多责任、如何给比较junior的同事更多的指导和帮助。从这个角度来说,显然架构师不应该和developer一样从头到尾的把所有业务功能都实现出来。特别是像H公司这样的环境,SE有很多重要的事情要做。他们就应该只弄出足够指导developer的架构,然后投入下一个项目,不然就是浪费资源。

但另一方面,他们弄出的架构是“足够指导developer”的吗?我看H公司的很多developer并不这么认为。为了验证技术可行性,这些SE经常是在预研项目里把主要的业务功能都实现了一遍——用工程角度相当丑陋的方式。这个“丑陋”不是我说的,H公司的QA很清楚。这些预研实现通常都缺乏良好的编码风格,缺乏细节的异常考虑,缺乏测试,只是说大体流程能走通而已。其结果就是,developer拿到这个预研结果必须重新做实现,在工程角度“怎么做”的问题仍然缺乏指导。简而言之,这样的架构预研既有浪费,又有不足。

深挖下去就引申出另一个问题:到底什么是“架构”?只是验证了技术可行性、缺乏工程指导意义的架构是充分的吗?把所有主要功能都进行预研的架构设计是必要的吗?总是输出既不充分又不必要的架构设计,H公司倡导的这种“设计与实现分离”的工作方式本身是合理的吗?那些严格的质量流程都作用在developer身上,SE没有给developer足够的指导告诉他们如何遵循这个架构开发出符合质量要求的软件,最后developer被迫加班而SE因为架构设计而获奖,难道这是合理的吗?

照我的看法,一个架构设计只需要覆盖到最重要的技术难点,包含尽可能少的实现样板。另一方面,一个架构设计应该足够指导developer如何沿着这个架构继续工作,所以这个实现样板不仅要验证技术可行性,而且必须严格遵守组织的开发流程和质量要求,必须包含充分的测试。所以回到主题:架构师要不要编码?答案是:要,不需要像developer那么多,但必须以同样的工程方式来做,用同样的严格标准来要求,在开发过程中随时帮助developer解决技术难题和扶正方向,根据情况实时调整架构。这样developer才能沿着他开辟的道路继续走下去。这样才能真正体现出架构师对开发团队的指导作用。
39 楼 flyingbug 2008-01-19  
daquan198163 写道
flyingbug 写道
daquan198163 写道

flyingbug 写道

...
架构师也是必须的,估计这位小伙子没开发过什么大型项目

估计这位老先生没看过Rod Johnson的那两本书
ps:这年头,架构师不是什么好听的称呼了

Rod 写道
我以为,架构师的作用非常重要

我看你不是没看过,而是没看懂

你误解了,我前面说了架构工作会存在于整个开发过程,每个人都应该是架构师
我的意思是 像你这种顶着架构师头衔的人不是必需的


哦...,“每个人都是架构师”啊,受教受教

我倒是没发现我哪句话说自己是架构师了,你这人身攻击真挺没水平

我看这位小兄弟已经开始语无伦次了,我就不这儿跟你争了,免得等会儿再说自己是上帝
38 楼 daquan198163 2008-01-18  
flyingbug 写道
daquan198163 写道

flyingbug 写道

...
架构师也是必须的,估计这位小伙子没开发过什么大型项目

估计这位老先生没看过Rod Johnson的那两本书

ps:这年头,架构师不是什么好听的称呼了


Rod 写道
我以为,架构师的作用非常重要



我看你不是没看过,而是没看懂

你误解了,我前面说了架构工作会存在于整个开发过程,每个人都应该是架构师
我的意思是 像你这种顶着架构师头衔的人不是必需的
37 楼 flyingbug 2008-01-18  
fangshun 写道
flyingbug 写道


讨论是必须的,架构师不可能比每个专业领域的专家都更专业,同时也需要开发组的组长理解设计意图
架构师也是必须的,估计这位小伙子没开发过什么大型项目


对于目前常见的开发,有哪个组长是专家?架构师对于需要涉足的领域没有足够的专业经验就不应该考虑相关的设计,而应该让有经验的人参与到设计当中才对,不能因为自己不够专业而降低架构设计的档次!


看清楚我说的,我哪句话说组长必须是专家了?!
引用
讨论是必须的,架构师不可能比每个专业领域的专家都更专业,同时也需要开发组的组长理解设计意图


再说又有谁说组长不能是专家了,都不知道你在反驳什么

36 楼 flyingbug 2008-01-18  
daquan198163 写道

flyingbug 写道

...
架构师也是必须的,估计这位小伙子没开发过什么大型项目

估计这位老先生没看过Rod Johnson的那两本书

ps:这年头,架构师不是什么好听的称呼了


Rod 写道
我以为,架构师的作用非常重要



我看你不是没看过,而是没看懂
35 楼 hlxiong 2008-01-18  
fangshun 写道
flyingbug 写道


讨论是必须的,架构师不可能比每个专业领域的专家都更专业,同时也需要开发组的组长理解设计意图
架构师也是必须的,估计这位小伙子没开发过什么大型项目


对于目前常见的开发,有哪个组长是专家?架构师对于需要涉足的领域没有足够的专业经验就不应该考虑相关的设计,而应该让有经验的人参与到设计当中才对,不能因为自己不够专业而降低架构设计的档次!

说得似乎是具体业务模块的设计吧?这是架构师的工作吗?
34 楼 hlxiong 2008-01-18  
引用
专业程序员不把是否coding 作为自己水平的指标,而把是否持续coding 作为一种职业素养。

很有见地的话!

其实,我觉得架构不会与具体项目相关的,不会随项目随时变化。架构应该提供开发的基础平台,一旦确定了,程序员都在这上面做开发,针对不同的项目开发不同的业务模块就行了。所谓架构师的工作,就是确定这个平台,并随业界技术发展升级框架,提供通用业务组件支持。。。
我们一直是这样做的,不清楚其它公司的同仁们是否在统一平台上做开发,还是每个项目完全从头开始。。。
33 楼 rocwon 2008-01-18  
既然是架构师,当然应该编写一些关键的代码.

我一直认为,一个程序都编不好的人,根本做不了什么架构和设计。
32 楼 lgx522 2008-01-18  
Rod的观点是非常正确的。

现在国内很多垃圾软件产生之技术根源有二:一是根本就没有系统架构设计的乌合编码;二是许多顶着“专家”或“架构师”称号的浪得虚名之徒瞎指挥。
31 楼 fangshun 2008-01-17  
flyingbug 写道


讨论是必须的,架构师不可能比每个专业领域的专家都更专业,同时也需要开发组的组长理解设计意图
架构师也是必须的,估计这位小伙子没开发过什么大型项目


对于目前常见的开发,有哪个组长是专家?架构师对于需要涉足的领域没有足够的专业经验就不应该考虑相关的设计,而应该让有经验的人参与到设计当中才对,不能因为自己不够专业而降低架构设计的档次!
30 楼 dwangel 2008-01-17  
请把编码分成 自己实验性编码和参与项目编码两种。

我认为Rod是指前者,而非后者。
29 楼 hhj039 2008-01-17  
架构师也必须了解系统业务流程,也许不要很精通,但是基本的了解是必须的。
如果在项目组讨论的时候,开发人员说的业务术语都不知道,怎么可能设计出一个适用的系统架构。
28 楼 jackzhangyunjie 2008-01-17  
说的太好啦。
27 楼 daquan198163 2008-01-17  
flyingbug 写道
daquan198163 写道
真的需要架构师么?
真的存在架构这项工作么?
我的意思是:
没必要要任命某个人专门做架构工作,然后其他人按照他做出的架构,继续开发
架构应该是大家一起讨论、实验出的结果,每个成员都需要理解架构
架构应该是随着开发逐渐衍生出来的,而不是预先设计出来的


讨论是必须的,架构师不可能比每个专业领域的专家都更专业,同时也需要开发组的组长理解设计意图
架构师也是必须的,估计这位小伙子没开发过什么大型项目

估计这位老先生没看过Rod Johnson的那两本书

ps:这年头,架构师不是什么好听的称呼了
26 楼 bulargy 2008-01-17  
只能说架构师不能完全不去写代码,但是架构师如果在工作中过多的编码,就会将思想局限在某个局部上了。我以为架构的编码可以以测试性质的编码和独立于项目而存在,即跟上了新型的编程方法,也能适当的解决问题。最主要的还是思想的高度仍然站在整体的层次上~~
25 楼 flyingbug 2008-01-17  
daquan198163 写道
真的需要架构师么?
真的存在架构这项工作么?
我的意思是:
没必要要任命某个人专门做架构工作,然后其他人按照他做出的架构,继续开发
架构应该是大家一起讨论、实验出的结果,每个成员都需要理解架构
架构应该是随着开发逐渐衍生出来的,而不是预先设计出来的


讨论是必须的,架构师不可能比每个专业领域的专家都更专业,同时也需要开发组的组长理解设计意图
架构师也是必须的,估计这位小伙子没开发过什么大型项目

相关推荐

    架构类教程

    这本书的内容覆盖了从架构设计到实际部署的全过程,不仅适用于架构师,也适用于开发者,尤其是那些致力于学习和实践J2EE应用开发的读者。书籍的结构化内容安排,使得它不仅是一本教程,也是一本可以随时查阅的参考书...

    Java自学书籍推荐 程序员到架构师必看的书

    Rod Johnson的《Expert One-on-One J2EE Design and Development》和《Expert One-on-One J2EE Development without EJB》是两本不容错过的经典之作,它们详细阐述了J2EE应用的架构设计,对Spring框架的起源有深入...

    Expert One-on-One J2EE Design and Development

    本书《Expert One-on-One J2EE Design and Development》旨在帮助专业的J2EE开发者和架构师做出恰当的选择,以按时、预算内交付高质量的解决方案。书中重点讨论了在企业软件开发中最常用的J2EE特性,以解决最常见的...

    自学java看什么书强力推荐15本必看书籍华清远见.docx

    此外,"企业应用架构模式"和"敏捷软件开发原则、模式与理论"则分别从架构模式和敏捷开发的角度提供了深度洞察,帮助架构师形成全面的知识体系。 【软件开发过程理解】: 软件开发不仅关乎个人编程习惯,也涉及团队...

    Expert One-on-One J2EE Design+and Development

    本书受到了行业内专家的高度评价,例如John Carnell(Centare Group的首席架构师)称本书为“Rod Johnson在覆盖成功构建J2EE应用程序的设计和技术方面做得非常出色”。 #### 结论 《Expert One-on-One J2EE Design...

    Expert One on One J2EE Design and Development

    由于本书的高质量内容,读者评论非常正面,例如John Carnell,他是Centare Group的首席架构师,他认为Rod Johnson对于J2EE应用的设计、技术和部署方面做出了非常出色的贡献,并且评价这本书在自己的书架上占有永久的...

    Expert One-on-One J2EE Design and Development.pdf

    - **书籍背景与重要性**:本书由Rod Johnson编写,是他在Java领域的重要作品之一,书中所包含的思想和技术对后来的Spring框架有着深远的影响。尽管未有官方中文版,但对于希望深入了解J2EE架构和设计模式的专业人士...

    自学java看什么书-强力推荐15本必看书籍-华清远见.docx

    #### 三、Java架构师之路 随着经验的积累,你需要更深入地了解整个软件架构。 **1.《Expert One-on-One J2EE Design and Development》** - **作者简介**: Rod Johnson - **内容概述**: 本书详细阐述了J2EE的设计...

    java工程师必读书籍(推荐)-从技术到管理.pdf

    尤其对于有志于成为架构师的Java程序员而言,这些书籍的内容是必须要掌握的。 《企业应用架构模式》则是Martin Fowler的著作,它讲述了一系列企业应用架构中常见的模式和实践。尽管这本书的内容偏理论,但对于那些...

    Expert+One-on-One+J2EE+Design+and+Development.pdf

    John Carnell,Centare Group的首席架构师,对于Rod Johnson的书籍给予了高度评价,认为其对于成功构建J2EE应用程序的设计和技术方面有着卓越的论述,并且Rod的无废话方法为他的书籍在自己的书架上赢得了一席之地。...

Global site tag (gtag.js) - Google Analytics