$30 off During Our Annual Pro Sale. View Details »

モデリングをはじめよう

 モデリングをはじめよう

DDDのキッカケをつくるためのプレゼン

KAZUMA Ukyo

May 31, 2013
Tweet

More Decks by KAZUMA Ukyo

Other Decks in Programming

Transcript

  1. モデリングを
    はじめよう

    View Slide

  2. ソフトウェアって何?

    View Slide

  3. プログラム?

    View Slide

  4. サーバー?

    View Slide

  5. エク○ル?

    View Slide


  6. View Slide

  7. 買い物する
    ソフトウェア
    amaz○nみたいな

    View Slide

  8. ありそうなフロー
    ϩάΠϯ͢Δ
    ݕࡧ͢Δ
    ঎඼ϖʔδΛ։͘
    $MJDLߪೖ͢Δ
    ঎඼Λड͚औΔ

    View Slide

  9. Login(user, password)
    items = Search(query)
    item.openPage()
    Buy(item)
    ありそうなコード

    View Slide

  10. ϩάΠϯ͢Δ
    ݕࡧ͢Δ
    ঎඼ϖʔδΛ։͘
    $MJDLߪೖ͢Δ
    ঎඼Λड͚औΔ

    View Slide

  11. つまり

    View Slide

  12. これがソフトウェア
    ϩάΠϯ͢Δ
    ݕࡧ͢Δ
    ঎඼ϖʔδΛ։͘
    $MJDLߪೖ͢Δ
    ঎඼Λड͚औΔ

    View Slide

  13. そして

    View Slide

  14. 買い物のドメイン
    ϩάΠϯ͢Δ
    ݕࡧ͢Δ
    ঎඼ϖʔδΛ։͘
    $MJDLߪೖ͢Δ
    ঎඼Λड͚औΔ

    View Slide

  15. これを
    投影したのが

    View Slide

  16. Login(user, password)
    items = Search(query)
    item.openPage()
    Buy(item)

    View Slide


  17. View Slide

  18. ϩάΠϯ͢Δ
    ݕࡧ͢Δ
    ঎඼ϖʔδΛ։͘
    $MJDLߪೖ͢Δ
    ঎඼Λड͚औΔ

    View Slide

  19. 誤解を恐れずに言えば
    あなたとamaz○nの
    間にあるユビキタス言語

    View Slide

  20. ユビキタス言語?

    View Slide

  21. 要するに
    名前

    View Slide

  22. 名前とは
    名付けられたもの

    View Slide

  23. 名前とは
    意味を持つもの

    View Slide

  24. 名前とは
    より簡潔であるもの

    View Slide

  25. 名前とは
    意図を伝えるもの

    View Slide

  26. 名前とは
    使われるもの

    View Slide

  27. ところで

    View Slide

  28. さっきのコードは
    ドメインを
    投影できていません

    View Slide

  29. Login(user, password)
    items = Search(query)
    item.openPage()
    Buy(item)

    View Slide

  30. Login(user, password)
    items = Search(query)
    item.openPage()
    Buy(item)

    View Slide

  31. Login(user, password)
    items = Search(query)
    item.openPage()
    1ClickBuy(item)

    View Slide

  32. 誤解を恐れずに言えば
    ユビキタス言語を
    使うということ

    View Slide

  33. 誤解を恐れずに言えば
    名前を定義し理解し使用する
    これがドメイン駆動

    View Slide

  34. ドメインを学ぶ

    View Slide

  35. 名前を知る

    View Slide

  36. View Slide

  37. View Slide

  38. 名前を見つける

    View Slide

  39. 「商品の購入」

    View Slide

  40. 「商品を購入したら、
    その情報をDBに保存する」

    View Slide

  41. 「商品を購入したら、
    その情報をDBに保存する」

    View Slide

  42. 「商品を購入したら、
    注文明細を作成する」

    View Slide

  43. 注目すべきは
    名詞  と  動詞

    View Slide

  44. やってみよう!

    View Slide