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
脱オブジェクト指向講座(5分LT資料)
Search
Naoki Kishida
May 14, 2022
Programming
10
13k
脱オブジェクト指向講座(5分LT資料)
2022/5/14に開催されたTechFeed Conference 2022の5分LTでの登壇資料です
Naoki Kishida
May 14, 2022
Tweet
Share
More Decks by Naoki Kishida
See All by Naoki Kishida
オブジェクト指向は必要なのか / Is object-oriented needed?
kishida
27
19k
AI時代を乗り切る実装力をつけよう / Get avility of implementation beyond AI era
kishida
2
4.4k
AI時代を生き抜くために処理をちゃんと書けるようになろう / write a executable process for AI era
kishida
22
12k
Javaは今どうなっているの? / how about java now
kishida
14
19k
動くコードを書こう / let's code a process
kishida
24
7.1k
Java 21の概要 / outline of Java 21
kishida
9
6k
エンジニアはLLMとどう付き合うか / How engineer get along with LLM
kishida
19
13k
JJUG,JJUG CCCについて、あとJava21 / JJUG, JJUG CCC, and Java 21
kishida
1
420
LLMをやめよう / stop using LLM
kishida
11
13k
Other Decks in Programming
See All in Programming
Some Quick Ideas To Improve Your Tests ( #jassttokyo )
teyamagu
PRO
2
2.3k
LPIXEL×CADDi_kaerururu
kaerururu
3
300
Kotlinを用いたDSL的な設計手法と使用上の注意
kohii00
3
530
Enhancing Applications with Accessibility API
kishikawakatsumi
3
890
Crafting a Own PHP - ウキウキ手作りミニマリストPHP
uzulla
4
1.1k
ファイル先頭の use の意味、説明できますか? 〜PHP の namespace と autoloading の関係を正しく理解しよう〜 / namespace and autoloading in php
okashoi
2
470
Migrating to Signals: A Practical Workshop
manfredsteyer
PRO
0
280
決断するための勇気、そのためのBacklog / Courage to make decisions, Backlog for that.
seike460
PRO
4
1.9k
ここ1~2年くらいで 使えるようになった(主要ブラウザーの最新版 がすべて対応した ) ウェブの新機能について ランダムに喋る!
myzkyy
9
6.5k
オブジェクトしこう
okuramasafumi
2
130
クソコード動画『カプセル化 Mk-II』 で考える 上手くカプセル化できない理由 / encapsulation2
minodriven
11
7.8k
DDDはなぜ難しいのか / 良いコードの定義と設計能力の壁
pospome
24
7.3k
Featured
See All Featured
Music & Morning Musume
bryan
39
5.5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
28
5.9k
Building Effective Engineering Teams - LeadDev
addyosmani
25
1.8k
Principles of Awesome APIs and How to Build Them.
keavy
119
16k
What’s in a name? Adding method to the madness
productmarketing
PRO
14
2.6k
Why Our Code Smells
bkeepers
PRO
330
56k
Fireside Chat
paigeccino
19
2.6k
Practical Orchestrator
shlominoach
180
9.7k
Making the Leap to Tech Lead
cromwellryan
123
8.4k
jQuery: Nuts, Bolts and Bling
dougneiner
57
7.1k
What the flash - Photography Introduction
edds
64
11k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
240
1.2M
Transcript
2022/05/14 脱オブジェクト指向講座 LINE Fukuoka きしだ なおき
05/14/2022 2 自己紹介 • きしだ なおき (@kis) • LINE Fukuoka
• 「プロになるJava」デテマス • 今日の話の具体的なコードのせてます
05/14/2022 3 「プログラミングの勉強を始めたけどオブジェクト指向わからん」 • 始めたばかりでオブジェクト指向なんか気にしなくていい • そもそもちゃんと処理が書けるようになろう • オブジェクト指向は30年前のコード整理術 •
いまはもっといろんな考え方がある • むしろいまの考え方にはあっていない
05/14/2022 4 オブジェクト指向の特徴 • オブジェクト指向ならではの特徴 • 継承によるモジュールの分類 • 継承による差分プログラミング •
データと処理をまとめるのはオブジェクト指向固有ではない • 抽象データ型 • オブジェクト指向の役割 • ポリモーフィズムを使った、状態の管理に対する差分プログラミング
05/14/2022 5 差分プログラミング • 似たような処理のうち異なる部分を抜き出す • メソッドは似たような処理のうち共通部分を抜き出す • CPUが遅くメモリが少ないときは継承が使われていた •
いまはラムダで 実装するのが手軽
05/14/2022 6 アプリケーションの構造 • レイヤー構造 • 各レイヤーはステートレス(状態をもたない) • 各レイヤーとの受け渡しは関数的 •
データは抽象データ型 • データとそのデータに処理をもつ • 正規化 • 表現のバリエーション • UIにはオブジェクト指向が適切 • しかしHTML(DOM)やWidgetでラップされる • アプリケーションはイベント処理を関数的に書く
05/14/2022 7 まとめ • コーディングテクニックとして関数型がつかえる • 差分プログラミングのためにオブジェクトの多態で難しい構造を作ら なくてよい • デザインパターンもほとんど不要
• ラムダの使えないC++でラムダをやる方法をシチュエーション別にまとめたもの • アプリケーション構造も関数的になる • データは抽象データとして考える • データとまとめる処理は正規化と表現のバリエーション • 他のオブジェクトとやりとりしない • そもそも処理が書けるようになってから