架构师必备11大能力要求和培养流程

2016-05-24 00:00:00力民 系统架构师

  如何才能成为一名合格的架构师?需要具备什么样的能力要求?培养的流程是什么?YJBYS小编为大家详解如下!

  一般来讲,系统架构师应该拥有以下几方面的能力:

  1:具备 8 年以上软件行业工作经验;

  2:具备 4 年以上 C/S 或 B/S 体系结构软件产品开发及架构和设计经验;

  3:具备 3 年以上的代码编写工作经验;

  4:具备丰富的大中型开发项目的总体规划、方案设计及技术队伍管理经验;

  5:对相关的技术标准有深刻的认识,对软件工程标准规范有良好的把握;

  6:对 .Net/JAVA 技术及整个解决方案有深刻的理解及熟练的应用,并且精通WebService/J2EE 架构和设计模式,并在此基础上设计产品框架;

  7:具有面向对象分析、设计、开发能力(OOA、OOD、OOP),精通 UML 和 ROSE,熟练使用 Rational Rose、PowerDesigner 等工具进行设计开发;

  8:精通大型数据库如 Oracle、Sql Server 等的开发;

  9:对计算机系统、网络和安全、应用系统架构等有全面的认识,熟悉项目管理理论,并有实践基础;

  10:在应用系统开发平台和项目管理上有深厚的基础,有大中型应用系统开发和实施的成功案例;

  11:良好的团队意识和协作精神,有较强的内外沟通能力。

  具体能力要求描述:

  首先必须具有丰富的软件设计与开发经验,这有助于理解并解释所进行的设计是如何映射到实现中去。

  其次要具有领导能力与团队协作技能,软件架构师必须是一个得到承认的技术领导,能在关键时候对技术的选择作出及时、有效的决定。

  第三是具有很强的沟通能力,其实这一点好像什么角色都最好具备,软件架构师需要与各路人马经常打交道,客户、市场人员、开发人员、测试人员、项目经理、网络管理员、数据库工程师等等,而且在很多角色之间还要起沟通者的作用。在技术能力方面,软件架构师最重要也是最需要掌握的知识是构件通信机制方面的知识,比如远程过程调用(RPC,Remote Procedure Call)、JAVA RMI、CORBA、COM/DCOM、各种标准的通信协议、网络服务、面对对象数据库、关系数据库或者NoSQL数据库等等,另外,架构师应时刻注意新软件设计和开发方面的发展情况,并不断探索更有效的新方法。开发语言、设计模式和开发平台不断很快地升级,软件架构师需要吸收这些新技术新知识,并将它们用于软件系统开发工作中。当然,行业的业务知识对软件架构师也是很重要的,有助于设计出一个满足客户需求的体系结构,优秀的软件架构师常常因为要尽快获得对行业业务的理解而必须快速学习并且进行敏锐的观察。

  但作为一个架构师,在整个软件系统的开发过程中是乐趣无穷的,因为这个角色很具有挑战性,有时需要左右逢源、八面玲珑,有时又需要果断坚定、不留情面。在国内,较少软件企业拥有独立的架构师,通常一个软件高手身兼数职,既是项目经理,又是软件架构师,还是软件开发者,有时还要客串一个测试人员,这对软件的开发周期和产品质量是不利的,有时一个人的观点立场是很片面的,而且繁重的工作、沉重的压力会影响一个人的情绪,情绪会影响决策,决策影响结果,所以值得我们三思而后行。

  通用培养过程(作为参考):

  架构师不是通过理论学习可以搞出来的,不过不学习相关知识那肯定是不行的。总结架构师自我培养过程大致如下,仅供参考。

  1、架构师胚胎(程序员)

  学习的知识是语言基础、设计基础、通信基础等,应该在大学完成,内容包括java、c、c++、uml、RUP、XML、socket通信(通信协议)——学习搭建应用系统所必须的原材料。

  2、架构师萌芽(高级程序员)

  学习分布式系统、组建等内容,可以在大学或第一年工作时间接触,包括分布式系统原理、ejb、corba、com/com+、webservice(研究生可以研究网络计算机、高性能并发处理等内容)

  3、架构师幼苗(设计师)

  应该在掌握上述基础之上,结合实际项目经验,透彻领会应用设计模式,内容包括设计模式(c++版本、java版本)、ejb设计模式、J2EE构架、UDDI、软件设计模式等。在此期间,最好能够了解软件工程在实际项目中的应用以及小组开发、团队管理。

  4、软件架构师的正式成型在于机遇、个人努力和天赋软件构架师其实是一种职位,但一个程序员在充分掌握软构架师所需的基本技能后,如何得到这样的机会、如何利用所掌握的技能进行应用的合理构架、如何不断的抽象和归纳自己的构架模式、如何深入行业成为能够胜任分析、构架为一体的精英人才这可不是每个人都能够遇上的馅饼……

[系统架构师]相关推荐

[系统架构师]相关栏目推荐
查看更多
上一篇:返回列表 下一篇:系统架构设计师的工作职责