「后端」程序员到架构师之路

导读:本系列文章教你怎么样成为一名架构师,而本篇文章则带你先认识一下什么是架构师,架构师的工作是什么?

为什么需要架构师

为什么需要架构师或者说架构师能解决什么样的问题,我们不妨先从两个不同的视角来看一下。

技术高手的视角

小张作为一名拥有3-5年开发经验的技术高手,他经常会思考以下几个问题:
• 我已经工作好几年了,将来如何发展?是要一直写代码吗?
• 是不是要往上走就得做管理?
• 在中国35岁之后不能再做技术了吗?
• 继续做技术是不是待遇上不如做管理?
• 如果继续做技术我还要学习什么?
• 如果改做管理我应该如何转型?
• 我适合做技术还是做管理,还是别的什么?

软件企业的视角

软件企业在的产品开发过程中也经常会思考以下几个问题:
• 为什么我们的产品交付周期为什么需要那么长时间?竞争对手可能只要半年,为什么我们需要1年?
• 为什么我们的产品总有这样那样的质量问题?程序员在开发的时候为什么不好好把控质量,上完线出这样那样的问题?
• 为什么当初这个产品会选择这样的技术路线,技术选型的时候为什么不慎重?导致现在要用另一种技术推翻重做,带来巨大的人力成本?
• 网站的用户越来越多,性能非常吃紧,想扩展却很难?
• 为什么这个产品的代码这么难维护,找谁改都说不敢动?
• 究竟谁能在技术上保证我们的产品或项目取得成功?

从不同的角度出发会引发出一连串的疑惑,那么能解决以上疑惑的角色就是系统架构师,也可以说我们需要系统架构师来解决这些问题。

架构、架构设计与架构师的相关概念

架构

架构,又名软件架构,也称为软件体系结构。软件架构就是一个系统的蓝图,是一种设计方案,将客户的不同需求抽象成为抽象组件,并且能够描述这些抽象组件之间的通信和调用,及包括一些内部的关键机制。它有下面三个关键概念:

系统架构 vs 架构设计

系统架构 是指系统在运行期的实际内部结构,架构设计是对这种内部结构的书面描述。

架构设计 是以需求分析为输入,通过架构师的分析,产出架构设计资料,用于指导后续概要设计、详细设计、开发、测试、部署、上线运行。所以说如果架构设计做的不好或者没做架构设计,那么后面环节的开发测试部署可能会出各种各样的问题。

架构设计 vs 概要设计

架构设计是以组件的视角来思考系统如何分解,并定义分解出来的组件之间的关系。概要设计是从功能模块的视角来对系统进行分解,并定义这些功能模块之间的关系。现在提的比较少,一般做完架构设计直接做详细设计即可!

以用户登录为例,从架构设计的角度可能就只是一个用户服务组件,而从概要设计的角度可能就是前端页面、用户接口、数据库等一系列功能的设计。

架构师

架构师是负责系统架构的人、团队或组织,架构师是团队技术领导,从技术角度,承担项目技术的成功或失败的责任。在其领域内能够全局把握的人,能够给出其负责范围内的总体设计,并能解决关键问题、指导其他人员落实设计。

往往后端开发出生的架构师对后台开发这一块有很丰富的相关经验,但是还需要对前端,APP端、测试、部署等领域也需要了解掌握,需要能做到掌控全局,这也是成为架构师需要去修炼的地方。

注解:架构师在一个团队中的权利很大,在技术上大家都要听你的,但是同时你也要承担相应的义务,一旦项目由于技术原因失败,那你就是第一责任人

架构师的价值

李智慧老师在《大型网站技术架构 核心原理与案例分析》说过软件架构师的最大价值不在于掌握多少先进的技术,而在于具有将一个大系统切分成N个低耦合的子模块的能力,这些子模块包含横向的业务模块,也包含纵向的基础技术模块。这种能力一部分源自专业的技术和经验,还有一部分源自于架构师对业务场景的理解、对人性的把握、甚至对世界的认知。”

上面这张图表示未经过架构设计的系统,大家想怎么建就怎么建,用过几年后系统之间的关系没人能理清楚,自然自然程序员不敢随便改其中的代码。

而经过良好的架构设计后系统之间逻辑清晰,可以很容易进行扩展。

架构、架构师、架构设计之间的关系

下面一张图很容易看出架构、架构师以及架构设计之间的关系

架构师能力模型

作为架构师需要拥有以下12个能力模型:

  • 沟通协作:
    架构师需要经常跟产品经理、项目经理甚至客户打交道,所以沟通能力对架构师来说非常重要,能力总结如下
    ① 具备优秀的口头、书面及表达技巧
    ② 优先的聆听者和观察者
    ③ 传达和激发团队,共享架构,确保达成一致
    ④ 个人品牌,值得信任
    ⑤ 推动良好的团队协作,合作共赢
  • 架构师修炼方法

    架构师可以从以下几个角度进行自我修炼

    架构师成长路径

    架构师的前身是一名中高级开发人员,他们通常会具备以下几个特征:

    在职业发展中他们有以下几条路径可走

    走管理路线可以成长为项目经理、部门经理 走技术路线可以成为某方面的技术专家、架构师、CTO

    成为架构师 意味着需要具备更高的能力,并承担更大的责任。

    架构师工作指南

    工作职责

    在标准软件研发流程体系中,软件研发分为构思阶段、设计阶段、开发测试阶段,运维阶段。而架构师需要参与整个开发流程的生命周期。

    我们接下来看看架构师在每个阶段需要干什么事。

    工作流程

    架构师在项目中的活动需要有一定的流程,正常过程如下:

    周边协作

    架构师由于需要参与整个项目的生命周期,所以基本需要与所有相关人员进行协作,具体可参看下图:

    资源保障

    架构师在工作过程中会有一些资源需求,可通过以下方式进行获取:

    架构师的考核

    可以通过以下维度对架构师进行综合考核:

    文章来源:梁凤财Zeno_https://www.cnblogs.com/ZenoLiang/p/16250508.html

    展开阅读全文

    页面更新:2024-02-27

    标签:程序员   架构   组件   阶段   需求   能力   业务   项目   系统   产品   技术

    1 2 3 4 5

    上滑加载更多 ↓
    推荐阅读:
    友情链接:
    更多:

    本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

    © CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
    闽公网安备35020302034844号

    Top