Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
俺のオブジェクト指向/20200626LT
Search
kohei.okamoto
June 26, 2020
Programming
1
840
俺のオブジェクト指向/20200626LT
ラクスさんのLT会に参加したときの資料です。
イベントページはこちら。
オブジェクト指向LT会 vol.2
https://rakus.connpass.com/event/178556/
kohei.okamoto
June 26, 2020
Tweet
Share
More Decks by kohei.okamoto
See All by kohei.okamoto
四則演算を理解する/four-arithmetic-operations
koheiokamoto
0
310
空の色を計算してみた/calculate-sky-color
koheiokamoto
0
100
ハムスターの回し車の騒音問題に挑んだ話/hamster-LT
koheiokamoto
0
100
経験者がいない状態で、戦略的DDDを現場でやってみた話/ OOC2020
koheiokamoto
7
3.8k
Other Decks in Programming
See All in Programming
Pythonに漸進的に型をつける
nealle
1
130
はじめてのDSPy - 言語モデルを『プロンプト』ではなく『プログラミング』するための仕組み
masahiro_nishimi
4
16k
alien-signals と自作 OSS で実現する フレームワーク非依存な ロジック共通化の探求 / Exploring Framework-Agnostic Logic Sharing with alien-signals and Custom OSS
aoseyuu
2
760
Ktorで簡単AIアプリケーション
tsukakei
0
110
ALL CODE BASE ARE BELONG TO STUDY
uzulla
28
6.8k
スキーマ駆動で、Zod OpenAPI Honoによる、API開発するために、Hono Takibiというライブラリを作っている
nakita628
0
330
kiroとCodexで最高のSpec駆動開発を!!数時間で web3ネイティブなミニゲームを作ってみたよ!
mashharuki
0
950
AIと人間の共創開発!OSSで試行錯誤した開発スタイル
mae616
2
820
Foundation Modelsを実装日本語学習アプリを作ってみた!
hypebeans
0
130
TransformerからMCPまで(現代AIを理解するための羅針盤)
mickey_kubo
7
5.6k
AI Agent 時代的開發者生存指南
eddie
4
2.2k
Catch Up: Go Style Guide Update
andpad
0
260
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Agile that works and the tools we love
rasmusluckow
331
21k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Site-Speed That Sticks
csswizardry
13
930
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
116
20k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
658
61k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6k
Facilitating Awesome Meetings
lara
57
6.6k
Transcript
俺のオブジェクト指向 @ラクスさんオブジェクト指向LT会 vol.2 #ooltjp 2020.06.26 岡本滉平 @okaponta_ 1
自己紹介 岡本滉平 ・シンプレクス株式会社 ・OOC2020でDDDについて話しました ・最近Qiitaでちょっと話題になりました ・twitter : @koko72_flavor 2
俺のオブジェクト指向との出会い 3
俺のオブジェクト指向との出会い 4
俺のオブジェクト指向との出会い 5
• プログラムド素人 • そもそも頑張って理解したくない 6
7
「わかりません!!」 8
俺のオブジェクト指向との再会(3年後) 9
俺のオブジェクト指向との再会(3年後) 10
「ドメインモデル貧血症」 “Anemic Domain Model” 11
ドメインモデル貧血症 12 Anemic domain model is the use of a
software domain model where the domain objects contain little or no business logic
俺のオブジェクト指向との再会(3年後) 13 Direction beforeDirection = car.getDirection(); int fuelRemain = car.getFuel();
if (fuelRemain != 0){ Direction afterDirection = turnRight(beforeDirection); car.setDirection(afterDirection); } ・・・
俺のオブジェクト指向との再会(3年後) 14 Direction beforeDirection = car.getDirection(); int fuelRemain = car.getFuel();
if (fuelRemain != 0){ Direction afterDirection = turnRight(beforeDirection); car.setDirection(afterDirection); } ・・・
俺のオブジェクト指向との再会(3年後) 15 Direction beforeDirection = car.getDirection(); int fuelRemain = car.getFuel();
if (fuelRemain != 0){ Direction afterDirection = turnRight(beforeDirection); car.setDirection(afterDirection); } ・・・
俺のオブジェクト指向との再会(3年後) 16 Direction beforeDirection = car.getDirection(); int fuelRemain = car.getFuel();
if (fuelRemain != 0){ Direction afterDirection = turnRight(beforeDirection); car.setDirection(afterDirection); } ・・・
俺のオブジェクト指向との再会(3年後) 17 Direction beforeDirection = car.getDirection(); int fuelRemain = car.getFuel();
if (fuelRemain != 0){ Direction afterDirection = turnRight(beforeDirection); car.setDirection(afterDirection); } ・・・
俺のオブジェクト指向との再会(3年後) 18 if (car.canMove()){ car.turnRight(); }
俺のオブジェクト指向との再会(3年後) 19 if (car.hasNoFuel()){ return; } car.turnRight();
俺のオブジェクト指向との再会(3年後) 20 if(car.hasEnoughFuel()){ car.turnRight(); }
改めて、オブジェクト指向って 21 1. すべてはオブジェクトである。 2. オブジェクトはメッセージの受け答えによってコミュニケーションする。 3. オブジェクトは自身のメモリーを持つ。 4. どのオブジェクトもクラスのインスタンスであり、クラスもまたオブ
ジェクトである。 5. クラスはその全インスタンスの為の共有動作を持つ。インスタンスはプ ログラムにおけるオブジェクトの形態である。 6. プログラム実行時は、制御は最初のオブジェクトに渡され、残りはその メッセージとして扱われる。 アラン・ケイ
俺のオブジェクト指向 22
「擬人化」 “Personification” 23
俺のオブジェクト指向 24
俺のオブジェクト指向 25
ご清聴 ありがとうございました 26