/note/tech

プログラムの「アーキテクチャに関するドキュメント」は面倒でも書くべき、ではどのように書くべきか?

Kladov氏はオープンソースプロジェクトの開発に携わる中で、「プロジェクトのアーキテクチャに対する知識量」によって開発スピードに大きな差が生じると気づいたとのこと。アーキテクチャに関する知識がない開発者にとって、大量のコードは「バラバラなデータ」と同じで読み解くのに時間を要します。しかし、「どこに何があるか」を示すアーキテクチャの知識があれば、もはやコードはバラバラなデータではなくなるとKladov氏は指摘。

ARCHITECTURE.mdの中心となるのは、「プロジェクトの全体像」とコードのつながりを表した「コードマップ」です。コードマップはそれぞれのコードが「どんな処理をするのか」「どこにあるのか」「どのように関わり合っているのか」を記述するにとどめ、詳細な説明については別のドキュメントにまとめるべきとKladov氏は指摘しています。

また、Kladov氏は「ARCHITECTURE.mdの内容はコードの変更に影響を受けない内容にすべき」ともコメント。数年単位の見直しで済むような低メンテナンスコストが重視されており、「ファイルやモジュールはリンクを作成せず、名称で検索できるようにする」といった具体的な方法も示されています。他にも「プロジェクトで不変とされる部分」「レイヤーやシステムの境界」といった、コードを読むだけではわかりにくい部分を明示することも大切だとKladov氏は語っています。