texta.fm 1. Software Development in 2003 と エリック・エヴァンスのドメイン駆動設計 の話

open.spotify.com

の32:40あたりの話が印象的だったので整理。

エリック・エヴァンスのドメイン駆動設計 の話 の実装面と、今読むにあたり注意しておくべき事項の話。

該当箇所の整理

意訳な部分はあるので注意

この本が不幸なのは、この本の中盤は技術の部門。デザインパターンの粒度の設計や実装。
この本が出たのは2003年。当然ながらこの頃の技術や実装は古い。(特にデザインパターン)
この本の前半(1部)と後半(4部)はとても重要で現在でも読む意義がある。
が、中盤(2,3部)は引き算して読む必要があるが、この引き算は当時を知っている人でないと難しい部分がある。

しかしこの本の技術的な要素(中盤のデザインパターンの話)をきちんと映し取ることがより良い設計であると勘違いする人が増えた。
-> いわゆる軽量DDD(?)。パターンを利用するのは1,4部より簡単なのでそうなりがち。

プログラマはサンプルコードから技術を学ぼうとするが、この本はサンプルコードが古い(当たり前の話)
Howの部分は当然2003年以降変わっているのに、2003年に出た内容を聖書のように映し取ってしまうのは不幸。

この本に書いてあるもの(実装面)をそのまま実装しようとすると現代的な設計にはなりにくい。
他の本も読んで勉強しましょう

所感

過去の本に書かれている実装なりサンプルコードなり方法論が古いというのは、
大変当たり前の話だが正直その点は意識できていなかったな...

では最近書かれたDDDに関する日本語の書籍は、この古い点がブラッシュアップされているのだろうか? この間読んだ、 ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本 は果たしてこの古さが解消されているのだろうか? 自分では判断つかない。理由は簡単で代替の位置付けになる新しい設計がどういったものであるのか、 よく理解していないから。

現代的な設計論とはなんぞや...何にアクセスすればいいのか? さらにいうとこの時代の設計論とのつながりとは...? ソフトウェアの設計と言っても範囲が広すぎる。 「ドメイン駆動設計」はソフトウェアの設計のうちどのような領域の本で、 他にどんな仲間がいることになるのだろうか? 薄ぼんやりとすら全体が見えていない。どれも全く分からない。

どうやらこの辺りに興味があるらしい。 この書籍の設計方針はどういった点が古く、現代においてはどう発展しているのか? もっと大きな視点でいえば、ソフトウェアの設計に関して過去と現在をつなぐ歴史や見取りが知りたい。