日頃思ってることDDDでは全てのビジネスロジックはドメインクラスに、とのことなので当然プログラムの肝はドメインクラスなのですが、コードの読みやすさは8割がたアプリケーションレイヤで決まると思っています。Springで言えば、Controllerから呼ばれるServiceクラスの、はじめに呼ばれるメソッドです。ここがいかにスッキリ、整然と、必要なことのみが書かれているかで、プログラム全体の可読性が決まると言っても過言ではないと思います。具体的には、このメソッドの行数が10行を超えていたら、既に随分怪しい香りがしている...と思います。APIを想定した時に)、そのURLに対して実行されるふるまいが書かれる箇所であり、普通そのふるまいは、せいぜい3-4ステップで説明できるからです。出来上がった結果を返却と言った感じです。(細かく見れば内部はもっと複雑でしょうが、この程度の長さで説明できないふるまいであれば、そもそも一つのURLで扱うには重すぎです)さて、例えば上記のように4ステップで表されるふるまいであれば、アプリケーションレイヤの(最初のメソッドの)コードは理想的には4行で書かれるべきです。人がコードを通しで読む場合、普通は頭から読んでいくケースが多いと思います。その際、アプリケーションの先頭がスッキリ書かれていることで、そのエンドポイント全体の振る舞いを把握することができ、それ以降の理解がしやすくなると思います。「普通は頭から読んでいくケースが多いと思います」ということで、当然一番上のコントローラがスッキリしていることも重要です。コントローラはサービスクラスと違って明確にロールが決められているため、そこまで酷いことにはなりにくいように思われます。主役たるドメインクラスはもちろん重要です。...が、適切な命名がなされたメソッドがあれば*2、最悪中が多少複雑だったりゴチャゴチャしていても概要をつかむことは可能です。外側が整理されていないと、まず概要をつかむことができません。*1:Struts時代には酷いActionクラスをたくさん見ました。酷いものはインフラ層が滲み出ていました。#gunmawebGunma.webさんの勉強会に参加してきました。テーマはDDDでした...2017-11-12雑記:MVC「コントローラ」ってコントローラか。「データしか持たないデータクラスは作らない...こちらの本を読んででのレポートです。今年もJavaDayTokyoに出席させていただきました。読者になる検索リンクはてなブログブログをはじめる週刊はてなブログはてなブログPro最新記事awkで特定の列を除外して出力するWindows10にOracleをインストールしようとしたらありがちな罠にハマった古いプログラムからも学ぶことがある...と思う。#rtechconf月別アーカイブ参加グループプログラミングインターネットテクノロジーはてなブログをはじめよう!taichiwさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。