Agile459のイベントで8月から「進化的アーキテクチャ」の読書会が始まりました。
1回目は1章と2章の最初の部分まで。
1章は概要の説明という感じで、ここだけでは何かを理解できるものではなさそう。適応度関数 Fitness Function とは何だろうというモヤモヤした雰囲気でした。
ここで、本と並行してウェブ上の情報を探してみました。
とっかかりは本書の手引きとなるウェブサイト。
Building Evolutionary Architectures
例えば、進化的UIを構築するための microfrontends pattern を説明するプレゼンテーションや Fitness Functions を分類するための各種ツールなど。
それと Fitness Function Katas という「カタ」が紹介されています。この「カタ」を見ていくのも良さそうに思いました。
以下、一部を抜粋。
Avoid Complex Code
新卒やインターンを雇った際のコードレビューなど、長すぎるメソッドや特定のクラスに依存、結合度の問題。
Break On Upgrade
バージョンを X + 1 にアップグレードした際に、バックポートした機能は影響を及ぼさない(無効)になること。
Degrade Gracefully
サイトの利用が増加した際に、極端なパフォーマンスの低下を起こさないこと。DevOps。
Doc Sync With API
例えば外部のベンダーがオーダー状況をAPIで確認する場合など、新たな機能を追加した時点でAPIのドキュメントが古くなってしまう。ドキュメントは現在のコードとマッチしていないといけない。
などなど。
これまで TDD のイベントなどでコードベースのリファクタリングを学んできましたが、このような適応度関数を見てみると、システム全体のアーキテクチャをベースとして適応度関数を用いてリファクタリングができる状態を維持することを一つの目的としているように思いました。
次回の読書会はこちらです。ご興味があればお気軽にご参加ください。