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時代を乗り切る実装力をつけよう / Get avility of implementation beyond AI era
kishida
2
4.1k
AI時代を生き抜くために処理をちゃんと書けるようになろう / write a executable process for AI era
kishida
21
11k
Javaは今どうなっているの? / how about java now
kishida
14
19k
動くコードを書こう / let's code a process
kishida
23
7k
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
410
LLMをやめよう / stop using LLM
kishida
11
13k
オレがオブジェクト指向をやめるために必要な3つのPHP RFC/PHP RFC for quit Object Oriented Programming
kishida
3
810
Other Decks in Programming
See All in Programming
スタートアップのフロントエンド事情 GENBA #2 〜Front-End Opsの現場〜
ebijun1007
1
780
PHPerライフをChrome拡張開発でちょっと便利に / PR TIMES x DMM.com
meihei3
0
190
Laravel標準バリデーションでできること
hmb_ok
1
330
Cloud RunとCloud PubSubでサーバレスなデータ基盤2024 with Terraform / Cloud Run and PubSub with Terraform
shinyorke
7
1.7k
PHP 8.3で追加されたjson_validate()を徹底的に深掘りしてみよう
mashirou1234
0
610
Learning Ruby
okuramasafumi
5
370
TDDと今まで
kanayannet
0
110
『データ可視化学入門』をPythonからRに翻訳した話(増強版)
bob3bob3
0
280
軽率にVue 3で リアルタイム3Dアプリを作れる ライブラリを作ってみた/vue-with-3d-app
drumath2237
3
1.1k
一休.comレストランのRustバックエンド開発の様子
kymmt90
13
7.9k
使えるマークダウンライブラリを探した結果 RailsアプリケーションからRustを使うことになった話
fursich
0
150
「プログラマーのためのCPU入門」は入り口として丁度よい!
forrep
25
22k
Featured
See All Featured
Making Projects Easy
brettharned
106
5.4k
Into the Great Unknown - MozCon
thekraken
10
810
Teambox: Starting and Learning
jrom
126
8.3k
Navigating Team Friction
lara
177
13k
Happy Clients
brianwarren
91
6.3k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
185
15k
Designing for Performance
lara
601
67k
Rails Girls Zürich Keynote
gr2m
91
13k
The Cost Of JavaScript in 2023
addyosmani
13
3.7k
Building an army of robots
kneath
300
41k
Pencils Down: Stop Designing & Start Developing
hursman
115
11k
The Mythical Team-Month
searls
214
42k
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++でラムダをやる方法をシチュエーション別にまとめたもの • アプリケーション構造も関数的になる • データは抽象データとして考える • データとまとめる処理は正規化と表現のバリエーション • 他のオブジェクトとやりとりしない • そもそも処理が書けるようになってから