ArchGuard is a architecture governance tool which can analysis architecture in container, component, code level, database, create architecture fitness functions, and test for architecture rules.
Chinese: ArchGuard 是一个架构治理工具,用于管理和分析组织级别的软件架构。 结合 C4 模型,进行依赖分析,含容器级别(服务级别)、组件级别(/模块级别)、代码级别、数据库级别等。 同时,可以创建系统的架构适应度函数,度量系统的各项指标。
Components:
Screenshots:
特性(Features):
- 容器级别依赖分析(当前支持 HTTP API)。API 生产者支持语言:Java、Kotlin、C#,API 消费者支持语言:TypeScript/JavaScript、Kotlin、Java 等。
- HTTP API 使用清单、调用清单
- HTTP API 依赖可视化分析
- 五大维度架构质量评估以及对应的指标分析。
- 体量维度。过大的包、类、方法、模块
- 耦合维度。枢纽模块、包、类、方法,数据泥团、过深继承、循环依赖
- 内聚维度。霰弹式修改、数据类
- 冗余维度。冗余元素、过度泛化
- 质量维度(Java)。包含休眠的测试、被忽略的测试、缺乏校验的测试、包含繁杂判断的测试、包含冗余打印的测试、静态方法
- 代码坏味道分析。常见的那些。
- 还有其它相关的总览
- 代码间依赖分析。支持级别模块、包、类、方法四个级别。
- 代码行数分析。
- 系统不稳定性模块分析。
- 数据库地图(进行中)
- 精准测试/变化分析(进行中)
Features:
- C4 analysis
- container dependency analysis. (level: HTTP API)
- basic fe/be call
- RestTemplate for backend to backend
- GraphQL
- Kong Gateway
- component (module) dependency analysis.
- code dependency analysis. (level: pa``ckage, class, method)
- database dependency analysis
- container dependency analysis. (level: HTTP API)
- Scanner integration
- PMD
- Git with jGit
- HotFile
- Java/Jvm only
- JVM Bytecode (need to rewrite with License issue)
- CheckStyle
- Badsmell by DesigniteJava
- Test Badsmell by Coca (Java only)
- TypeScript with Chapi
- Kotlin with Chapi
- Git Hot File
- System Info
- Custom build command
Features/Languages | Java | Python | Go | Kotlin | TypeScript | C | C# | Scala | C++ |
---|---|---|---|---|---|---|---|---|---|
http api decl | ✅ | 🆕 | 🆕 | ✅ | ✅ | 🆕 | 🆕 | 🆕 | 🆕 |
syntax parse | ✅ | ✅ | ✅ | 🆕 | ✅ | 🆕 | 🆕 | ✅ | 🆕 |
function call | ✅ | 🆕 | 🆕 | ✅ | |||||
arch/package | ✅ | ✅ | ✅ | ||||||
real world validate | ✅ | ✅ |
- languages:Kotlin
- frameworks:Spring Boot,JDBI
- test frameworks:Junit5,Spring Boot Test,Flyway,H2
- build tool:Gradle
- data storage:MySQL, InfluxDB
-
create database:
create database archguard default character set utf8mb4 collate utf8mb4_unicode_ci;
-
run:
./gradlew bootrun
docker-compose up
@2020~2022 Thoughtworks. This code is distributed under the MPL license. See LICENSE
in this directory.