Tagged

Programming

A collection of 1 post

【書評】ドメイン駆動設計 モデリング/実装ガイド
DDD

【書評】ドメイン駆動設計 モデリング/実装ガイド

DDD の勉強をすべく、「ドメイン駆動設計 モデリング/実装ガイド」を読んだのでその書評を書く。 本書は DDD の概念部分がトップダウンで記述されています。DDDの概念を網羅しつつ、各概念の説明は必要十分な内容にとどめているため、比較的軽量な印象です。しかし、DDD自体の概念が非常に巨大なため、本書のボリュームは大きくなっています。 私のようなDDD初学者の最初の1冊として非常におすすめです。 DDD ってなんぞや?DDD とは、「モデリングを中心とした設計手法」です。モデリングを重要な設計手法と位置づけ、コードレベルではモデルをどう活かすかを考えます。 モデルを活かす手法には私も同意です。個人開発でモデルオブジェクトを導入したことがあるのですが、その利便性の高さには驚きました。コードの可読性、ロジックの再利用、テストの書きやす際におていモデルは優れています。 コードの可読性は、いわゆるクラスの責務と関係しています。責務が明確であれば、処理を修正するときに対象のロジックがどのクラスに書かれているかがわかりやすくなります。逆にクラスの責務が曖昧だと、数あるクラスの中から目的のクラスを探しづらくなったり、想定外のクラスに影響が及んだりなど、開発の難易度が一気に上がります。 ロジックの再利用も利点です。複数のサービス層(ユースケース層)でロジックを使い回すことができるため、アプリケーション全体でコード量が減少します。 最後にテストの書きやすさ、これはピカイチですね。モデルのテストを書く場合、前提条件のセットが簡単です。インスタンスや構造体を生成して、必要なフィールドに値をセットするのみです。逆にサービス層(