Slide 1

Slide 1 text

俺のオブジェクト指向 @ラクスさんオブジェクト指向LT会 vol.2 #ooltjp 2020.06.26 岡本滉平 @okaponta_ 1

Slide 2

Slide 2 text

自己紹介 岡本滉平 ・シンプレクス株式会社 ・OOC2020でDDDについて話しました ・最近Qiitaでちょっと話題になりました ・twitter : @koko72_flavor 2

Slide 3

Slide 3 text

俺のオブジェクト指向との出会い 3

Slide 4

Slide 4 text

俺のオブジェクト指向との出会い 4

Slide 5

Slide 5 text

俺のオブジェクト指向との出会い 5

Slide 6

Slide 6 text

• プログラムド素人 • そもそも頑張って理解したくない 6

Slide 7

Slide 7 text

7

Slide 8

Slide 8 text

「わかりません!!」 8

Slide 9

Slide 9 text

俺のオブジェクト指向との再会(3年後) 9

Slide 10

Slide 10 text

俺のオブジェクト指向との再会(3年後) 10

Slide 11

Slide 11 text

「ドメインモデル貧血症」 “Anemic Domain Model” 11

Slide 12

Slide 12 text

ドメインモデル貧血症 12 Anemic domain model is the use of a software domain model where the domain objects contain little or no business logic

Slide 13

Slide 13 text

俺のオブジェクト指向との再会(3年後) 13 Direction beforeDirection = car.getDirection(); int fuelRemain = car.getFuel(); if (fuelRemain != 0){ Direction afterDirection = turnRight(beforeDirection); car.setDirection(afterDirection); } ・・・

Slide 14

Slide 14 text

俺のオブジェクト指向との再会(3年後) 14 Direction beforeDirection = car.getDirection(); int fuelRemain = car.getFuel(); if (fuelRemain != 0){ Direction afterDirection = turnRight(beforeDirection); car.setDirection(afterDirection); } ・・・

Slide 15

Slide 15 text

俺のオブジェクト指向との再会(3年後) 15 Direction beforeDirection = car.getDirection(); int fuelRemain = car.getFuel(); if (fuelRemain != 0){ Direction afterDirection = turnRight(beforeDirection); car.setDirection(afterDirection); } ・・・

Slide 16

Slide 16 text

俺のオブジェクト指向との再会(3年後) 16 Direction beforeDirection = car.getDirection(); int fuelRemain = car.getFuel(); if (fuelRemain != 0){ Direction afterDirection = turnRight(beforeDirection); car.setDirection(afterDirection); } ・・・

Slide 17

Slide 17 text

俺のオブジェクト指向との再会(3年後) 17 Direction beforeDirection = car.getDirection(); int fuelRemain = car.getFuel(); if (fuelRemain != 0){ Direction afterDirection = turnRight(beforeDirection); car.setDirection(afterDirection); } ・・・

Slide 18

Slide 18 text

俺のオブジェクト指向との再会(3年後) 18 if (car.canMove()){ car.turnRight(); }

Slide 19

Slide 19 text

俺のオブジェクト指向との再会(3年後) 19 if (car.hasNoFuel()){ return; } car.turnRight();

Slide 20

Slide 20 text

俺のオブジェクト指向との再会(3年後) 20 if(car.hasEnoughFuel()){ car.turnRight(); }

Slide 21

Slide 21 text

改めて、オブジェクト指向って 21 1. すべてはオブジェクトである。 2. オブジェクトはメッセージの受け答えによってコミュニケーションする。 3. オブジェクトは自身のメモリーを持つ。 4. どのオブジェクトもクラスのインスタンスであり、クラスもまたオブ ジェクトである。 5. クラスはその全インスタンスの為の共有動作を持つ。インスタンスはプ ログラムにおけるオブジェクトの形態である。 6. プログラム実行時は、制御は最初のオブジェクトに渡され、残りはその メッセージとして扱われる。 アラン・ケイ

Slide 22

Slide 22 text

俺のオブジェクト指向 22

Slide 23

Slide 23 text

「擬人化」 “Personification” 23

Slide 24

Slide 24 text

俺のオブジェクト指向 24

Slide 25

Slide 25 text

俺のオブジェクト指向 25

Slide 26

Slide 26 text

ご清聴 ありがとうございました 26