/note/tech

クリーンアーキテクチャ本の本質はぶっちゃけ、ボスト Rails 時代のフレームワークに対するあてつけ

エヴァンスがDDD本を執筆していた2001〜2002年、世の中はEJBのエンティティビーンが正義だと思っている派が大半で、Hibernateがメジャーバージョン2になった2003年、同時期にDDD本初版が出ました。ActiveRecordを搭載したRailsの1.0が2005年。その後さらに遅れて、JPAは2006年です

@tanakahisateru

DDD のパターンはとても古く、それを理解するのは、いまどきの便利なものを使って退化した冗長なコードに戻すことではなく、いまある良いライブラリを選ぶための下地の教養とするのが最適で、その根底となる思想のどこが17年変わってない普遍性なのかが選定の根拠だ、というふうに読むべきと思ってます

@tanakahisateru

で... クリーンアーキテクチャが冗長で大袈裟だと思う人の中には、このDDDパターン退化と混同している人がいないかと思います。クリーンアーキテクチャの主張は、あなたのシンプルなモデルが複雑な技術をあてにするという不適切な依存方向は良くないから、逆転させて設計しようってだけだと思うのです

@tanakahisateru

補足です。2001年当時、EJBコンテナなるベンダーロックインとウォーターフォール的労働環境に囚われていたのを解放しようとしたのが、アジャイルと軽快なJavaの一派でした。彼らの武器は疎結合とPOJOとTDDでした。クリーンアーキテクチャとほぼ同じ内容のアジャイル奥義本は、初版が2002年です。

@tanakahisateru

アジャイル奥義本とクリーンアーキテクチャの差が何かというと、ひとつは、40年前から変わらない本質を見つけてもらおうと経験談を増やしたことと。もうひとつは、MVCフレームワーク開発者の奴隷になるな目を覚せと訴えることでした。src の直下にそのプロダクトのユースケースが見えないなんて、と

@tanakahisateru

ぶっちゃけ、ボスト Rails 時代のフレームワークに対するあてつけです。それこそが、2000年代前半に頑張って成熟させたかに見えた文化をリセットされてしまったと感じた辛い著者の気持ちの現れで、あの本の中でいちばん大事なことだと思うのです

@tanakahisateru

わからんでもないし、それゆえ俺はクリーンアーキテクチャを支持する