如何持续架构治理?我们和 ChatGPT 聊了一会?

在上周的 QCon 北京 2022 大会上,我和我的同事黄雨青一起分享了《组织级架构治理的正确方式》,以帮助开发人员对组织级架构治理体系全貌一瞥,并厘清治理工具的设计思路和核心功能内容。

结合我们在 ArchGuard 的探索经验,我们:

  1. 基于 “视点与视角” 构建架构治理的工具全景。以帮助组织了解架构治理的整体情况

  2. ”点-线-面” 策略。以帮助组织围绕关注点,设计举措,引导架构的演进。

  3. 建议以探索的方式构建量化工具。以使工具更加适用和实用。

  4. 工具构建的要点:定义问题、捕获数据、归纳指标。以保证工具构建的准确性和有效性。

考虑到我在 QCon 上讲的时候,可能有点紧张,所以并不是很完全,便想结合 ChatGPT 写一篇文章再介绍一下。

一、构建架构治理全景: “视点与视角、利益相关者”

在构建 ArchGuard 时,我们尝试过结合不同的前辈和他们架构理念,从而从不同的维度来构建治理的全景:

用途模型书籍
可视化C4 模型《程序员必读之软件架构》
分析架构体系结构视图《实用体系软件结构》
治理全景视点与视图、利益相关者《软件系统架构:使用视点和视角与利益相关者合作》

从起初单一的开发者 C4 视角,到现在利益相关者的视角,它是我们与不同利益相关者碰撞的结果。如下,是我们结合上述的《软件系统架构》一书,构建的全景图示例:

e4a60fa200a648d277a957e4b531d93c.png

它与我们在设计架构时类似,每个利益相关者都有自己的利益,要考虑的问题也有所不同。

诸如于,业务人员往往只考虑为什么响应速度慢,并不会关注于代码质量。

而与普通的开发人员相比,技术负责人、架构师会更关注于开发规范性。对于一个组织而言,我们需要考虑方方面面的因素,才能尽可能满足大部分人的需求。除此,量化的角度来说,我们需要将问题划到到时机 —— 创建态、设计态、开发态、运行态等不同的时态,以能更好地选择合适的工具。时机视不同的软件系统,也存在各种的差异。

二、“点-线-面” 策略

PS:本小节,由作者(Phodal)提供输入,最后由 ChatGPT 生成。

e7d67395b9475abcd98d7b98a927de00.png

“点-线-面” 定义

"点-线-面" 策略是一种规划和管理软件架构的方法。

  • "点" 指的是重点关注的领域,例如性能、安全等。我们需要通过工具来监控这些关注点。

  • "线" 指的是连接各个关注点的活动,例如评估、监控等。这些活动可以帮助我们了解当前架构的状况,并且帮助我们持续改进。

  • "面" 指的是整个架构,我们可以通过不断的评估和改进来实现架构的演进。

总的来说,"点-线-面" 策略可以帮助我们在关注重要领域的同时,通过持续的评估和改进来实现架构的演进。

“点-线-面” 核心思想

点-线-面 策略的核心思想是工具化、可视化和指标化。

  • 工具化:将架构治理的各种实践放入到开发流程中,通过工具化的方式简化实现。

  • 可视化:围绕着不同的关注点,通过可视化的手段(如可视化图形、报告等),对系统的架构进行监控。

  • 指标化:通过不断地对系统进行评估和度量,并通过指标化的方式来描述系统的表现。

这样的策略旨在帮助开发人员更好地了解系统的架构,并对其进行持续的改进。

“点-线-面” 示例

工具化、可视化、指标化方法的选择取决于具体需求和场景。它们可以通过一些已有的开源工具或者定制的工具实现。例如:

  • 工具化:代码检查工具(Linter),代码风格管理工具,代码生成工具等。

  • 可视化:系统架构图(例如 C4 model),应用性能监测工具(APM)、架构文档(如 Archimate)、可视化系统(如 Archimate Viewer)等。

  • 指标化:代码度量工具(如 SonarQube)、度量和报告工具(例如 InfluxDB + Grafana)等。

它们能帮助团队对软件系统架构进行标准化、可视化和指标化,以确保系统质量和一致性,并有序地演进。

其它工具

适用于架构治理的工具通常还包括:

  1. 架构建模工具:用于捕捉和模拟系统架构,帮助开发人员更好地了解系统的构建和行为。

  2. 架构文档工具:用于管理架构文档,使团队能够保持一致的架构治理标准。

  3. 架构模型工具:用于创建和管理架构模型,帮助团队更好地控制和管理架构的复杂性。

  4. 可视化工具:用于展示架构和系统信息,帮助团队更直观地理解系统状态。

  5. 架构审核工具:用于审核架构设计,帮助团队确保架构设计符合架构治理标准。

  6. 架构版本管理工具:用于管理架构版本,帮助团队跟踪架构的变化和演进。

不同的需求可能需要结合不同的工具,因此最终的选择应该在实际使用中评估和确定。

三、探索式架构工具开发

c0b2b0f1d3d8786805c1386c64cf00b6.png

由于业内对于架构治理没有统一的定义,所以我们将其持续架构治理模式。为了管理各种不确定性(诸如工作量无法估算、技术选择的不确定性、缺乏清晰的架构治理框架等),并快速交付包含架构治理模型、有价值的软件。我们采用了两个与共同业务成果相一致的工作流:

  • Discovery,进行试验、评估以确定所选技术的可行性和性能,以更好地分配开发资源。

  • Development,用于持续构建和发布成功的实验和其他产品功能,并结合迭代反馈。

它们的优点是(ChatGPT 说)

  1. 更好的风险管理:通过 Discovery 阶段的试验和评估,可以确定所选技术的可行性和性能,从而减少技术上的风险。

  2. 更快的交付:通过 Development 阶段的持续构建和发布,可以快速交付含有架构治理模型的有价值的软件。

  3. 更高的效率:通过 Discovery 阶段的试验和评估,可以更好地分配开发资源,从而提高开发效率。

  4. 更好的迭代反馈:通过 Development 阶段结合迭代反馈,可以快速修正问题,并不断提高产品质量。

  5. 更好的合作:通过与共同业务成果相一致的工作流,可以更好地沟通和协作,从而提高团队效率。

诸如于我们在构建 ArchGuard 代码中的 SQL Lint 分析功能时,开发 MyBatis 的 SQL 生成的工作量时,实际 = 评估 * 4

四、治理工具构建要点

40a09d7dacb05d14f74a56c53e85e872.png

对于架构治理而言,我们要考虑的是:

  1. 标准化能力/实践。通过寻找针对于大部分团队或场景都适用的方法和策略,提高团队的标准化能力,更好地推进架构治理工作。

  2. 持续分析与检测。持续探索和完善已有工具不支持的规范与标准化实践,保证架构治理的有效性和可靠性。

  3. 多维度度量。通过结合不同治理工具的数据和指标框架,构建适合于自身组织的指标,对架构治理的效果进行客观评价。

对应的,我们将其核心点总结为:

  1. 定义问题:首先,架构师需要定义架构治理的问题,诸如系统性能不佳、质量问题等。

  2. 捕获数据:其次,架构师需要捕获数据来了解系统的运行情况,例如,使用应用性能监测(APM)工具获取系统性能数据,使用代码度量工具(如SonarQube)获取代码质量数据等。

  3. 归纳指标:最后,架构师需要归纳指标来评估系统的情况,例如,评估系统的性能是否满足需求,评估代码质量是否符合标准等。

总之,通过定义问题、捕获数据、归纳指标等步骤,架构师可以更好地控制和管理系统的架构,从而提高系统的质量和性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/53170.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【AI提示】通过提供哪些具体要素,可以更好地引导chatGPT提供针对性、准确和完美的回答,以满足我的需求...

以下是几个AI副驾驶(ChatGPT、讯飞星火、阿里通义、Claude、Bing Chat)提供的回答: 一、ChatGPT 分析一下从你那得到完美回答所需提示的要素 从我那得到完美回答所需的要素可以归纳为以下几点: 1.清晰的问题陈述:一个…

blinker+esp8266-01s继电器模块+小爱同学,远程控制开关灯,有按键反馈

读者按照一下图片自行配置app #define BLINKER_WIFI #define BLINKER_MIOT_LIGHT #include <Blinker.h>#define LED 0 //定义继电器输入引脚为GPIO0//填入自己的信息 char auth[] " "; char ssid[] " "; char pswd[] " ";bool…

解决小米鼠标小爱同学无法登录问题

问题描述&#xff1a;点击左下角未登录&#xff0c;一直显示加载中&#xff0c;没有后续反应 解决办法&#xff1a;下载新的驱动 1、点击“关于” 2、点击“帮助中心”——>“常见问题”——>“使用语音、翻译等功能&#xff0c;需要下载驱动软件吗”&#xff1b; 访问…

raspberry Pi 连接蓝牙(小爱同学)

参数valueraspberry pi MOdel4B&#xff0c;4Gbbluetooth MOdel小爱同学writeTime2023年 2月11日 下午13&#xff1a;14分raspberry System ModelLinux raspberrypi 5.15.61-v8 #1579 SMP PREEMPT Fri Aug 26 11:16:44 BST 2022 aarch64 GNU/Linux 连接蓝牙 请在小爱同学app上…

小爱同学控制ESP8266点灯

小爱同学吃灰很久了&#xff0c;一直想接入小爱来控制些智能硬件&#xff0c;无奈小米的IOT开放平台只对企业用户开放。最近研究了点灯科技的物联网平台&#xff0c;软件硬件支持非常丰富&#xff0c;关键对于爱好者有免费的版本可以使用&#xff0c;爱了爱了有木有&#xff1f…

“小爱同学”商标遭抢注,小米上诉被驳回

本文转载自IT之家 IT之家 6 月 2 日消息 小米科技有限责任公司与知识产权局商标行政管理&#xff08;商标&#xff09;的案件于近日公布&#xff0c;“小爱同学”商标 37 类 建筑修理类曾于 2017 年被陈某注册成功&#xff0c;小米于 2018 年注册该商标被驳回后起诉知识产权局…

小爱同学控制灯 局域网

继电器--------i02 #include <ESP8266WiFi.h> #define LED 0 // 以上烧写程序配网方式可以换成微信扫码配网&#xff0c;等等&#xff0c;具体操作可查看博客相关例子 WiFiServer server(80); // 服务器端口号 void smartConfig() { WiFi.mode(WIFI_STA); Serial.printl…

有道CEO周枫:当我们谈论大模型时,应该关注哪些新能力?

作者&#xff1a;周枫 基于大语言模型技术的ChatGPT推出已经有4个月了&#xff0c;更多同类产品还在快速出现。比如&#xff0c;前天谷歌更新了Bard&#xff0c;将辅助编程能力支持的语言数量扩展到20种。 然而&#xff0c;对大模型技术的重要性也出现了质疑&#xff0c;前段…

手机里的PDF文件怎样发送给好友?

有时我们会通过手机将一些资料或东西拍成照片又以PDF格式进行保存&#xff0c;但却没有找到分享的方法&#xff0c;要怎样才能将手机里面保存的PDF发送给其他好友呢&#xff1f; 1、PDF制作 首先我们下载并安装极速PDF&#xff08;阅读器&#xff09;APP后&#xff0c;打开阅…

图片如何转PDF?这两种方法很好用

我们怎么把图片转换成PDF格式呢&#xff1f;在日常的工作和生活中&#xff0c;在不经意间我们的手机或者电脑就会存有大量的图片&#xff0c;我们想要将这些图片打包发送&#xff0c;用文件夹的方法还得压缩和解压&#xff0c;挨个发送又会很凌乱&#xff0c;有什么方法可以解决…

动画,及动画的基本使用

一.动画&#xff08;animation&#xff09;是CSS3中具有颠覆性的特征之一&#xff0c;可以通过设置多个节点来精确控制一个或一组动画&#xff0c;常用来实现复杂的动画效果。 相比较过渡&#xff0c;动画可以实现更多变化&#xff0c;更多控制&#xff0c;连续自动播放等效果…

动画开发 之 Lottie

什么是Lottie Lottie是Airbnb开源的一个动画渲染库&#xff0c;支持多平台&#xff0c;包括iOS、Android、React Native以及Flutter,还有其他平台的 React、Vue、Angular 等等 效果展示&#xff1a; 动画开发过程 在AE 中设计动画 打开AE 设计动画 通过 bodymovin 插件导出…

微信小程序:动画(Animation)

简单总结一下微信动画的实现及执行步骤。官方文档是这样说的&#xff1a;①创建一个动画实例 animation。②调用实例的方法来描述动画。③最后通过动画实例的 export 方法导出动画数据传递给组件的 animation 属性 图解实现的三步骤&#xff1a; 前两步是定义一个动画并设置都…

动画制作如何实现?看过来 | 万彩动画大师

飞碟说的专题视频曝光量巨大&#xff0c;并能通过广告植入等方式将流量转化为收益&#xff0c;可谓业界标杆。怎么做出飞碟说那类的MG动画&#xff1f;现在就为你揭秘飞碟说动画制作教程&#xff01; 1.确定脚本 何为脚本&#xff1f;所谓脚本就是视频的框架。脚本把控着整个作…

3D建模:现在国漫做出来的动画短片能有多细节?

《落 凡 尘》&#xff1a; 13个人历时8760小时&#xff0c;做出来的动画短片能有多细节&#xff1f; 随着3D技术的深入发展,3D建模被广泛的应用到各行各业中。今天我们以广美2020届动画专业的毕业设计作品为例&#xff0c;了解一下3D建模在动画设计中的运用。 一、人物设计 …

从拳头公司的CG动画讲起:如何让你的动画更有“电影感”

相信热爱游戏的小伙伴肯定知道拳头公司&#xff08;Riot Games&#xff09;&#xff0c;他们不仅成功开发和运营了英雄联盟&#xff0c;在音乐和动画CG这方面做的也是十分的出彩&#xff0c;甚至被网友们戏称为“被游戏耽误了的音乐公司”。这次小趴分享给大家的这篇文章&#…

如何制作 3D 动画短片?

制作3D动画短片真的很有挑战性&#xff0c;特别是如果您是从头开始的话。你需要一堆软件和一群艺术家来将你的想法变为现实&#xff0c;这可能非常昂贵且耗时。 如何制作一部3D动画短片&#xff1f; 在这篇文章中&#xff0c;我们将分解制作 3D 动画短片的过程。在文章的结…

短视频动画制作如何实现?这几个技巧告诉你 | 万彩动画大师

好的图文排版设计能给观众留下深刻的印象。有时候因为内容、构成要素的不同&#xff0c;需要采取多样的排版布局。那么&#xff0c;我们该怎么处理好文字、图片、文字与图片的关系&#xff0c;实现专业、美观的排版&#xff0c;让动画视频具有很好的视觉表现力呢&#xff1f; 以…

动漫配音是怎么制作出来的?除了自己配,还有一个小方法

动漫配音是怎么制作出来的&#xff1f;除了自己配&#xff0c;还有一个小方法 最近刷短视频的时候&#xff0c;经常可以看到一些用动漫声音配音的短视频&#xff0c;本来以为是剪辑动漫人物的声音后制作的&#xff0c;但是其实又有很多话并不是那个动漫人物会说出来的。而在经…

PC Animation 2.0,PPT程控动画开发平台

简介 PPT程控动画开发平台(Program-controlled Animation For PowerPoint)&#xff0c;简称PC Animation&#xff0c;是一款用编程语言生成数值动画的理工课程教学辅助软件。软件提供播放器/播放控件&#xff0c;可将数值交互动画嵌入到PPT文件中&#xff0c;随同PPT一并放映。…