ArchUnit

ソフトウェアアーキテクチャの基礎読んでいて、適応度関数を提供してくれるライブラリがある?
とのことなので気になって見てみる。

ゴール
- FSDを用いたプロダクトにおいて有用な適応度関数の有無を確認する


ArchUnit is a free, simple and extensible library for checking the architecture of your Java code using any plain Java unit test framework.
ArchUnitはライブラリ。Javaで利用できる。(まぁ、TSで使いたいので使えないのはわかる。ただ適応度関数やそれをどのように利用するかが見れればいいので一旦気にしないでいく)

説明だと「依存関係の確認」「循環参照の検知」ができそう。
ただこれってJavaだとmulti moduleで対応できるんじゃなかったっけ。。
gradleだとできそう。


ただこれってJavaだとmulti moduleで対応できるんじゃなかったっけ。。
対応できる。しかし目的が異なる。
multi moduleはビルドの効率化を目的としておいており、ArchUnitの目的である「コードのアーキテクチャを定義する」とは異なる。
また、導入のコストが異なる。
multi moduleはモジュール構成に関わるため導入コストが高い。一方でArchUnitはテストコードの追加を行えば良いため比較的容易に導入できる(はず)


モチベーション
はじめに作ったアーキテクチャは時間が経つにつれて汚れていくものだと、経験則でみんな知ってると思う
それを監視するための術があったらいいよね

layered architectureとかはこんな感じで適応度関数の作成ができる

適応度関数の種類知りたかったけどそんなに目新しいものはなさそう。。

いや、メトリクスが取れるみたい