什么是软件架构师?
  架构师(Architecture)是目前很多软件企业最急需的人才,也是一个软件企业中薪水最高的技术人才。换句话说,架构师是企业的人力资本,与人力资源相比其能够通过架构、创新使企业获得新的产品、新的市场和新的技术体系。那么什么是架构师、架构师的作用、如何定位一个架构师和如何成为一个架构师呢?这是许多企业、许多程序员朋友希望知道的或希望参与讨论的话题内容。

  所谓架构师通俗的说就是设计师、画图员、结构设计者,这些定义范畴主要用在建筑学上很容易理解。小时候到河中玩耍,经常干的事就是造桥,步骤如下:1、在沙滩上画图;2、选择形状好看、大小适合的石头;3、搭建拱桥。其中我们挑出来画图的那位光PP小孩就是传说中的“架构师”了。

  在软件工程中,架构师的作用在于三方面:1、行业应用架构,行业架构师往往是行业专家,了解行业应用需求,其架构行为主要是将需求进行合理分析布局到应用模型中去,偏向于应用功能布局;2、应用系统技术体系架构,技术架构师往往是技术高手中的高手,掌握各类技术体系结构、掌握应用设计模式,其架构行为考虑软件系统的高效性、复用性、安全性、可维护性、灵活性、跨平台性等;3、规范架构师是通过多年磨砺或常年苦思顿悟后把某一类架构抽象成一套架构规范,当然也有专门研究规范而培养的规范架构师。他们的产物往往也分为应用规范和技术规范两类。

  与建筑学类似,如果软件系统没有一个好的架构是不可能成为成功的软件系统的。没有图纸的建筑工地、没有设计的造桥工程都是不可以想象的混乱世界。建筑工程如是,软件工程中亦然!

  由于国内合格、胜任的软件架构师极为少见,直接导致了我国民族软件产业水平的落后。在未来以信息产业为主导的社会,信息产业水平的低下将直接影响国家核心竞争力。究其原因,无企业非急功近利、个人缺乏引导。

  企业的急功近利是有无法克服的原因的,那就是社会发展总体水平。“生存是第一位的,赚钱是第一位的”,多年来许多客户抱怨国内的软件公司无法信任、系统项目累做累败、公司越换越差,但因国外不可能给中国做应用系统项目还不得不找国内软件公司做。由于人月费用低、公司开发成本高,软件企业对于应用只能草草了事,拿钱走人(很多公司拿不到后期尾款)。这样的环境下,企业几乎无法投入更多资源培养自己的架构师,加上眼花缭乱的跳槽风气企业更是不愿投入……

  如何成为软件架构师?

  那么要成为架构师的途径似乎只有现在较为流行的软件学院和个人自我培养了。关于软件学院我接触过不少,其宗旨绝大部分都是造就(or打造)企业需要的软件架构师(or程序员or人才)。教师来源与企业、学员来源与企业、人才输送到企业是他们办学的手段。尽管各个如雨后春笋般出现的软件学院口号差不多,但恐怕大多只是为了圈钱卖学位了事...

  架构师不是通过理论学习可以搞出来的,不过不学习相关知识那肯定是不行的。参考软件企业架构师需求、结合目前架构师所需知识,总结架构师自我培养过程大致如下仅供参考:

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

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

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

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

  然而学海无涯,精力有限,个人如何能够很快将这些所谓的架构师知识掌握?这是秘密,每个人都有自己的独门家传秘笈就不敢一一暴露了。不过有一点就是广泛学习的基础之上一定要根据个人兴趣、从事领域确定一条自己的主线来努力。

  如果说架构师是在模型图纸上工作的,那么模型元素必须是实实在在的,正如我们不可能期望抽象派画家来设计高楼大厦,没有实际意义的模型元素,是不可能构筑出软件系统的。迄今为止,绝大部分软件架构师是依赖软件程序员来实现他们的架构意图的,这二者直接的鸿沟是显而易见的。设计模式的出现是为缩短二者之间的鸿沟所做的努力,目的是让架构师和程序员之间有更多的共同语言和规范。尽管设计模式让软件开发效率和质量有一定程度的提升,但是它始终面临一个很明显的局限,那就是人的因素。人虽然在创造性方面有绝对优势,但是在精确性、持久性、效率、质量上是无法比拟机器的。

转载于:https://www.cnblogs.com/junzhongxu/archive/2008/07/17/1244927.html

软件架构师的修炼之道相关推荐

  1. 软件开发人员的内功修炼之道

    摘要:数学修养对软件开发之路起着什么作用?码农如何修炼自己的内功并成长为优秀的软件开发员?带着相关思考,社区之星第10期采访了中南大学副教授--刘伟.他对数学修养.设计模式.软件架构和重构方面的独特见 ...

  2. 爆肝分享!什么样的架构师修炼之道文档,才能帮助大家修炼成为最最出色的架构师?不服就干!绝不怂!

    前言 卓越的软件架构师从何而来? 所有程序员都有成为架构师的潜力,只要掌握了架构师的思维方式和工作方法,你也能成长为架构师. 本文教你如何像架构师那样思考问题.理解需求.设计架构.评估结果.编写文档. ...

  3. Web前端开发敲门砖 ——《Web前端工程师修炼之道》

    随着多设备.浏览器和Web标准的演变革命,前端正在成为兼顾逻辑.性能.交互.体验的综合性岗位. 前端开发入门又相对容易,必须掌握的HTML+CSS+JS非常容易学习,如果你能再了解一定后端知识,对业务 ...

  4. 读书笔记:编写高质量代码--web前端开发修炼之道(二:5章)

    读书笔记:编写高质量代码--web前端开发修炼之道 这本书看得断断续续,不连贯,笔记也是有些马虎了,想了解这本书内容的童鞋可以借鉴我的这篇笔记,希望对大家有帮助. 笔记有点长,所以分为一,二两个部分: ...

  5. C语言嵌入式系统编程修炼之道——性能优化篇

    C语言嵌入式系统编程修炼之道--性能优化篇 作者:宋宝华  e-mail:[email]21cnbao@21cn.com[/email] 1.使用宏定义 在C语言中,宏是产生内嵌代码的唯一方法.对于嵌 ...

  6. 《数据科学家修炼之道》一2.2 新规则

    本节书摘来异步社区<数据科学家修炼之道>一书中的第2章,第2.2节,作者: [美]Zacharias Voulgaris(弗格里斯)译者: 吴文磊 , 田原 责编: 陈冀康,更多章节内容可 ...

  7. 程序员成长路上的团队修炼之道

    本期为您推出团队修炼之道的专题,<软件之道>做为本期的主打.这是一本由多位软件大师,包括Steve McConnell(<代码大全>的作者).Barry Boehm(<团 ...

  8. 图灵2011年6月书讯【误区】【软件调试修炼之道】即将上市

    - 误区:思维中常犯的6个基本错误 --本书通过许多生动玄妙的生活小事,深刻而犀利地揭示了6种思维陷阱,介绍了形成正确信念和作出科学决策应遵循的方法.通过作者引人入胜的叙事方式,层层深入的分析讲解,你 ...

  9. 《Java工程师修炼之道》内容概览

    最近几个月由于工作和正在筹备<Java工程师修炼之道>一书的原因一直没有写新的文章.不过,忙里偷闲,自己陆续读完了<格鲁夫给经理人的第一课>.<架构真经>.< ...

  10. 《DBA修炼之道:数据库管理员的第一本书》——1.4节评估DBA的工作邀请

    本节书摘来自华章社区<DBA修炼之道:数据库管理员的第一本书>一书中的第1章,第1.4节评估DBA的工作邀请,作者(美)Craig S. Mullins,更多章节内容可以访问云栖社区&qu ...

最新文章

  1. 从多媒体技术演进看AI技术
  2. 三列浮动中间列宽度自适应
  3. 计算机联锁与全电子执行单元,计算机联锁全电子执行单元.doc
  4. BAT批处理脚本结合SQL应用案例
  5. python无缘无故不执行/跳过某个函数,无报错无警告
  6. android 读写文件 简书,Android10 文件操作适配
  7. 查看openssh版本_新版的Reveal如何查看越狱手机APP
  8. X86-64和ARM64用户栈的结构 (1) ---背景介绍
  9. 删除本地.svn文件
  10. 数据分析sql面试必会6题经典_经典SQL面试题及答案分析
  11. Multisim 10软件介绍
  12. 单片机c语言按键防抖程序,单片机按键防抖子程序详情解说 - 全文
  13. 数据驱动进化优化(data-driven evolutionary optimization)
  14. 数学猜想验证步骤_“猜想——验证” 数学学习的重要方法
  15. oracle 视图的写法,Oracle视图基础详解与实例
  16. C/C++程序员工作面试的秘密
  17. ## 解决: IIS部署静态页面更新时html,js文件没有更新的问题
  18. 《基于微信小程序的美食推荐系统》硕士论文
  19. 温度换算(C/C++/Java)
  20. 【JZOJ 省选模拟】多项式(poly)

热门文章

  1. 怎样为Mac视频添加音频
  2. MyBatis 动态SQL与SQL片段
  3. flume 整合kafka
  4. 芒果 TV Redis 服务解决方案
  5. Android开发中如何加载API源码帮助开发
  6. async and await 简单的入门
  7. Apache Lucene 3.x推荐教程
  8. 2009开源SNS软件总结
  9. 知乎面试官:为什么不建议在 MySQL 中使用 UTF-8?
  10. 300本计算机编程的经典书籍下载