読者です 読者をやめる 読者になる 読者になる

/var/log/laughingman7743.log

I thought what I'd do was, I'd pretend I was one of those deaf-mutes or should I?

ScalaのCakePatternでJavaっぽいレイヤリング

Scala

一般的なController、Service、Repositoryの3層レイヤ構成をCakePattern*1で。

Model

テーブル定義を反映したプレーンなオブジェクト。

Form

HTTPリクエストパラメータをバインドするプレーンなオブジェクト。

ViewModel

サービスから返却されるプレーンなオブジェクト。(ValueObjectやDTOといった名前のほうが一般的ですが。。。)

Repository

クエリの組み立てを行い、DBにアクセス、モデルを返却する。

Service

セルフタイプアノテーションリポジトリをMixinする。
ビジネスロジックを記述し、リポジトリからモデルを受け取り、ビューモデルに変換してコントローラに返す。

Resolver

ImplクラスをNEWしたコンポーネントの定義を記述。

Controller

リゾルバに定義されたコンポーネントをMixinする。
フォームのバリデーションを行い、サービスを呼び出す。 サービスから受け取ったビューモデルをテンプレートエンジンに渡したり、JSONシリアライズを行う。

パッケージ構成

う~んなんかいまいち。XXXImplって名前はいい加減やめたいですね。
コップ本を半分ぐらい読みました。Scala楽しいです。

Enjoy!