Clojure

6章を読んでいたら、レイヤーアーキテクチャぽい話が出てきた

関数モデル層

ふるまいを純粋な関数として記述。状態を保持しないので、テストしやすい傾向。なるべくここを厚くしたい。

変更可能モデル層

状態を保持する層。状態を持つと、テストしにくいのでなるべくここを薄くしたい。

GUI

人がインタラクションするための入出力層。


なじみの OO系でみかけるレイヤーアーキテクチャとはちと違う。DDDで語るところの、EntityからValue Objectをなるべく抽出して、Value Objectにふるまいを記述しようとするフォースは似たところはある。

プログラミングClojure

プログラミングClojure