クラスとしてのControllerは別にいいんだけど、ディレクトリとしてのcontrollers/ディレクトリは微妙で、そこにFormもServiceもおきたいので、applicationとかにしたいと思ったことはある
Rails だと app/application になるけどw
こんな感じの構成にしたいんですよ
app/application/articles/controller.rb
app/application/articles/service.rb
app/application/articles/register_form.rb
app/application/articles/updatte_form.rb
app/application/articles/index_table.rb
まあ、なんならview templateもここに入れたいけど、HTMLを書くのはエンジニアじゃなくてデザイナーみたいなこともあるから app/views だけはまあいっかーっていう感じ(経験的にだけど
前にも同じこと言ったけど、HogeControllerとHogeServiceを同じモジュールとして扱ったほうが高凝集であって、HogeControllerとFugaControllerをまとめる意味はあまりないと思うんですよ
凝集度の観点からも、例えばuserServiceとinvoiceSerivceが同じパッケージ下にあっても低凝集ですしね。
コンポーネントの種類ごとに名前空間が定着したのはMVC2アーキテクチャなWEBアプリケーションが流行してからだった気がしないでもない。
それ以前はふわっとした機能レベルの名前空間を持つ構造のシステムも多かった気がする(単に設計の概念が無かった可能性もある)。
ドメイン的な関心事で(大雑把な)アプリケーションを構築してしまうのは、DjangoやFlaskのようにプロジェクトの下に複数のアプリケーションが配置される考え方が近いだろうか。
個人的にはコンポーネントごとに名前空間を切る方が好きだが(ドメイン的な関心事はアプリケーション自体を分割してマイクロサービス化したい)。