Colocation
概念的に近いものが、物理的に近い場所にあるとわかりやすい
参考
場所が離れていると何が辛いか(docsを例に)
同期するのが難しいので保守性が悪い
コメントに関しては、近くに置かれていてもメンテされないがmrsekut.icon
実装とdocsが乖離していく
実装中に、別の場所にdocsがあることに気付け無い
重要な情報を見逃す
逆に、重要な情報が追記もされない
では複数のCompnentをまたがるテストはどこに書けばいいか?
それらをまとめたディレクトリの親のところに置けばいい
内部で場所が変わってもテストを修正する必要はない
離れている例
src/内のコードの説明が、別ディレクトリのDOCUMENTATION.mdあると辛い
HTMLとJavaScript
jQuery時代はファイルが分かれていた
ファイル内でもscriptタグとで別れている
Reactなら同じ場所になる
HTMLとCSS
別ファイルに別れている
CSS in JSなら同じ場所になる
テストコード
src/とtest/というディレクトリを分けて、src/の構造をtest/にマッピングしているパターン
どの実装がテストがあるのか分かりづらい
utility関数
汎用関数をutils/に入れるパターン
どこにも使われなくなっても、それに気づかず、その関数とテストコードは残り続けるかもしれない