ライブラリとフレームワーク
進化的アーキテクチャの「6.5.8 ライブラリのアップデートとフレームワークのアップデート」では、ライブラリとフレームワークは以下のように定義している。
- ライブラリ = 開発者のコードが呼び出すもの
- フレームワーク = 開発者のコードを呼び出すもの
この定義に沿うとReactなどもフレームワークになる。
「そんなの定義してどうするんだ?」と最初は思ったが、アプリケーションのコードへの結合の少なさからライブラリの方が好ましく、フレームワークの場合は変更の影響を受けやすいのでバージョンアップを積極的に行ったほうがよいと書いてあり、なるほどとなった。
Renovateなどの登場によって依存しているライブラリ・フレームワークの更新作業は比較的に楽になってきているが、この定義を使うことで重点的にメンテする対象を絞り、メンテ工数を下げるのに役立つ。また、フレームワークのバージョンがどれくらい古くなっているかを監視して技術的負債を可視化したり、「メジャーは最優先で対応、マイナーはNバージョンで対応」のようなルールを決めてメンテすることで負債が溜まりにくい仕組みづくりにも役立ちそう。