限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: muyang-0410

点击上方“芋道源码”,选择“”

管她前浪,还是后浪?

能浪的浪,才是好浪!

每天 10:33更新文章,每天掉亿点点头发…

源码精品专栏

几天前,高级架构师 在 上创建项目,介绍自己关于「如何成为更好的软件架构」的想法。该项目发布一天即获得 1.4K star,现在已有 3.8K star 量。

几年前有人问我:「你是怎么成为一名软件架构师的?」我们就此探讨了必备技能、经验,以及储备相关知识所需的时间和精力。除此之外,我也回顾了自己走过的路、使用或尝试过的技术,以及我从那些五花八门的工作中学到的东西。

架构师技术路线图

在进行深层次的探讨之前,我们先来看两个定义:

基于 Boot + Plus + Vue & 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

架构主要可以抽象成以下几个「层级」。不同层级所需的技能也不同。尽管对层级的分类有很多种标准,但是我最喜欢把架构分成 3 个层级:

有时候,架构师也被看做不同工作组之间的粘合剂。以下是三个例子:

基于 Cloud + + Nacos + + Vue & 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

要了解架构师的必备技能,我们得先知道架构师主要做什么。我认为架构师最重要的活动包括:

注意: 架构设计是一项持续性的工作,尤其是在敏捷软件开发过程中。 因此,我们会一遍又一遍地重复这些工作 。

为了完成上面说的那些工作,架构师需要具备一些特定的技能。从我的个人经验、相关书籍和讨论中,我们可以将其总结为以下 10 项技能:设计、决策、简化、编程、记录、沟通、估算、平衡、咨询、市场 。

接下来我将逐一介绍这些技能。

设计

首先最重要也最难回答的问题就是「什么是好的设计」。我将从理论和实践两个层面进行阐述。就我的经验来说,两者兼备才是最好的。那我们先说一下理论层面吧:

决策

架构师需要制定决策,指引项目甚至整个公司的正确方向。

优先级:有些决定非常关键,如果没有及早采取合适的解决方案,很有可能给日后造成无法解决的问题。这对维护人员来说来说是一场噩梦,或者更糟的,开发人员在这个决策制定之前无法继续工作。在这种情况下,先做一个「糟糕」的决定甚至比没有决定更好。但是在这种情况发生之前,你要知道哪些决定是应该被优先处理的。有很多方法可以做到这一点。我建议先看看加权最短作业优先(WSJF)模型,它在敏捷软件开发中被广泛使用。尤其是时间临界和风险降低,对这二者的度量是评估架构决策优先级的关键;

认清自己的能力:不要在能力范围之外的事情上做决定。这很重要,因为如果不加以考虑,它可能会严重破坏你作为架构师的地位。为了避免这种情况,你应该和同事明确自己的职责和角色。如果有不止一个架构师,那么你应当只负责当前负责的架构层级。作为一个较低层级的架构师,你应该为更高层级的架构提出建议,而不是做出决策。此外,我建议你经常和同事一起检查重要的决定;

评估多种选择:在做决定时,总是要列出多个选项。在我参与的大多数案例中软件架构师,都有不止一个可能的(优秀)选择。不好的选择主要有这两个特点:(1)看起来你没有完成好自己的工作;(2)有碍于作出正确的决定。定义度量后,你就可以根据事实(如许可证成本或成熟度)来比较各种选择,而不是通过直觉。这通常会让你做出更好、更可持续的决策。此外,将该决策推广到其他部门也会更容易。但是如果你没有正确评估选项,在最终讨论时你可能会失去一个重要的论据。

简化

时刻记住奥卡姆剃刀原则,也就是简单即正义。我对这个原则的理解是这样的:如果你的解决方案是在做了很多假设的基础上提出来的,那么你的方案很可能是错的,也很可能会变得极其复杂。这个时候你就应该减少(简化)一些假设,以获得更好的解决方案。

编程

即使作为企业级架构师(最抽象的架构层级)软件架构师,你仍然应该了解开发人员的日常工作。如果你不了解开发如何完成的,那你可能会面临两个主要问题:

开发人员不接受你的说法;

你不了解开发人员的挑战和需求。

记录

架构文档有时很重要,有时却不那么重要。例如,架构决策或代码指南是重要文档。在开始编程之前,通常需要初始文档,并且对此不断细化。因为代码也可以作为文档(如 UML 类图),所以有些文档可以自动生成。

参考链接:

欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢:

已在知识星球更新源码解析如下:

最近更新《芋道 2.X 入门》系列,已经 101 余篇,覆盖了、Redis、、ES、分库分表、读写分离、、、权限、、Dubbo、、、Kafka、性能测试等等内容。

提供近 3W 行代码的 示例,以及超 4W 行代码的电商微服务项目。

限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: muyang-0410