为了账号安全,请及时绑定邮箱和手机立即绑定

雷达哔哔哔 - #4-ArchUnit

标签:
Kubernetes

1. 推荐度:

ASSESS[2018.05 ]

2. 所属象限:

Tools

3.  关注问题:

  • 如何在Java系统架构下,应用架构适应度函数(Architectural fitness function),来驱动架构演进?

  • 如何在Java系统架构下,做系统演进后架构守护,减缓系统腐化?

4. 解读:

在上一期我们介绍了架构适应度函数(Architectural fitness function),也提到了ArchUnit,这期就来详细介绍一下。

ARCHUNIT是用来检查架构特征的Java测试库,比如包与类的依赖关系、注解验证、甚至层级一致性。它可以在你现有的测试方案中,以单元测试的方式运行,但目前只能用于Java架构。

ArchUnit测试套件可以合并到C(I 持续集成)环境或部署流水线,使我们很容易地以演进式架构的方式实现适应度函数。

我们来看看ArchUnit都能做些什么:

  • Package Dependency Checks


    webp

  • Class Dependency Checks


    webp

  • Class and Package Containment Checks


    webp

  • Inheritance Checks


    webp

  • Annotation Checks


    webp

  • Layer Checks


    webp

  • Cycle Checks


    webp

想要了解更多,可以移步【官方用户指南】

最后不得不说一下,架构优劣不取决于是否遵循某一个标准,而是应该取决于能否支撑业务的需要。约束越强,反而会导致灵活度降低,架构就会越加僵硬,缺少适应性,产生冗余。

所以工具本身只是赋予了我们约束架构的能力。但是能否正确地使用这种能力通过Fitness Function和演进式架构来促进架构对于业务的匹配度和适应度;还是截然相反的错误地滥用这种能力成为所谓的管理手段或是技术上的噱头,最终导致系统架构僵化,无法支撑业务需要,决定权还是在我们架构师手中。

不要过度神话工具,也不要让工具替我们背锅,工具只是工具,工具本身没有对错。



作者:王健_TW
链接:https://www.jianshu.com/p/6402a2e1f9a7


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消