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
Java Webフレームワークの現状 / java web framework
kishida
9
9.2k
Is Object Oriented nesessary? COSCUP 2024
kishida
0
130
プログラムに組み込みたい人向けLLMの概要 / LLM for programmers
kishida
3
390
Javaの現状2024夏 / Java current status 2024 summer
kishida
5
1.8k
Java 22 Overview
kishida
1
310
Is Object-Oriented nessesary?
kishida
0
96
オブジェクト指向は必要なのか / Is object-oriented needed?
kishida
36
25k
AI時代を乗り切る実装力をつけよう / Get avility of implementation beyond AI era
kishida
4
7.3k
AI時代を生き抜くために処理をちゃんと書けるようになろう / write a executable process for AI era
kishida
27
16k
Other Decks in Programming
See All in Programming
Amazon Neptuneで始めてみるグラフDB-OpenSearchによるグラフの全文検索-
satoshi256kbyte
4
330
Kubernetes for Data Engineers: Building Scalable, Reliable Data Pipelines
sucitw
1
200
Synchronizationを支える技術
s_shimotori
1
150
Nuxtベースの「WXT」でChrome拡張を作成する | Vue Fes 2024 ランチセッション
moshi1121
1
530
Webの技術スタックで マルチプラットフォームアプリ開発を可能にするElixirDesktopの紹介
thehaigo
2
920
シールドクラスをはじめよう / Getting Started with Sealed Classes
mackey0225
3
400
Piniaの現状と今後
waka292
5
1.5k
offers_20241022_imakiire.pdf
imakurusu
2
360
現場で役立つモデリング 超入門
masuda220
PRO
13
2.9k
RailsのPull requestsのレビューの時に私が考えていること
yahonda
5
1.7k
Jakarta Concurrencyによる並行処理プログラミングの始め方 (JJUG CCC 2024 Fall)
tnagao7
1
230
Universal Linksの実装方法と陥りがちな罠
kaitokudou
1
220
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
363
19k
Designing for Performance
lara
604
68k
4 Signs Your Business is Dying
shpigford
180
21k
Measuring & Analyzing Core Web Vitals
bluesmoon
1
41
Git: the NoSQL Database
bkeepers
PRO
425
64k
A Modern Web Designer's Workflow
chriscoyier
692
190k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
664
120k
Music & Morning Musume
bryan
46
6.1k
Raft: Consensus for Rubyists
vanstee
136
6.6k
StorybookのUI Testing Handbookを読んだ
zakiyama
26
5.2k
Writing Fast Ruby
sferik
626
61k
The World Runs on Bad Software
bkeepers
PRO
65
11k
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++でラムダをやる方法をシチュエーション別にまとめたもの • アプリケーション構造も関数的になる • データは抽象データとして考える • データとまとめる処理は正規化と表現のバリエーション • 他のオブジェクトとやりとりしない • そもそも処理が書けるようになってから