Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GoとMicroserviceでDDDやってみました

 GoとMicroserviceでDDDやってみました

hitsuji-haneta

April 20, 2020
Tweet

More Decks by hitsuji-haneta

Other Decks in Programming

Transcript

  1. ϚΠΫϩαʔϏε͔Βݟͨ%%%ɹ Service A Service C Service B DDDを元にした設計 DDDを元にした設計 Service

    D Service E DDDを元にした設計 見やすい! レビューしやすい!
  2. ϚΠΫϩαʔϏε͔Βݟͨ%%%ɹ Service A Service C Service B Service D Service

    E 予期していなかった効果 → 境界づけられたコンテキスト 実はマージした方が いいのでは?
  3. (Pݴޠ͔Βݟͨ%%%ɹ どういうこと? type dog struct { id uint name string

    } func(d *dog) Cry() string { return “Bow!" } type Animal interface { Cry() string } func test(a Animal) { fmt.Printf(a.Cry()) } メソッドは構造体(struct)に紐付ける Interfaceに定義されたメソッドと 同じものが定義された構造体はそ のInterfaceとして使用できる
  4. type someStc struct { id uint name string } type

    SomeIf interface { CreateStc() someStc } func Test(i SomeIf) *someStc { return i.CreateStc } (Pݴޠ͔Βݟͨ%%%ɹ Func Interface ダックタイピングに近い Interfaceは使う人が定義する (同じpackage内とか) Struct