`

软件架构师的修炼之道

阅读更多
软件架构师的修炼之道


什么是软件架构师?

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


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

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



分享到:
评论

相关推荐

    测试架构师修炼之道:从测试工程师到测试架构师1

    【测试架构师修炼之道:从测试工程师到测试架构师1】这本书主要探讨了软件测试工程师如何进行职业规划,以及如何成长为一名优秀的测试架构师。书中通过两个面试故事引入了核心议题,即测试的核心并不仅限于业务知识...

    微软软件架构师的修炼之道

    "微软软件架构师的修炼之道"是一个专注于培养这一专业能力的主题,它涵盖了架构师的角色定义、成长路径、技能需求以及在微软环境中的实践。 首先,我们来理解“何谓架构师”。软件架构师并非只是编写代码的工程师,...

    测试架构师修炼之道:从测试工程师到测试架构师.docx

    测试架构师修炼之道:从测试工程师到测试架构师 一、本文概述 测试架构师是软件开发团队中的重要角色,他们负责设计和实施测试策略,以确保软件产品的质量和稳定性。本文将详细阐述测试架构师的角色与职责,为大家...

    架构师修炼之道.pdf

    架构师修炼之道 架构师是一个神秘而又神圣的名词,作为软件开发领域的设计师,架构师承载着太多的责任和挑战。那么,如何能够成为一名合格的架构师?架构师应该具备何种素质?而架构师又是如何做到持续不断的成长和...

    架构师修炼之道.docx

    "架构师修炼之道" 架构师是一个神秘而又神圣的名词,在软件开发领域中扮演着设计师的角色,承载着太多的责任和挑战。那么,一个合格的架构师应该具备何种素质?架构师又是如何做到持续不断的成长和提高的呢? 一、...

    软件架构师的12项修炼.docx

    软件架构师的12项修炼 软件架构师是软件开发领域中非常重要的职业之一,他们负责设计和规划技术方案,确保软件系统的可用性、可维护性和可扩展性。为了成为优秀的软件架构师,需要具备深厚的软件工程知识、技术经验...

    架构原理-架构师的修炼-v1.2-艾飞-超清文字版本

    《架构原理-架构师的修炼》是一本深入探讨软件架构设计与实践的著作,由艾飞编著。这本书的核心目标是帮助读者理解架构师的角色,掌握架构设计的关键原则,并通过实际案例来提升架构能力。超清文字版本的提供,使得...

    软件架构之道——我所理解的软件架构_软件架构之道_

    本文将深入探讨“软件架构之道”,解析架构思维、架构的本质、思维方法、常见误区、核心理念以及修炼方法,以期帮助读者更好地理解和实践软件架构。 首先,我们需要了解什么是“架构思维”。架构思维是一种高层次的...

    架构师的6个目标15项修炼

    ### 架构师的六个目标及其十五项修炼 #### 目标一:变被动理解需求,...综上所述,架构师的目标涵盖了从需求分析到具体设计实施的各个环节,通过不断地修炼和完善自身的能力,才能更好地应对日益复杂的软件开发挑战。

    系统架构师的修炼---

    首先,编码和算法是系统架构师的核心技能之一。编码能力可以让架构师更深入地理解软件开发的细节,从而在设计架构时考虑到开发实践。算法知识则有助于架构师设计出高效的解决方案,提升系统性能。 其次,系统架构...

    PostgreSQL修炼之道:从小工到专家

    《PostgreSQL修炼之道:从小工到专家》的主要内容和特色: 全面且实践性强:本书从SQL基础、安装配置、数据类型、数据库的逻辑结构等基础知识一直讲到PostgreSQL的架构、技术内幕、特色功能、Standby、数据库优化...

    架构师必看的书籍清单

    2. 《The Pragmatic Programmer--程序员修炼之道:从小工到专家》:架构师职业发展的必备书籍之一。 通过这些书籍的阅读和学习,架构师可以夯实自己的基础知识,提高自己的设计和架构能力,提高自己的职业发展空间...

    如何修炼位测试架构师

    4. **参与架构工作的能力**:测试架构师不仅关注测试本身,还需要与开发架构师密切合作,共同设计和改进软件架构,以提高可测试性,减少未来的问题。这可能涉及在项目初期就介入,以确保测试考虑被纳入到系统设计中...

    ArchSummit 2022全球架构师峰会深圳站(公开)PPT汇总(51份).zip

    AI平台型产品的架构师修炼之道 构建安全合规、可管理和可扩展的云上环境 海量设备消息高性能处理实践 卡片式代码配置平台探索与实践 面向多租户的微服务架构实践 湖仓数据平台的技术核心和价值探索 应用群智与内部...

    软件架构师的沟通修炼

    在架构师的角色中,沟通是要求有效果的必备技能与工具。换句话说,沟通是架构师指示别人或群体完成特定行动唯一真正有效的手段。架构师通常没有对为其项目工作的他人的直接管理权。他们的项目往往是跨部门的,也可能...

    《我的架构思想》电子书 - PDF版

    通过全新的观察视角,本书对“架构”以及“架构师角色”提出了新的定义,并主要讨论了形成论与组成论两种架构方法。此外,本书在“架构意图”方面的讨论,既直指架构思想的本质,又为架构决策与实施找到了依据,颇为...

    【高清完整pdf】高效程序员的45个习惯 敏捷开发修炼之道

    本书名为《高效程序员的45个习惯 敏捷开发修炼之道》,由Venkat Subramaniam和Andy Hunt两位作者共同撰写。书中所提到的45个习惯,不仅涉及软件开发过程、编程和调试工作,还包括了开发者的个人态度、项目和团队管理...

Global site tag (gtag.js) - Google Analytics