首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏代码洁癖患者

    代码检查又一利器:ArchUnit

    什么是ArchUnitArchUnit的官方网站是 https://www.archunit.org 官网中原话介绍是 ArchUnit is a free, simple and extensible library for ArchUnit的简单绝对不是空谈,如果你是maven项目,只需要在pom.xml文件中添加如下依赖: <dependency> <groupId>com.tngtech.archunit</groupId > 如果你是Gradle项目,使用起来同样非常简单 dependencies { testCompile 'com.tngtech.archunit:archunit:0.8.0' } 当你添加了依赖以后 我们说ArchUnit使用起来非常简单,如果需要测试,对maven项目来说只需要执行命令 mvn test 而对于Gradle项目来说,只要执行命令 gradle test 总结 ArchUnit看起来是一个很酷的三方库

    91710发布于 2020-03-10
  • 来自专栏软件开发-青出于蓝

    代码质量之Archunit的使用 原

        注:开发的编辑器: Intellij Idea,JDK版本是JDK8 Archunit是什么,官网的英文介绍很好,建议阅读原文,"ArchUnit is a free, simple and ; import com.tngtech.archunit.junit.ArchTest; import com.tngtech.archunit.junit.ArchUnitRunner; import com.tngtech.archunit.lang.ArchRule; import org.junit.runner.RunWith; import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes 图2.1      比如我们想在Archunit扫描时,忽略DemoInterface和AnnotationDemo,那么在resources下建个"archunit_ignore_patterns.txt 图3.1  运行List-2后报错信息 4.官方的Archunit example     可以在Github上看Archunit的例子,Github地址: https://github.com/TNG

    2.6K20发布于 2019-04-15
  • 来自专栏Throwable's Blog

    项目架构级别规约框架Archunit调研

    引入依赖 一般来说,目前常用的测试框架是Junit4,需要引入Junit4和archunit: <dependency> <groupId>com.tngtech.archunit</groupId 出于这个原因,ArchUnit提供了Lang层的API,它提供了一种强大的语法来以抽象的方式表达规则。 一般编码规则,入口是com.tngtech.archunit.library.GeneralCodingRules。 PlantUML组件支持,功能位于包路径com.tngtech.archunit.library.plantuml下。 小结 通过最近的一个项目引入了Archunit,并且进行了一些编码规范和架构规范的规约,起到了十分明显的效果。

    1.1K10发布于 2020-06-23
  • 来自专栏孟君的编程札记

    ArchUnit, 代码结构规范检查神器,你值得拥有

    本文将向大家介绍一个代码结构检查的神器 - - ArchUnit。在正式介绍ArchUnit之前,先请大家思考一下: 为什么需要对代码结构进行检查或者测试? from -- https://www.archunit.org/userguide/html/000_Index.html 从上述ArchUnit的官网描述可以看出,ArchUnit是一个免费、简单和可扩展的库 ArchUnit提供了包和类之间依赖关系、循环依赖等方面的检测。ArchUnit的主要目标是使用纯Java的单元测试框架来达到自动化检测代码结构和编码规则。 添加ArchUnit依赖 <dependency> <groupId>com.tngtech.archunit</groupId> <artifactId>archunit</artifactId classResolver.args=com.tngtech.archunit.core,com.tngtech.archunit.base # Should ArchUnit include the

    5.1K20发布于 2019-10-28
  • 来自专栏ThoughtWorks

    ArchUnit,架构守护神 | 雷达哔哔哔

    雷达描述: ArchUnit是一个基于 Java 的测试库,用于检查代码的结构特性,如包和类的依赖关系、注解验证,甚至还能检查代码分层是否一致。 我们很喜欢 ArchUnit 的地方是,它可以在现有的测试环境中以单元测试的方式运行,尽管只支持基于 Java 的架构。 在CI环境或部署流水线中集成ArchUnit 测试套件,可以方便地在演进式架构中实现架构适应度函数。 ArchUnit测试套件可以合并到持续集成环境及部署流水线中,使我们可以更容易地利用架构适应度函数实现演进式架构。 工具: ArchUnit

    2.3K20发布于 2018-12-10
  • 来自专栏京东技术

    通过自动化单元测试的形式守护系统架构

    Tech 导读 本文从Archunit的比较优势、功能和验证范围介绍、引入方式多方面进行阐述,介绍了Archunit在降低或及早发现架构腐化现象的发生,保持统一的系统架构约束中的作用。 基于Archunit可以自动化检测: 循环依赖 包的包含关系 类的依赖关系 类和包的包含关系 继承关系 注解 Archunit和代码质量分析工具的关系如下图所示,二者都可以对代码进行分析,在功能覆盖上存在一定交叉 图2.Archunit和代码质量分析工具的关系 Archunit不能解决所有的架构属性的约束自动化验证,其主要侧重于系统的演进性、可维护性、可测试性、可解释性等,也可以对耦合度、命名规范等进行验证。 图3.Archunit的验证范围 04 引入Archunit 理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值 Archunit不能做什么: 处理文件 测试所有架构属性 只支持JVM语言 SOURCE注解 需要导入大量代码,加入CICD流水线后的时长影响 不能保证自身的维护性 Archunit对架构约束的自动化检测极有价值

    64720编辑于 2023-08-22
  • 来自专栏phodal

    “分布式” 开发规范治理​

    针对于 Java 架构,我们有:ArchUnit 针对于 API,我们有:API Linter、Spectral 针对于数据库,我们有:SQLFluff 于是,在单体系统里,上述的一系列情况得到了有效的改善 关注点 工具示例 创建态 代码规范内建、规范执行机制、分层规范等 应用脚手架 开发态 代码规范 CheckStyle 的 Intellij IDEA插件 测试态 代码规范、分层架构、API 规范等 ArchUnit 去年,在设计 Guarding 这个多语言的架构守护工具时,其与 ArchUnit 相比的场景是:多语言、多代码库。 与 ArchUnit 相比,Guarding 推荐的这种守护方式是: 以 CLI 的方式运行。无需额外的编码工作,不担心系统被破坏。 配置在持续集成中。 多系统多语言守护。

    97610编辑于 2022-03-08
  • 来自专栏phodal

    架构守护代码化:架构文档即测试

    早先呢,我只是因为使用 Java 编写的 ArchUnit 不支持其它语言,而在其它语言的生态里呢,也没有这样的合适的工具。 它设计了一套外部 DSL,其借鉴于 ArchUnit 设计的内部 DSL 语法。 架构的腐化:为什么我们需要架构守护? 观察软件架构在开发过程中的变化, 是一件非常有意思的事情。 架构测试的局限性 这是一个老生常谈的问题,所以诸如于在 Java 世界里,人们设计出了 ArchUnit 这样在的工具来守护系统的架构。架构测试作为架构的文档,缺少易读性等等的问题。 如 ArchUnit 设计的内部 DSL 语法: classes().that().haveSimpleNameStartingWith("Foo") .should().resideInAPackage

    73330发布于 2021-07-15
  • 来自专栏phodal

    Guarding:开源的多语言架构守护工具

    ArchUnit 的启发,借助于易于理解的 DSL,来编写守护规则。支持 Windows、macOS、GNU/Linux 系统。 ::function.name contains(""); 从上面的示例里,你可以发现 : 如果你熟悉 ArchUnit 的话,就能很快的上手 Guarding 的编写。 包路径解析 值得一提的是包路径解析,所以我们的包解析方式参考的是 ArchUnit 的设计方式。

    1.1K20发布于 2021-07-15
  • 来自专栏深度学习与python

    Java 近期新闻:OmniFish 简介、Oracle 加入 Micronaut 基金会、OpenJDK 升级

    Micronaut 基金会、Eclipse Vert.x 4.3.4、JobRunr 5.3、Apache Tomcat 9.0.68、Apache Camel 3.19、Apache Tika 2.5、ArchUnit ArchUnit TNG 科技咨询公司发布了 ArchUnit 1.0.0 版本,这是一个可扩展的开源库,用于检查 Java 代码的架构,检查包和类、层和片之间的依赖关系,并检查循环依赖关系。 该版本带来了多项增强,包括:不再将 archunit_ignore_patterns.txt 文件中定义的忽略规则与 FreezingArchRule 类一起填充 ViolationStore 接口的实例

    2.4K30编辑于 2023-03-29
  • 来自专栏斑斓

    持续测试的重要性

    03 包的依赖检查 在为中国香港一家客户提供架构评审咨询时,我引入了ArchUnit工具,它支持我们以编写单元测试的方式对系统的架构指标——包的依赖关系——进行检查: 使用该工具非常方便,直接在maven 加入它的依赖,之后就可以像编写单元测试那样调用ArchUnit的API对包的依赖关系进行检查。

    72420编辑于 2023-03-23
  • 来自专栏phodal

    代码分析与自动化重构工具集:Modernizing

    架构守护 编写架构的守护规则,以对于系统的架构进行守护,用的工具有:ArchUnit、ArchGuard 等。 在参考了 ArchUnit 的语法之后,我们也设计了一个多语言的架构守护工具:Guarding。

    1.8K30编辑于 2022-03-04
  • 来自专栏ThoughtWorks

    Architectural fitness function,架构你好我也好 | 雷达哔哔哔

    工具: ArchUnit:一个可以测试Java系统架构本身的测试工具,例如所有的Service只能被Controller或是Service调用的测试如下: ?

    78710发布于 2018-12-06
  • 来自专栏后端码事

    dubbo 微服务

    localhost:8081/druid/index.html >* ehcache 二级缓存配置 xml 注解 >* ftp服务;Excel相关处理;jmx监控MBean >* 测试;ArchUnit

    47310发布于 2020-09-11
  • 来自专栏人工智能

    📌 深度搜索实战:3天完成原本1个月的代码重构

    告警阈值建议 链路追踪 SkyWalking 接口耗时、异常率、依赖拓扑 P99>200ms 代码热力 Arthas 方法调用频次、参数分布 空参数占比>30% 依赖分析 ArchUnit 架构分层合规性检查 跨层调用次数>5次/分钟 // 用ArchUnit防止架构腐化示例 @ArchTest static final ArchRule service_layer_should_only_be_accessed_by_controller

    39210编辑于 2025-04-18
  • 来自专栏phodal

    如何设计领域特定语言,实现终极业务抽象?

    ArchUnit 中提取架构规划上的设计便是: classes().that().resideInAPackage("..foo..") .should().onlyHaveDependentClassesThat 如下是我在设计 Guarding DSL 时,从 ArchUnit 提取的一小部分关键信息: package: dependOn class: implement annotation

    1.8K52发布于 2021-06-10
  • 来自专栏phodal

    云研发 IDE Uncode:演示版发布(欢迎加入开发)

    Uncode # status: backlog Feature: 架构守护 DSL 设计 作为一个架构师,我希望在设计通过类似于 ArchUnit 这样的 DSL 来设定调用规则等。

    83160发布于 2021-05-11
  • 来自专栏人工智能应用

    代码架构优化:构建可维护、可扩展的软件系统

    架构度量与持续改进 关键度量指标 代码复杂度:圈复杂度、认知复杂度 依赖质量:耦合度、抽象程度 测试健康度:覆盖率、测试执行时间 技术债务:代码异味数量、重复率 持续改进流程 架构守护工具 ArchUnit

    42910编辑于 2025-08-01
  • 来自专栏phodal

    编码数据集生成框架 UnitGen 0.4.0:代码文档生成、测试代码生成

    其它 在外部测试时,我们使用了 ThoughtWorks 开源项目作为核心,并结合一些框架的官方 examples,诸如 Spring Data Examples, ArchUnit Examples,

    48810编辑于 2024-01-10
  • 来自专栏蛮三刀的后端开发专栏

    代码复杂度的代价远比你想象得大

    ArchUnit:架构层面的依赖约束ArchUnit 允许你用 Java 代码定义架构规则,防止模块间非法依赖。5. SonarQube 团队级质量管控 可视化 + 质量门禁IntelliJ 个人开发阶段 实时提示 PMD / CheckstyleCI 自动化检查规则驱动 ArchUnit

    38310编辑于 2025-11-02
领券