西门子中国中央研究院首席架构师、图书《架构之美——软件架构的艺术》作者李伟,从架构师的定义和内涵、能力和素质要求、成长途径等方面向您阐述成为一个真正的架构师需要经历的历程。
记者: 您认为具备哪些能力,才算是真正的架构师?
李伟:虽然业界有关什么是“软件架构”有着明确的定义及共识,但是确实没有软件架构师的定义。简单地讲,架构师是一个技术控制的角色。技术控制是从客户或市场开始,一直到交付或服务的整个链条。如果大家对一个应用研发机构或产品研制机构的主要活动熟悉的话,就知道该链条上存在很多需要架构师负责的控制点。以西门子为例,西门子的战略市场部门就会和业务部门的很多架构师进行协作。这主要是由于战略市场部门的职能之一就是对未来十到十五年的技术和创新进行预判。这样的技术预判,如果没有架构师作为技术控制,单凭MBA出身的市场人员,大家能相信这样的技术预判吗?所以架构师需要具备一定程度的技术及创新预判能力。
从一个架构师的日常工作来看,他面对的基本上有七大问题:商业问题、系统问题、子系统问题、构件问题、技术问题、流程问题、项目管理问题。其中,前五项是一个架构师主要负责解决的。这里我尝试提几个问题,让大家检验一下自己是否具备解决这些问题的能力。
如果进行企业应用开发,你知道经典的商业运营手段一般有哪些吗?例如:公司中一般有哪些典型的职能机构?最经典的公司财务部运作是什么样的?最经典的公司纯研究机构的运作是什么样的?或者,最经典的公司纯销售机构是怎样运作的?
如果你负责一个实时系统的架构,经典的架构构建步骤有几步?一个医学CT机系统应该用什么架构风格来构建?军用舰艇上的3C系统又应该使用什么架构风格?除了我们都熟悉的MVC风格的架构,你还知道哪些架构风格?再具体一些,对于系统的并发问题,你知道业界流行的经典解决手段包括哪些?
如果你负责子系统及构件设计,经典的设计步骤有几步?分别又有哪些活动?除了你熟悉的Gang of Four的23个设计模式,你还知道什么设计实践?再具体一些,设计中有关同步、事件、资源管理等,你知道哪些前人的最佳实践呢?
实践工作中,我们遇到的现实是:盲目追随业界通用框架,即对框架或中间件的严重依赖。这些框架或中间件背后实际隐藏了很多技术、设计、应用场景,也就是说为设计开发人员隐藏了很多系统设计开发的复杂性。如果架构师把各项系统级架构质量的要求,想当然统统扔给这些框架或中间件去处理,将会带来灾难性的后果。业界有这样一句话:“框架或中间件是用来帮助你的,而不是代替你去思考和工作的。”所以我们必须根据现实的系统要求,自己动脑筋去构建适合现状的软件架构!
简而言之,架构师需要具备的能力=熟知最佳实践+动脑灵活使用+技术及创新预判。
记者: 在中国,一个程序员如何才能成长为一个职业架构师?
李伟:曾经无意间读过一篇纪事报告《最后的大师》。此文作者是应钱学森先生的邀请,来记录自己的导师,清华大学物理系及清华大学创始人之一的叶企孙先生。叶先生早年在美国留学期间,在物理方面做出过杰出的贡献。虽然大多数后人并不知道叶先生,但是他的学生没有一个会忘记他,其中包括三钱、华罗庚、李政道、杨振宁等等。可以这样说,你所知道的中国大师,大多都是他的学生。阅读完此文,颇受启发:真可谓“大师培养大师”。我非常欣赏这句话。
如果身边有大师,自然是从程序员成长为架构师的捷径了。我身边没有大师,便选择这样的道路:认真反思自己这些年来的学习和实践,并将其上升为智慧。毕竟,智慧既是指导我继续工作的原始动力,也将指导自己未来的创新工作。因此,我选择了阅读、学习和思考。
记者: 您认为在中国的软件企业中,大家在普遍认识中对架构师这一职业有哪些误区?
李伟:误区一,架构师与项目经理没有区别。大家经常在谈论架构师时,混淆了项目经理的职责和架构师的职能。项目经理要对人、流程、钱等内容负责。但是架构师主要是对技术负责。所以我个人不是很喜欢在谈论系统架构时,过多的谈论流程或管理。虽然我也是流程方面和管理方面的专家。
误区二,技术好的人就能成为架构师。其实,职业架构师与职业编程人员有着同样重要的分量,只不过各自负责的工作内容及需要具备的能力各不相同。例如:架构师熟知如何将系统架构构建得适应系统后续国际化/本地化的工作;但是并不一定必须知道界面热键在.NET下调用什么来实现。
误区三,架构师必须懂得业务领域的知识。从本质上来看,软件架构本身就是在模仿人类大脑的问题思考和解决习惯。自然,专业架构师所掌握的知识就是解决那些反复出现的相似问题的最佳手段。所以,业界都知道这样一个著名的故事:一个非航天专业的软件架构人员,可以被美国国家航天局请去做航天系统的架构评审。这一点儿都不奇怪,因为他知道解决系统并发问题时,当今最经典的那么几种手段,你能说航天系统的并发问题与企业应用并发问题本质上不一样吗?由于当前国内软件研发的各种局限,很多软件从业人员的认知还停留在“懂业务+技术好”就是架构师这样的层面上。其实,懂得经典的解决方法,并能从实践中抽象出理论或最佳实践的人,才是架构人员的专业水平。
记者: 在《架构之美——软件架构的艺术》一书中,您认为最创新的理念有哪些?
李伟:一个架构从创建、进化、老化到消亡的整个过程,是此书的核心。如同宇宙万物,架构也存在一个生命周期的概念。即“架构生命周期(Architecture Lifecycle)”。
怎样才是一个真正意义上的软件架构师?
当面临构建一个软件架构时,应该采用怎样的流程去工作呢?
怎么做才能构建出满意的高品质架构及设计呢?
当我们阶段性地完成了架构的构建,如何去评估结果呢?
软件产品在演化,软件架构也会跟随演化,如何应对这种变化?
十年前开发的产品,架构文档残缺不全,设计人员已经离职,怎么把产品的架构从纷繁复杂的头绪中清理出来呢?
如果我们要研发十几个功能相似的产品,该如何高效地工作呢?
上述这些理念,基本上是一个职业架构人员所需具备的专业素养。奉献给大家,以供参考。
分享到:
相关推荐
数据架构师讲述如何成为真正的数据架构师的学习内容等。
课程体系内容包括了核心架构业务优化篇,互联网架构及性能实战,架构师核心业务处理,架构师数据处理实战,架构设计与优化案例实战,还有核心的架构师运维课程,这是真正意义上的架构师课程,全新的技术体验。...
视频详细讲解,需要的小伙伴自行百度网盘下载,链接见附件,永久...在讲述设计方案时会有不同的方案对比,使得同学们能够真正理解架构背后设计的哲学,从而帮助同学们彻底清除掉这技术难题,早日实现百万年薪的梦想。
跟着真正的互联网架构师,学习互联网架构师方向开发!可能你还为工作不好、薪资待遇不高感到烦恼,可能你还在纠结自己的技术水平不够找不到高大上的工作而烦恼,那么在这里我们推出互联网架构师课程学习体系面向所有...
资源里合集了,软考架构师50篇范文可供参考使用 另外还放了19年的论文考试答题纸pdf,可以自己打印,平常练习的时候可以用真正的答题纸模拟论文写作,事半功倍,预祝软考通过!
/在部署阶段,将稳定、完善的解决方案完全部署为真正的产品。 37、MSF部署阶段交付成果包括:运营及支持信息系统/所有版本的文档、装载设置、配置、脚本和代码 / 项目收尾报告 38、六种MSF角色中,哪种角色不能与...
Android技术首套架构师级别的高级课程,是真正意义上的安卓高级课程,也是汇集了最前沿新技术于一体的移动开发实战课程,是相关开发工程师应当进行的课程。但课程同时的受众是直接面向高级的Android开发工程师,是...
换句话说,沟通是架构师指示别人或群体完成特定行动唯一真正有效的手段。架构师通常没有对为其项目工作的他人的直接管理权。他们的项目往往是跨部门的,也可能会跨好多个行业单位。由于不能直接 在架构师的角色中...
系统架构师谈什么是软件架构.最近看了下《架构之美这本书》,摘录了部分书中的...J2EE架构的标准模板很容易找到和借用,但是并不代表你是一个合格的架构师,架构师必须深入到功能性架构中,真正的做好需求和实现中间
蚂蚁架构师之并发编程设计模式与分布式性能优化视频教程 java架构师视频教程推荐,真正的轻量级架构体系,学习java你不可或缺,java自学网作为国内顶尖的java学习论坛社区,专注提供高质量,含金量的视频教程!...
了解一点术语技术 ...为了给系统架构师提供充分的技术交流、沟通的平台, IT168(ChinaUnix、ITPUB、IXPUB)借助自身的平台资源,主办了2009年度系统架构师大会,为大家提供真正的面对面的高层次技术交流平台。
真正的系统架构设计师,想通过系统架构设计师的人必看
尊敬的考生们,您是否在寻找一款优质的学习资料来备战AWS-SAA-C03助理架构师认证考试?我们为您带来了最新的AWS-SAA-C03(20230928)助理架构师中文认证考试题库!它将帮助您更好地理解AWS架构,提升考试通过率。 ...
大牛带你跳槽不跳坑 最新互联网顶尖一线大厂JAVA架构师面试实战课程,需要先让同学们清楚的是,这不仅仅是面试的指南课程,而是真正意义上的技术课程,每集课程都对可以作为技术点来进行教学,所以即便是不进行面试...
单一方法已捉襟见肘。 一线架构师真正需要的, 是覆盖 “需求进,架构出”全过程的实践指导——只有综合了不同方法优点的“方法体系”才能堪此重任。本书认为,方法体系必然是软件业界未来发展的重大趋势之一。
是一次真正意义上的JAVA架构师的提升课程。课程内容不含基础内容,全程都是高能的提升技术,前篇部分的手写mybatis,设计模式,手写spring ioc、MySQL+MongoDB+redis数据库高级技术。后篇章的技术持续高能,Kafka、...
尊敬的考生们,您是否在寻找一款优质的学习资料来备战AWS-SAA-C03助理架构师认证考试?我们为您带来了最新的AWS-SAA-C03(20230928)助理架构师中文认证考试题库!它将帮助您更好地理解AWS架构,提升考试通过率。 ...
Java程序员进阶架构师推荐阅读书籍 UML其实和软件开发过程没有什么必然联系,却是软件团队协作沟通,撰写软件文档需要的工具。但是UML真正实用的图不多,看看这本书已经足够了,完全没有必要去啃《UML用户指南》之类...