继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

雷达哔哔哔 - #4-ArchUnit

慕姐8265434
关注TA
已关注
手记 1147
粉丝 221
获赞 1064

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


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP