编写高质量代码--web前端开发修炼之道-编写高质量代码--web前端开发修炼之道
文章 架构师的实践之道 作者 InfoQ中文站 发表于 2009-11-04 1:7 社区红宝石,架构主题 企业架构 标签《架构师》月刊,架构测评,专访 架构师是一个神秘而神圣的名词,作为设计师在在软件开发领域,架构师肩负着太多的责任和挑战。 对于程序员或者工程师来说,架构师就像一个目标,一条路,或者一座山。 如何成为一名合格的建筑师? 建筑师应该具备哪些素质? 架构师如何实现持续成长和改进? 带着这些疑问,我们请来了InfoQ中文网的五位同时也是各领域杰出架构师或顾问的编辑,来聊聊他们的“架构师实践”。 他们是: l 宋伟:InfoQ中文站Java社区主编 l 王玉恒:InfoQ中文站.NET社区编辑,ThoughtWorks顾问 l 赵杰:InfoQ中文站.NET社区编辑,微软最具价值专家,目前创业团队 架构师 l 张龙:InfoQ中文站Java社区编辑 l 李明:InfoQ中文站Ruby社区主编,现任某通信公司架构师 1)在你心目中,架构师是什么意思? 张龙:架构师是一个项目团队的灵魂。 他决定了整个系统的技术选型、总体架构和模块划分,也可能起到与领导沟通的作用。 从某种意义上说,架构师在很大程度上决定了项目的成败。 正所谓火车跑,全靠头带。
王禹衡:对我来说,建筑师一直是一个很混乱的词。 似乎每个人的理解都有些不同。 我觉得架构师更像是一个投资人,需要权衡各方面的利益和风险,反复思考,最终得出一个现实可行的方案,力求以最小的风险获得最大的收益。 李明:在我看来,建筑师不仅仅是一个头衔,更是一种责任。 所谓“身在其位,谋其政”,我觉得建筑师更像是父母,而制度和项目就像孩子,需要建筑师耐心的呵护和培养。 完成一个项目绝不是建筑师工作的全部。 通过代码重构和架构改造,让一个项目像有生命一样成长起来,是架构师的最终目标。 2) 建筑师应该具备哪些技能或素质? 宋伟:架构师应该具备一定的业务知识和业务分析能力,能够准确把握需求。 你必须有很强的学习能力,能够快速掌握新兴技术、框架和工具。 基本功扎实,能够把握技术方向。 良好的沟通能力,能够清楚地表达自己的意图和想法。 李明:代码能力是绝对必要的。 我见过太多只会画图的建筑师。 “知大体,不拘小节”这句话用在建筑师身上并不适用。 作为架构师,必须对系统的性能和可扩展性足够敏感,不仅要充分利用现有资源,还要做好长远规划。 另外,对业务的理解是很多技术架构师忽略的。 只有深入了解业务需求,技术才能派上用场。
赵杰:在我看来,一个合格的建筑师需要有开阔的视野。 各种平台、系统、项目可以随意组合。 唯一的目标是为正确的环境选择正确的方法。 成本和质量之间的权衡。 作为架构师,要有很好的“弹性”。 在真实的环境中,你很少会遇到和过去一样的情况。 因此,也要求建筑师能够大胆尝试,灵活应对,务实严谨。 推测。 一个架构师还必须有足够的沟通和交流能力,以恰当的方式将自己的想法告诉别人,并根据别人的反馈不断调整自己的观点。 没有什么是永远正确的,但是一个人往往倾向于自己的结论,而要成为一名合格的建筑师,就需要能够认识到自己的不足,并用各种方法来弥补。 王禹衡:建筑师需要放眼未来,从外部功能和内部结构两个方面考虑可能发生的变化。 正如周爱民所说,架构师在开发1.0版本时应该想到2.0、3.0,甚至更远。 但是,在考虑未来的同时,也不能脱离现在,不能因为对未来的假设而大大增加当前的开发成本。 如果未来不来,所有对未来的投资都将毫无意义。 因此,架构师需要平衡投资与风险的关系,以适当的风险获得最大的收益。 架构师需要具备良好的沟通能力,以便将自己的想法呈现给开发团队中的每个人,并确保整个团队对系统架构有一致的理解。
架构师不能避开并设计一个要么不可能实现要么成本高昂的架构。 同时,对于一个实际的团队来说,也需要了解团队成员的能力,知道什么样的结构可以做,什么样的结构不可以做。 张龙:很多优秀的架构师都是由优秀的开发人员转型而来,但并不是所有优秀的开发人员都能成为合格的架构师。 与架构师相比,开发人员需要承担的任务相对狭窄,他们最大的目标是写出优秀的代码,做好测试,写出高质量的文档; 而架构师要面对的则比较广泛。 除了过硬的技术,还需要良好的表达能力和宏观上对整个系统的把控能力。 3)架构师需要不断实践和提高的是什么? 宋伟:拓展知识面,了解很多技术和框架的特点和适用范围。 了解非功能特性的相关技术和方法,包括可用性、容错性、可扩展性、扩展性等; 了解系统安全的技术和框架,系统性能和状态监控的知识和工具。 除了技术方面,架构师还应该拓展业务知识,不断提升业务分析能力。 要实现持续学习,就必须对各种技术、框架和产品保持浓厚的兴趣。 此外,还要掌握各自的优缺点和对应的适用场景。 学习的方式方法有很多种,但可以肯定的是,架构师之间经常交流对成长是非常有益的。
InfoQ 的“架构师”提供了一个很好的交流平台。 通过大家的广泛参与,相信《建筑师》能够起到分享经验、促进交流的积极作用。 李明:我觉得这个问题可以从两个方面来讨论。 一方面,架构师要紧跟技术趋势,了解技术发展和趋势编写高质量代码--web前端开发修炼之道,运用新技术、新方法提高团队生产力,将技术转化为效益。 这就需要架构师更多地关注他们所在领域或社区的最新消息和报道。 最简单有效的方法就是每天看InfoQ中文网。 另一方面,建筑师要培养自己的专业领域。 虽然从技术角度来看,很多解决方案都是通用的。 但是,从商业的角度来看,将多个行业的解决方案放到另一个行业中未必可行。 它要求架构师必须对自己所在行业的业务有很好的了解,这也是平日里需要去实践的地方。 赵杰:建筑师的学习过程是痛苦的,也是美好的。 一个合格的架构师应该能从学习过程中发现,至少要追求“建筑之美”,把建筑当成一门“艺术”,能够传播那种美,带领技术团队转把那种美变成产品,让更多的人去体验。 张龙:架构师的道路崎岖不平,充满荆棘和挑战,却是无数开发者的梦想。 架构师是多种技能和素质的结合。 每一个以此为目标的开发者都需要在日常工作中不断提升自己。 在此,衷心希望建筑师的梦想能够照亮每一位有心人。 现实。
对于一个合格的架构师应该具备的素质和技能,张龙也给出了详细的清单:有人曾说过,20多岁的编程天才好找,30多岁的优秀架构师难求。 做建筑师有多难? 除了敏锐的洞察力,我认为一个好的架构师还必须具备以下素质: l 过硬的技术能力:有人说架构师不需要写代码,只需要设计整体架构。 但我认为这是非常片面的。 试想,如果一个人长期不写代码,他还能有持续的技术敏感度吗? 当然,这里说的写代码不是普通开发者的行为编写高质量代码--web前端开发修炼之道,而是让自己对代码保持感觉。 有人说架构师不一定是技术专家。 我同意这一点,但他必须是一名优秀的开发人员。 l 良好的沟通能力:这一点尤为重要,因为架构师需要不断地与开发人员和项目组领导交流想法,将自己的设计意图和想法传达给对方。 没有良好的表达和沟通能力,很容易出现问题。 在沟通方式不是母语的企业中尤其如此。 l 良好的软件工程素质:虽然架构师不是项目经理,但我认为他需要对软件开发过程有清晰的认识。 这里的开发过程是一个总称。 它可能是 RUP 或 XP。 这种工程素养是每一位优秀建筑师必备的素质之一。 l 知识面广:架构师的眼界一定要开阔,不能局限于眼前的小事,否则很容易出现“短视”的后果。
架构师需要不断学习,这里的学习不仅包括技术,还包括业务和沟通。 l 领域知识:架构师必须对所从事的业务领域有深刻的理解,不一定成为业务专家,但必须对业务知识有深刻的理解。 很难想象经常从事金融领域项目的架构师可以轻松设计出电信领域的项目架构。 知识是需要积累的,做生意也是。 l 处理系统非功能性需求的能力:架构师尤其需要对系统性能、容错、并发等非功能性需求有独到的理解和解决方案。 当一个项目进行到后期,往往有些问题会成为整个项目的瓶颈,这时架构师才会发挥自己的优势。 通过以上的发言,我们可以看出,架构师必须是一个“多面手”,不仅在技术和业务上要“两手抓,两手都要硬”,更需要不断的实践和培训。 只有学习,才能成为一名合格的建筑师。 虽然这是一条充满挑战的道路,但也充满了乐趣和收获。 俗话说“险峰无限风光”。 读者们,你们准备好了吗? 本内容整理自《建筑师》8月刊,更多内容可免费下载《建筑师》。 为InfoQ中文网投稿或参与内容翻译,请发邮件至editors@。 也欢迎您加入InfoQ中文站的用户讨论群,与我们的编辑和其他读者进行交流。
收藏 freshfruit+, digg+, reddit+, del.icio.us+, dzone+ slashdot+ 24 条回复 关注此讨论 回复 InfoQ.com 及其所有内容,版权所有 2006-2009 C4Media Inc. 信任难闻的气味4:55am Re: bad smell Posted by Lei Mingzhang Posted on November 12, 2009 at 9:7pm 算法能力是架构师最需要的 Posted by Li Wei on Nov. 4, 9:52 PM Re: Algorithm capabilities are what architects最需要 Posted by gu jie Posted on Nov. 4, 2009 at 10:29 PM Re: 建筑师最需要什么算法能力 Posted by Kai Sun on November 11, 2009 at 6:59 pm Re: 建筑师最需要的是算法能力 Posted by wake jong on November 6, 2009 at 1:2 am 建筑师的话 发表于 ww button 发表于 2009 年 11 月 5 日 2:14 am Re: 以上五位建筑师的话 发表者 林野 发表于 2009 年 11 月 8 日 9 :26 pm Re: 以上五位建筑师的话由Leo Hong于2009年11月10日发表 t 8:30 pm What people say 完全由吴君深发表 2009.11.5 27:43 27分 Re: 这些人有多少是在说他们说的? Leo Hong 发布于 2009 年 11 月 10 日下午 7:58 回复:系统理论2009 如果说项目经理是“中国特色”的第一名,那么建筑师一定是第二名。
Junyin Wu 发表于 2009 年 11 月 6 日上午 6:49 中国没有建筑师。 . . 由 Hantsy Bai 于 2009 年 11 月 7 日上午 10:5 发布软件架构组,组作者 Jehrry23 LV 于 2009 年 11 月 8 日上午 4:4 发布 2009 年 11 月 9 日上午 3:24 一般发布者 Tobato King 发布于 11 月 10 日, 2009 7:3 pm 技术控制+规划+沟通能力应该是建筑师的基础 作者 Adam Pan 发表于 2009 年 11 月 17 日,11:24 pm 建筑师的实践之道 作者 Ze Ping Zhang 发表于 2009 年 12 月 22 日 12:47 am Re: Architect's Way of Architect Posted by January 5, 2010 11:30 PM 倒序排列 bad smell Posted by Hantsy Bai 2009年11月4日凌晨4:55 双手抓,双手都硬不舒服。 . . 回复 架构师最需要的是算法能力 李伟 发表于 2009-11-04 9:52 我觉得架构也是一种算法。 没有算法能力的支持,就不可能创造出富有创意的优秀架构。
大家都在讲架构师的很多能力,却只字不提算法,真是悲哀。 Re: 架构师最需要的是算法能力。 由gu jie于2009年11月4日晚上10:29发表,技术领先。 之所以这样称呼,是不屑于和一个不懂技术的leader混为一谈。 回复以上五位建筑师的话 发表于 2009-11-05 02:14 由ww button 我觉得只有李明的话是真的。 其余的只是说辞。 我认为架构师是能够设计程序结构和把握程序质量的人,应该是优秀的架构设计师和质量监督员。 回复:有几个人说了算。 吴俊深 2009-11-05 7:43 回复系统论 index chen 2009-11-6 12:6 回复 钱学森算得上是中国吗? 火箭系统的建筑师? 如果算的话,那些自封的架构师现在应该消失了 Re: 架构师最需要的是算法能力 wake jong 发表于 2009-11-6 1:2 am 其实软件领域的架构可以从很多角度来看了解。 楼主和你的站立角度不一样。 楼主是从软件系统的角度理解的,你说的是知识软件系统的某个角落。 兄弟,请不要“悲伤”。
回复 领域知识和技术储备 wake jong 2009-11-6 1:6 发表 同意张龙的观点。 其中,架构师最应该具备的就是领域知识和技术储备。 回复 Re: 这些人在说什么完全由霍泰文吴雄泰2009年11月6日凌晨1点27分发表,大家理性发言。 为什么说哥们说的是“一堆废话”啊? 你有根吗? 回复 如果项目经理是第一个名字要“中国特色”,那么架构师一定是第二个。 2009-11-06 6:49 发表于 Junyin Wu rt 回复 中国没有建筑师。 . . 由 Hantsy Bai 项目经理、架构师、CTO 于 2009 年 11 月 7 日上午 10:05 发布。 . . 淹没在中国。 . . 回复软件架构组,组的ISP伙伴。 Privacy Policy Posted by Jehrry23 LV 2009年11月8日凌晨4:4 我搭建了一个软件架构,重点讨论软件架构,包括架构模型,以及一些架构的新想法。 工作经验要求5年以上,年单最好欢迎30岁以上的大家,还有更多可以一起学习。 以上5人谈得很好。 如果方便的话,期待加入,一起学习,一起提高 Re: 上面五位架构师的话 2009年11月 8号晚上9点26分,林野觉得李明说的最多的一个——支持。
回复 仁者见仁智者见智 董旭2009年11月9日凌晨3点24分 发表 每个人对建筑师的身份都有不同的理解。 Tobato King 太笼统了,为什么不深入讨论下一个角色该做什么不该做什么 Re: System Theory Posted by Leo Hong 2009.11.10 at 7:55 pm 不同的领域有不同的领域架构师。 别以为一个钱学森,所有人都会被压死。 按照你的说法,有了爱因斯坦,所有的物理学家都不能再被称为物理学家了? 观点很荒谬。 回复 Re: 有多少人说了他们说的完全由Leo Hong于2009年11月10日晚上7点58分发表,不敢说以上五人全对,但提出的意见大部分都是正确的. 这是一个好的架构师需要具备的。 盲目否定,无知无畏,呵呵~回复 Re: 以上五位架构师的话是Leo Hong 2009.11.10 晚上8:3 发表的,我也同意李明的观点,转发他的话分享给大家in my Q. 不过,我不认为李明会认为这都是架构师的要求,其他四人说的只是对李明内容的补充。 架构师要有远见,能够布局大框架,化繁为简,抓住技术的主要矛盾,抓住用户的核心需求,能够在不同的技术方案中权衡最优或更优越的方案来解决客户需要。 计划实施。
回复 Re: 架构师最需要的是算法能力 孙凯发表于2009年11月11日下午6:59 人如雷动张双手紧握,双手一定要用力。 无限风光在险峰上……用在家里太刺眼了,感觉很不舒服。 . . 双手抓住,双手一定要用力。 无限风光在险峰上……用在家里太刺眼了,感觉很不舒服。 . . 双手抓住,双手一定要用力。 无限风光在险峰上……用在家里太刺眼了,感觉很不舒服。 . . 双手抓住,双手一定要用力。 无限风光在险峰上……用在家里太刺眼了,感觉很不舒服。 . . 双手抓住,双手一定要用力。 无限风光在险峰上……用在家里太刺眼了,感觉很不舒服。 . . 双手抓住,双手一定要用力。 无限风光在险峰上……用在家里太刺眼了,感觉很不舒服。 . . 回复 Re: 以上五位建筑师的话是李翔宇2009年11月12日晚9点08分发表的,我觉得只有李明的话是真的。 其余的只是说辞。 我认为架构师是一个既能设计程序结构又能把握程序质量的人。 他应该是一个优秀的建筑设计师和质量监督员。 可能是架构师和产品经理的职能混在一起了。 回复 技术控制+规划+沟通能力应该是架构师的基础 Adam Pan 2009-11-17 11:24 发表 技术控制+规划+沟通能力应该是架构师的基础 张泽平 12:47 发表12月22日,我觉得建筑师应该是哲学家、诗人、老大哥: 1、建筑出来的东西应该满足未来的发展变化。 我们的祖先推崇的《易经》就是最好的代表。 制度要有生命力,就必须适应未来的变化。 构建一个不可变的系统没有什么实际意义,所以架构师首先应该是一个哲学家。
2、建筑要如诗如画,简洁优美。 如果系统架构复杂臃肿,程序员无从理解,如何在其上开发,架构师接下来应该是诗人。 3.架构要像大哥一样,关心和照顾一起工作的程序员。 如果你对自己的职位感到自豪,没有人愿意在他手下工作。 以上纯属胡说八道,各位看官不必介意。 回复 Re: 架构师的dcfeg实践之道 回复公告 2010年1月5日 11:30 作者李维涛的说法很幽默,道理很真实!回复