0

0

国内首个开源架构治理平台 ArchGuard,专治分布式场景下各种不服

雪夜

雪夜

发布时间:2025-07-18 11:22:24

|

224人浏览过

|

来源于php中文网

原创

在过去十年中,软件架构经历了从单体 mvc 架构到分布式与单体架构并重的显著变化。然而,许多软件开发人员依然停留在单体思维模式,导致了所谓的“分布式单体”现象。

架构治理变得极为迫切。

为什么选择 ArchGuard?作为架构师或软件开发人员,我们在架构治理中面临诸多挑战,包括:

  • 设计与实现的差异。设计的软件架构与实际实施的架构之间存在巨大差距,这些差异往往在实施一段时间后才会被发现。
  • 代码量巨大,难以识别。由十几个或几十个微服务构建的系统,其错综复杂的关系难以识别。
  • 没有规范或不遵守规范。作为资深开发人员,我们制定了规范,但团队成员往往不愿意遵守。
  • 架构模型的各个层级可能出问题。例如,服务间 API 耦合、代码间耦合、数据库耦合等。
  • 缺乏丰富的经验。

为了应对这些挑战,我们需要一个平台来帮助解决这些问题。因此,结合我们过去的软件开发和重构经验,Thoughtworks 的咨询师们从 2020 年(疫情开始时)开始开发架构治理平台 ArchGuard。如今,它已开源。

GitHub:https://www.php.cn/link/fbe6d597571bb896e706cc540d4027d9

ArchGuard 能做什么?ArchGuard 基于业内主流的 C4 架构模型进行分层设计。首先,我们需要创建一系列系统组件,只需配置好对应的语言和 GitHub 地址,就可以对代码进行扫描。

随后,可以查看单个项目的总体情况,包括代码提交历史和不稳定代码模块等信息:

国内首个开源架构治理平台 ArchGuard,专治分布式场景下各种不服

还可以查看 API 使用和提供情况:

国内首个开源架构治理平台 ArchGuard,专治分布式场景下各种不服

ArchGuard 通过体量维度、耦合维度、内聚维度、冗余维度、测试维度五大维度对架构进行评估,并使用一系列指标分析系统状况:

国内首个开源架构治理平台 ArchGuard,专治分布式场景下各种不服

系统依赖分析:对于微服务,ArchGuard 可以自动化地分析不同服务之间的依赖关系,并将这种依赖关系可视化:

国内首个开源架构治理平台 ArchGuard,专治分布式场景下各种不服

同时,系统能自动分析哪些 API 被使用,哪些未被使用:

国内首个开源架构治理平台 ArchGuard,专治分布式场景下各种不服

数据库依赖分析:对于数据库间的依赖问题,ArchGuard 可以解析代码中的 SQL 调用,并尝试性将这种依赖关系与不同的微服务相匹配,进而分析哪些服务在数据库层是耦合的:

极简智能王
极简智能王

极简智能- 智能聊天AI绘画,还可以创作、编写、翻译、写代码等多种功能,满足用户生活和工作的多方面需求

下载

国内首个开源架构治理平台 ArchGuard,专治分布式场景下各种不服

代码分析:开发团队可以在 ArchGuard 上查看项目中的模块、包、类、方法之间的依赖关系:

国内首个开源架构治理平台 ArchGuard,专治分布式场景下各种不服

变更影响分析:结合看板后,ArchGuard 可以自动化地查找每次代码变更的潜在影响范围,帮助测试人员精准地对变更进行测试:

国内首个开源架构治理平台 ArchGuard,专治分布式场景下各种不服

自动化技术债务管理:在配置了团队功能后,ArchGuard 还可以自动生成架构改进点,创建技术债务到团队看板上,自动分配团队成员,追踪架构演进。

ArchGuard 是如何实现这些功能的?ArchGuard 内置两个代码分析引擎:字节码分析和源码分析。

字节码分析通过分析 JVM 中的字节码来分析代码中的依赖关系。源码分析通过分析生成编译语言的语法树,生成特定的数据结构。ArchGuard 使用 Modernizing 开源的 Chapi 代码分析引擎(https://www.php.cn/link/babf045d8f8f20b3da6ea66dc4a41835 TypeScript/JavaScript、Kotlin、Java、C# 等。如下表所示:

Features/Languages Java Python Go Kotlin TypeScript C C# Scala C++ http api decl ✅ ✅ ✅ ✅ ✅ ? ? ✅ ? syntax parse ✅ ✅ ✅ ? ✅ ? ? ✅ ? function call ✅ ? ? ✅ arch/package ✅ ✅ ✅ real world validate ✅ ✅ expression (TBD)

结合 ArchGuard Scanner(https://www.php.cn/link/3b21db6d1fb73d3868c096e723c07778 7 大扫描工具

  • scan_git:分析 Git 提供的历史
  • scan_coverage:分析代码测试覆盖率
  • scan_bytecode:字节码分析
  • scan_sourcecode:源码分析
  • scantestbadsmell:测试代码坏问题
  • collector_ci:收集 CI/CD 中的历史记录
  • collector_kanban:收集看板中的历史记录

CHANGELOG 4.1.0

经过一系列客户验证后,我们将 ArchGuard 开源了。当前版本的 CHANGELOG 如下:

Bug Fixes

  • Java/Kotlin/C#/TypeScript/JavaScript 最新语法支持
  • 服务自动聚类拟合不准确
  • 服务地图线条重叠
  • 千万级别数据闪退

Features

  • 功能扩展:架构模式推荐
  • 功能扩展:架构指标自定义配置
  • 功能扩展:视图插件接口开放
  • 功能扩展:视图多格式导出(png/pdf)
  • 添加视图:数据流转地图
  • 添加视图:组织架构映射图
  • 视图优化:目标架构偏移图
  • 添加指标:架构不稳定性
  • 添加指标:微服务调用耦合度
  • 评估优化:系统安全等级评估
  • 评估优化:系统可扩展性评估
  • 评估优化:服务化系数评估
  • 评估优化:目标架构拟合程度
  • 基础支持:目标架构可支持第三方工具插件化接入
  • 基础支持:更多编程语言分析支持 Python/Go/Perl/Swift

Breaking Changes

  • Scanner 公共接口更新

欢迎下载代码体验,GitHub:https://www.php.cn/link/fbe6d597571bb896e706cc540d4027d9

ArchGuard:守护架构,放权代码。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

44

2026.02.13

TypeScript全栈项目架构与接口规范设计
TypeScript全栈项目架构与接口规范设计

本专题面向全栈开发者,系统讲解基于 TypeScript 构建前后端统一技术栈的工程化实践。内容涵盖项目分层设计、接口协议规范、类型共享机制、错误码体系设计、接口自动化生成与文档维护方案。通过完整项目示例,帮助开发者构建结构清晰、类型安全、易维护的现代全栈应用架构。

184

2026.02.25

Kotlin协程编程与Spring Boot集成实践
Kotlin协程编程与Spring Boot集成实践

本专题围绕 Kotlin 协程机制展开,深入讲解挂起函数、协程作用域、结构化并发与异常处理机制,并结合 Spring Boot 展示协程在后端开发中的实际应用。内容涵盖异步接口设计、数据库调用优化、线程资源管理以及性能调优策略,帮助开发者构建更加简洁高效的 Kotlin 后端服务架构。

121

2026.02.12

数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

1110

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

340

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

380

2024.02.23

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

2068

2024.03.06

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

379

2024.03.06

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

1

2026.03.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 10.2万人学习

Git 教程
Git 教程

共21课时 | 4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号