`
laorer
  • 浏览: 434740 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

<转>架构师核心技能养成计划

    博客分类:
  • j2EE
阅读更多

 作者:江南白衣,原文出处: http://blog.csdn.net/calvinxiu/archive/2007/02/18/1511545.aspx,转载请保留。

引子:
    "这个项目的架构是什么?"
   对方爽快的回答:"Spring+Struts+Hibernate。"
   嗯,这位很可能不是架构师......

一、核心竞争力

架构设计的理论、模式与技术
   
架构师们从试验与挫折中获得架构设计的技能,但其中大量的原理、模式和技巧,都经历了一个重复发现的过程。
    其实,各路神仙在这个领域虽则没有捣鼓出大热的畅销书来,但前篇的架构师书单,也足够为我们作一个系统的知识整理。
    痛苦回首,发现自己的再发现式积累还是太慢、太片面,大多局限于GOF23、Java EE架构模式、RUP4+1视图等方面。

有序的以方法为驱动源的任务执行 
 
    匠级的架构师多有一套自己的方法论、过程论,每回设计都是熟练而有序的执行。
    其中架构师的小过程可以参考书单反复试验,独家秘制。
    而与开发团队配合的大过程,以RUP为基础的剪裁被描述得最为详细,可执行度最高的。

领域知识

    技术人员一般抗拒学习软件开发以外的东西,但架构师却非如此不可,因为架构师的职责就是将业务需求转化为系统设计。那又如何快速成为新领域的专家呢?精通快速业务建模吗?
    BTW.G9写过一篇很有意思的〈商业软件编程很无聊?〉


大型项目的经验

    中国有多少架构师,不在于有多少人通过了什么考试培训,而在于中国大型项目的数量。
    问:你这个项目的架构是什么?一口回答:Spring+Struts+Hibernate。这位很可能就不是架构师了,因为这仅仅是技术Stack,项目规模不大时Spring+Struts+Hibernate才会成为架构的重点。

    除了亲自担任大型项目的架构师,如果了解这些项目为了满足怎样的功能与非功能需求而把架构设计成这样子也一样的。所以,尽量多读一下公司项目的设计文档,愉快的接受其他项目组架构评审会的邀请。


二、基本能力


完整的软件开发生命周期经验

    这个不用说了,幸好中国的架构师什么脏活累活都做过,甚至跟着市场人员跑去做演示这些国外架构师不一定有的经验我们都有了,差别只在于一些理论知识--RUP + CMMI3 + 敏捷原则的细节掌握程度。


精通一两种主流开发语言、保持当下架构的开发体验

    国内的架构师到了三十岁以后很多就往理论上跑,而国外的架构师则在往上发展的同时保持下面的编程体验,所以国内多水王,而国外则多大师。
    水王的设计一般会层次过高,与实现之间有断层,与开发人员沟通困难,自己哗啦啦编个验证原型的日子更是一去不返。更痛苦的是,人过三十之后学习能力下降,手艺一旦放下了想重新上手还很难:(

    但是,也不必要挽起袖子每月编码若干行,很可能你的"亲自出手"因为时间安排不来反而拖了大家的进度,但一定要保持一个体验。

宏观上的,广度优先的了解当前主流的技术与产品

     架构师如果连Tuxedo与IBM MQ都分不清,一句"这里搞个异步调用的middleware,有commercial support的",同样是层次太高了。架构师对各大公司的完整产品线和著名的开源项目应该有宏观上的了解,最好在Wiki里编个索引。
     但同时也要抵制成为某项技术专家如Oracle启动参数优化专家的诱惑,技术细节掌握到业务职责需要的程度就刚好了。除非如Spring Framework进一步了解能带来天大好处。

与业务域开发域人员沟通的能力及其他领导能力
 
   IT 架构师处在客户和开发人员之间,必须能够使用各种媒体(代码、模型、文档、PowerPoint以及谈话和讲座),与技术和非技术的干系人进行沟通。另外,架构师好歹也是个半大不小的官,其他领导必要的能力就不列了。
   
    参考了IBM DW中国上的两篇文章:

   

三、镜子做好了,自己先照一下

  • 要把书单啃完;
  • 要熟悉NGOSS、3G、IMS这些业务知识;
  • 要把公司几百个项目的设计文档抽好的看一遍;
  • 要跟随公司最新一波RUP+CMMI3行情;
  • 要重修C++;
  • 要完整了解一遍IBM、BEA们的产品线;
  • 要从那些写得好的架构PPT中偷师...


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1511545


<script src="http://localhost:82/PromoteIcon.aspx?id=1511545"></script>[收藏到我的网摘]   江南白衣发表于 2007年02月18日 01:15:00
<link href="http://blog.csdn.net/calvinxiu/Services/Pingback.aspx" rel="pingback"><script>function hide(){showComment();}</script>
分享到:
评论

相关推荐

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

    本文将为你推荐一系列适合Java程序员到架构师进阶的自学书籍,旨在帮助你提升专业技能,逐步成长为一名出色的Java架构师。 首先,对于初学者,选择合适的入门书籍至关重要。《Java编程思想》是一本经典的Java教程,...

    web工程师养成

    "web工程师养成"这一主题涵盖了从初学者到资深架构师的成长过程,旨在帮助有志于在Web领域发展的技术人员建立扎实的基础,逐步提升自己的技能和视野。本篇文章将深入探讨Web工程师的成长路径、所需技能以及如何通过...

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

    另外,"Agile Java"中文版虽然被作者定位为入门书籍,但其以单元测试和TDD(测试驱动开发)为核心的教学方式,可以帮助读者在学习Java基础知识的同时,养成敏捷开发和高质量编码的习惯。 【Java编程进阶】: 在掌握...

    阿里巴巴_入职新人第一课.ppt

    * Testing工程师、测试负责人、业务专家、项目经理、测试领域专家、测试架构师、测试开发工程师等职业发展路径 六、职业发展方法 * Sustainable pace:有限目标,循序渐进 * On Job Training:带着思考去工作,...

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

    通过上述书籍的学习,你将能够从Java新手逐渐成长为具备专业技能的架构师。在学习过程中,实践是关键,理论与实践相结合才能真正掌握Java编程的精髓。同时,保持对新技术的关注,不断更新知识体系,是成为一名优秀...

    校企合作开发工学结合核心课程标准的探讨——以PLC控制系统安装与编程课程标准制订为例.pdf

    课程不仅仅是技能培训,还涉及职业素质的养成,如善于思考、勇于创新、科学严谨和团队合作。 3. 校企共同设计课程 校企双方应紧密结合,共同进行课程建设和教学。课程设计基于工程项目的实际需求,结合企业的职业...

    Java程序员必看的书籍.pdf

    2. **《Expert One-on-One J2EE Development without EJB》**:由gigix组织翻译,这本书探讨了不依赖EJB的J2EE开发,对于想要成为Java架构师的人来说,是必读的参考书。 3. **《企业应用架构模式》**:Martin ...

    xxx有限公司商学院建设方案规划内容

    3. **提升管理能力**:通过职业素质培训、管理类培训等方式,提升各级管理人员的职业素养、管理意识和管理技能,搭建公司的人才梯队,逐步培养公司急需的各层级管理人才。 4. **建立学习型组织**:利用两年的时间,...

    【网页设计和制作】课程教学实施大纲.doc

    总的来说,《网页设计与制作》课程是一门注重实践操作和技术应用的课程,旨在通过系统学习和实践,培养出具有专业技能和创新能力的网页设计师。学生不仅需要掌握网页设计的基本技术,还要养成良好的学习习惯和职业...

    VB毕业设计——vb毕业生管理系统设计(论文+源代码).zip

    在VB毕业设计中,通常会涉及以下几个核心知识点: 1. **VB基本语法与控件**:VB使用可视化界面设计工具,通过拖放控件(如按钮、文本框、列表框等)并编写事件处理代码来构建程序。理解VB的基本语法,如变量声明、...

    程序员必看的

    标题与描述概述的知识点主要围绕着程序员应具备的素质和能力展开,强调了作为一个真正的程序员,不仅需要掌握编程技能,更重要的是要有团队精神、协作能力、文档习惯、规范化的编码风格、需求理解能力、模块化思维...

    第一头盔

    "第一头盔"这个标题可能是指一个项目或者产品,但...这将有助于他们更好地理解MVC(Model-View-Controller)架构,提高Web开发技能。同时,这个过程也将帮助他们养成良好的代码组织习惯,为未来的项目打下坚实的基础。

Global site tag (gtag.js) - Google Analytics