ちょびっとでもレイヤーっぽくなりそうだったらルールを設ける
もちろん規模次第でどこまで頑張るかは変わるが、
関数、メソッドの粒度
命名規則
ファイル分割の単位
くらいは必ず決めておくのが良さそう。
最初はただディレクトリ切っただけのつもりが、いつのまにかレイヤー化してたみたいなことは起きうる。
最初の想定以上にレイヤー内の処理が多くなって、気がついたら無秩序になってたみたいなことが起きうる。
背景
プレゼンテーション層にてgraphql server用の自動生成モデルと、ドメインモデルをマッピングしたかった
その処理をgraphql resolverに直接書き込むのは再利用性や責務の分離のためにやりたくないため、専用のmappingディレクトリを作った
最初は1つのファイルがそこにあるだけだった
後につづけで、真似る処理が増え、気がついたらmappingディレクトリが必ずそこを通過する閉鎖レイヤーになってた
ルールを定め忘れてしまっていたので、DRYじゃなかったり、粒度がバラバラだったりと無秩序になってしまった