架构师之我见(一)入门篇

一、引子-课程介绍

这系列文章,是博主在给公司做架构师分享时的课件。对【架构师】感兴趣的同学可以随意查阅。(每个人有自己的见解,各位架构师大神,请不要批斗~)

目的:

  • 架构师:交流、反思、改变、价值。
  • 开发:指引、实践、突破、价值。
  • 其它:了解架构及架构师,更好的协作。

二、架构思考

2.1 什么是架构

芯片架构、音乐架构、组织架构、系统架构...架构无处不在。

技术架构相关常见词汇:软件架构、系统架构。

共性是用于指导设计,一般存在于复杂场景,把无序的变有序,把耦合的解耦。即架构不是必须的,某些简单场景,可以不用架构。

  • 软件架构(software architecture):是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。软件体系结构是构建计算机软件实践的基础。---艾兹格·W·迪科斯彻
  • 系统架构(system architecture):是定义系统的结构、行为和更多视图的概念模型。系统架构包含软件架构、硬件架构、软硬件协同等。

架构是设计的一种抽象。风格是模式的一种抽象。

  • 架构:架构专注于可以被多个设计所利用的抽象。
  • 设计:设计是建立特定事物的具体计划。架构也是一种设计。专注于架构的设计。
  • 风格:某一特定应用领域中系统组织方式的惯用模式。事物的代表性元素特性。
  • 模式:指事物的标准样式,是结构主义用语。指用来说明事物结构的主观理性形式。

2.2 架构的分类

  • 业务域:业务架构师、业务专家 业务架构:从需求(行业经验)中抽象提炼,按业务模块拆分。
  • 技术域:系统架构师、软件架构师 应用架构:定义了前后端应用服务的水平/垂直拆分边界。 技术架构:用技术语言描述系统用到的技术组件。 数据架构:数据采集、流转、存储,大数据系统的核心架构。 部署架构:指导运维部署、维护系统,亦称基础设施架构。
  • 近几年:对架构师的要求越来越高,也不区分业务、技术了,都归属于架构师职责。

2.3 架构师的定位和价值

架构师是负责系统架构的人,是团队技术一把手,对团队技术负责。核心工作:确认、评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点。

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

三、架构入门

要想成为一名架构师、把架构工作做到入门程度,并不容易,但有迹可循。

3.1 架构师能力模型

3.1.1 开发和架构师的区别

  • 开发:主要负责开发落地。要求:技术广度中、技术深度中。有一种开发岗位是:资深开发岗,技术深度要求高一些,广度要求不高。
  • 架构:提前规划设计、做决策。要求:技术广度高、某些领域技术深度极深。

架构核心能力"站得高、望得远、扎得深"即宏观思维能力、抽象思维能力和钻研能力。--美团内部的架构观

  • 宏观思维:考虑整体,站在更高的层次上去看问题。
  • 抽象思维:软件项目永远不变的就是"变化",抽象是应对变化的主要手段。
  • 钻研能力:要求架构师具备深入细节的能力,能够攻克软件项目中的关键难题。

3.1.2 团队定位(角色)

  • 找定位:架构师要在团队中找到自己的定位(角色)->职责->能力。
  • 额外角色:半个产品、半个运维甚至半个项目经理。具体就看团队哪里薄弱,加强哪里。{但要注意是协助,不是拍板。}
  • 基座:架构师是研发团队的基座,是串联业务、需求、研发、运维运营的纽带。90%的项目失败/未达标,根源在于架构师没能发挥统领全局的作用。

3.1.2 通用能力

  • 能力模型: 分为两大块:通用能力、专业技能。
  • 通用能力 :往往容易被忽视,属于非职业性质的软实力,适用任何岗位。

专业技能:包含业务能力、技术能力、职业软实力。

3.2 先成为架构师

3.3 架构的几个层次

  • 级别:初级、中级、高级架构师、总架构师、首席架构师。
  • 认知曲线(邓宁-克鲁格效应):愚昧山峰、绝望之谷、开悟之坡、平稳高原。

3.3 架构入门

3.3.1 入门的标准

  • 架构师入门的标准,这是个开放性问题。
  • 共赢模式:架构师存在于一个团队中。利用个人能力、基础能力、职业能力在团队工作中,以个人带动团队,达成团队目标。同时验证/提升个人的架构能力(图中紫色部分)。
  • 形成一次共赢模式实践,架构师已融入团队,形成了正向闭环,实现双赢。就算入门了。就像练武功,先把内功心法修炼好,再结合武术套路连贯打一套,这门武功就入门了。

3.3.2 架构工作总结

还不懂?那看看架构师的工作总结。

一、专业技能

1.设计能力

一文掌握设计模式(定义+UML类图+应用)

2.架构能力

大数据:

大数据(一)背景和概念

大数据(二)大数据架构发展史

大数据(三)大数据技术栈发展史

流量治理:

分布式架构-流量治理-服务容错

分布式架构-流量治理-流量控制

可靠通讯:

分布式架构-可靠通讯-零信任网络

分布式架构-可靠通讯-服务安全

可观测性:

分布式架构-可观测性(一)-原理概览

分布式架构-可观测性(二)-事件日志

分布式架构-可观测性(三)-链路追踪

分布式架构-可观测性(四)-聚合度量

云原生架构(一)原理概览

其他:

服务端架构演进史

领域驱动架构及其演变史(EBI、DDD、端口适配、洋葱、整洁)

DDD领域驱动设计落地实践(十分钟看完,半小时落地)

RocketMQ详解(一)原理概览

二、软实力

技术人的思想提升

技术人如何打破瓶颈

程序员如何成为架构师

技术团队管理(一)思想提升

技术团队管理(二)职业素养

技术团队管理(三)管理警示录