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時代に求められるプログラマの能力 / ability of programmer in AI era
kishida
13
5.6k
Java 23の概要とJava Web Frameworkの現状 / Java 23 and Java web framework
kishida
2
430
Java Webフレームワークの現状 / java web framework
kishida
10
10k
Is Object Oriented nesessary? COSCUP 2024
kishida
0
150
プログラムに組み込みたい人向けLLMの概要 / LLM for programmers
kishida
3
520
Javaの現状2024夏 / Java current status 2024 summer
kishida
6
2k
Java 22 Overview
kishida
1
350
Is Object-Oriented nessesary?
kishida
0
120
オブジェクト指向は必要なのか / Is object-oriented needed?
kishida
36
25k
Other Decks in Programming
See All in Programming
PHPで学ぶプログラミングの教訓 / Lessons in Programming Learned through PHP
nrslib
4
1.1k
Rubyでつくるパケットキャプチャツール
ydah
0
160
functionalなアプローチで動的要素を排除する
ryopeko
1
190
VisionProで部屋の明るさを反映させるシェーダーを作った話
segur
0
100
AppRouterを用いた大規模サービス開発におけるディレクトリ構成の変遷と問題点
eiganken
1
440
情報漏洩させないための設計
kubotak
5
1.3k
PSR-15 はあなたのための ものではない? - phpcon2024
myamagishi
0
400
ChatGPT とつくる PHP で OS 実装
memory1994
PRO
3
190
php-conference-japan-2024
tasuku43
0
430
毎日13時間もかかるバッチ処理をたった3日で60%短縮するためにやったこと
sho_ssk_
1
540
Alba: Why, How and What's So Interesting
okuramasafumi
0
200
ATDDで素早く安定した デリバリを実現しよう!
tonnsama
1
1.8k
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
460
33k
RailsConf 2023
tenderlove
29
970
The Cult of Friendly URLs
andyhume
78
6.1k
The World Runs on Bad Software
bkeepers
PRO
66
11k
4 Signs Your Business is Dying
shpigford
182
22k
BBQ
matthewcrist
85
9.4k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Unsuck your backbone
ammeep
669
57k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
Side Projects
sachag
452
42k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.3k
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++でラムダをやる方法をシチュエーション別にまとめたもの • アプリケーション構造も関数的になる • データは抽象データとして考える • データとまとめる処理は正規化と表現のバリエーション • 他のオブジェクトとやりとりしない • そもそも処理が書けるようになってから