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
AI時代のプログラミング教育 / programming education in ai era
kishida
22
20k
Java Webフレームワークの現状 / java web framework at burikaigi
kishida
10
2.4k
AI時代に求められるプログラマの能力 / ability of programmer in AI era
kishida
17
12k
Java 23の概要とJava Web Frameworkの現状 / Java 23 and Java web framework
kishida
2
500
Java Webフレームワークの現状 / java web framework
kishida
10
10k
Is Object Oriented nesessary? COSCUP 2024
kishida
0
180
プログラムに組み込みたい人向けLLMの概要 / LLM for programmers
kishida
3
640
Javaの現状2024夏 / Java current status 2024 summer
kishida
6
2k
Java 22 Overview
kishida
1
370
Other Decks in Programming
See All in Programming
SideKiqでジョブが二重起動した事象を深堀りしました
t_hatachi
0
180
バックエンドNode.js × フロントエンドDeno で開発して得られた知見
ayame113
4
1.2k
PsySHから紐解くREPLの仕組み
muno92
PRO
1
500
英語文法から学ぶ、クリーンな設計の秘訣
newnomad
1
260
RCPと宣言型ポリシーについてのお話し
kokitamura
2
140
PHPでお金を扱う時、終わりのない 謎の1円調査の旅にでなくて済む方法
nakka
3
960
Django for Data Science (Boston Python Meetup, March 2025)
wsvincent
0
200
Firebase Dynamic Linksの代替手段を自作する / Create your own Firebase Dynamic Links alternative
kubode
0
160
Devin入門と最近のアップデートから見るDevinの進化 / Introduction to Devin and the Evolution of Devin as Seen in Recent Update
rkaga
7
3.2k
ベクトル検索システムの気持ち
monochromegane
28
8.2k
Node.js, Deno, Bun 最新動向とその所感について
yosuke_furukawa
PRO
6
3k
OpenTelemetryを活用したObservability入門 / Introduction to Observability with OpenTelemetry
seike460
PRO
0
200
Featured
See All Featured
A Philosophy of Restraint
colly
203
16k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
28
2k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
30k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
Git: the NoSQL Database
bkeepers
PRO
429
65k
What's in a price? How to price your products and services
michaelherold
244
12k
Statistics for Hackers
jakevdp
797
220k
How to train your dragon (web standard)
notwaldorf
91
5.9k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.6k
Navigating Team Friction
lara
183
15k
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++でラムダをやる方法をシチュエーション別にまとめたもの • アプリケーション構造も関数的になる • データは抽象データとして考える • データとまとめる処理は正規化と表現のバリエーション • 他のオブジェクトとやりとりしない • そもそも処理が書けるようになってから