0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Domain-Driven Design Quickly ①

Posted at

本家DDD本はとっつきにくいという噂があるので…
初心者の私はまずはこれを読んでDDDを理解したい!
Domain Driven Design(ドメイン駆動設計) Quickly 日本語版

そもそもドメインとは

domain(名詞)

  • 領地、領土
  • 領域、分野、...界

後者の方が当てはまりそう。
例えば、 銀行のシステムを作るなら銀行業務の細部、ルール、問題点などがドメイン。

ドメイン駆動開発(DDD)とは

  • [前提] ドメインに対する十分な知識がないままソフトウェアを作ることは不可能である
    • そもそもソフトウェアを作る目的は、そのドメインの業務をより効率的にするためなので…
  • ソフトウェアは現実世界のドメインをモデル化して取り込む、という考え方
    • 全てを取り込む必要はない、取捨選択
    • これが設計である
  • モデルを他人に伝えることがもっとも大切

設計の段階に見るDDDの重要性

  • ソフトウェアの設計

    • DDDが担当する部分
    • 家を構成するようなもの
    • やり直すのが大変
  • コードレベルの設計

    • DDDの次の段階
    • 部屋のレイアウトを決めるようなもの
    • 修正が簡単

アジャイル、XPとの相性

  • DDDと合う点

    • 完璧な設計をしない手法
    • その代わり、反復・柔軟性によってより良いソフトウェアを作る
  • DDDが解決できる点

    • 継続的リファクタリングは、設計の知識がない人がやるとゴミコードが生み出されるだけ
    • 設計しすぎてしまうのをうまく抑える
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?