`
java-mans
  • 浏览: 11416699 次
文章分类
社区版块
存档分类
最新评论

谈谈系统架构师

 
阅读更多

架构师  

架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。他必须对开发技术非常了解,并且需要有良好的组织管理能力。可以这样说,一个架构师工作的好坏决定了整个软件开发项目的成败。


  架构师实际上就是软件的总体设计师。首席设计师就是总设计师,打个通俗的比方:是中国改革开放的总设计师,我们用现在的说法可以讲,是中国改革开放的首席架构师。架构师的形成一定是在实践中积累起来的,而并非上了几次培训班,读了几本书就可以成功的,架构师是在工程实践中培养出来的!


  架构师也并非是万能的。架构师是客户需求和开发者之间的桥梁。在软件行业中,一般提到的架构师是技术架构师,而忽略了领域架构师或者讲是领域工程师的概念。一个好的领域专家一定是业务领域的架构师,他能够给出某一个业务领域的架构,我们可以称为业务架构,只有技术架构和业务架构紧密结合才有可能真正创造出一个好的系统!


  近年来,软件领域也渐渐地流行起架构师的角色,特别是对一些大型软件产品或项目的开发,这一角色显得很关键,因为缺乏好的软件架构师而导致项目失败的例子不胜枚举,一个没有经验和能力的架构师也会使项目失败的速度加快。


  软件架构师的重要作用
  软件架构师在整个软件开发过程中都起着重要的作用,并随着开发进程的推进而其职责或关注点不断地变化,在需求阶段,软件架构师主要负责理解和管理非功能性系统需求,比如软件的可维护性、性能、复用性、可靠性、有效性和可测试性等等,此外,架构师还要经常审查和客户及市场人员所提出的需求,确认开发团队所提出的设计;在需求越来越明确后,架构师的关注点开始转移到组织开发团队成员和开发过程定义上;在软件设计阶段,架构师负责对整个软件体系结构、关键构件、接口和开发政策的设计;在编码阶段,架构师则成为详细设计者和代码编写者的顾问,并且经常性地要举行一些技术研讨会、技术培训班等;随着软件开始测试、集成和交付,集成和测试支持将成为软件架构师的工作重点;在软件维护开始时,软件架构师就开始为下一版本的产品是否应该增加新的功能模块进行决策。


  如何成为优秀的软件架构师
  显而易见,在软件开发过程中,一个优秀软件架构师的重要性是不应低估的。那么如何成为优秀的软件架构师呢?


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


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


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


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


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


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


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


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


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


  一般来讲,系统架构师应该拥有以下几方面的能力:
  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:良好的团队意识和协作精神,有较强的内外沟通能力。


出自:架构师-百度百科,http://baike.baidu.com/view/1194938.htm

分享到:
评论

相关推荐

    系统架构师谈什么是软件架构

    系统架构师谈什么是软件架构.最近看了下《架构之美这本书》,摘录了部分书中的内容,在摘录书里面内容前先谈谈我自己对架构的看法。架构应该包括了功能性架构和非功能性架构两个方面的内容  最近看了下《架构之美这...

    每个架构师都应该研究下康威定律

    今天聊的话题主要包括以下几点:架构的迭代和演化性构建闭环反馈架构(Architectingforclosedloopfeedback)谈谈微服务架构和最新主题架构和组织文化关系架构师心态和软技能我对一些架构师争议主题的看法我对架构...

    Qcon全球软件开发大会[20160422]_云平台架构专题

    自2007年3月份首次举办以来,已经有包括传统制造、金融、电信、互联网、航空航天等领域的近万名架构师、项目经理、团队领导者和高级开发人员参加过QCon大会。 更多其他QCon大会PPT:...

    ARM架构服务器.doc

    至本文截稿之时,笔者又看到了百度云首席架构师林仕鼎在HPCA大会上的演讲资料——《A pplication-Driven Datacenter Computing》。上图中提到了12 HDD/U的密度,也就是2U 24块硬盘;另外内置网络交换模块也符合我们...

    beauty of architecture

    文档收录了华为首席架构师的所有文档,1.企业架构 1.1 企业架构起源和发展 介绍TOGAF的爸爸和爷爷 TOGAF Next Now is the Time for Third Generation EA Methods 1.2 主要企业架构框架 如何选择合适的企业架构...

    asp.net知识库

    Asp.net 利用OleDb的GetOLEDBSchemaTable方法得到数据库架构信息 用于 Visual Studio .Net 的 IBM DB2 开发外接程序 第2章 并发操作的一致性问题 (2) Using sqlite with .NET Visual Studio 2005 中的新 DataSet ...

    蘑菇街 私有云Docker实例应用

    另,ArchSummit全球架构师峰会北京站将于2015年12月18日~19日在北京国际会议中心召开,大会设置了《揭秘双十一背后的技术较量》专题来深入解读双十一背后的技术故事,欢迎关注。 蘑菇街的私有云平台(以下简称...

    QCon上海 2018年全球软件开发大会PPT合集(101份).7z

    自动驾驶系统微服务化架构实践 把内容交付这件事情做好 容器技术研发实践 自动化运维加速无人车产品化 基于NEO区块链的专家网络应用实践 人物识别技术及应用 让商业没有语言障碍-深度学习在机器翻译的应用 人脸识别...

    01大数据概述.pdf

    如:⼤数据发展⼯程师,操作⼯程师、⼤数据架构师、⼯程师、BI⼯程师、数据挖掘⼯程师、 ETL开发⼯程师、Spark开发⼯程师等等。 虽然⼤数据的就业前景很好,但掌握⼤数据开发技术也是前提。否则,不管这个⾏业发展得...

    krishnam-eng:我的GitHub个人资料的配置文件

    :man::briefcase: 关于我我是Bala-一个热情的程序员,一个务实的架构师和一个热情的探索者。 :sparkles: 我喜欢解决问题,阅读有关技术和认知科学的书籍,创作视觉艺术,不断地为技术行业的趋势而技能和传播知识。 :...

    Hadoop实战中文版

    《Hadoop实战》适合需要处理大量离线数据的云计算程序员、架构师和项目经理阅读参考。书籍目录: 第一部分 Hadoop——一种分布式编程框架 第1章 Hadoop简介 1.1 为什么写《Hadoop 实战》 1.2 什么是Hadoop 1.3 ...

    Hadoop实战中文版.PDF

    《Hadoop实战》适合需要处理大量离线数据的云计算程序员、架构师和项目经理阅读参考。目录编辑第一部分 Hadoop——一种分布式编程框架第1章 Hadoop简介 21.1 为什么写《Hadoop 实战》 31.2 什么是Hadoop ...

Global site tag (gtag.js) - Google Analytics