Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
脱オブジェクト指向講座(5分LT資料)
Search
Naoki Kishida
May 14, 2022
Programming
10
14k
脱オブジェクト指向講座(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
ローカルLLM基礎知識 / local LLM basics 2025
kishida
25
11k
AIエージェントでのJava開発がはかどるMCPをAIを使って開発してみた / java mcp for jjug
kishida
4
830
AIの弱点、やっぱりプログラミングは人間が(も)勉強しよう / YAPC AI and Programming
kishida
13
5.6k
海外登壇の心構え - コワクナイヨ - / how to prepare for a presentation abroad
kishida
2
110
Current States of Java Web Frameworks at JCConf 2025
kishida
0
1.5k
AIを活用し、今後に備えるための技術知識 / Basic Knowledge to Utilize AI
kishida
24
6.9k
LLMベースAIの基本 / basics of LLM based AI
kishida
13
3.5k
Java 24まとめ / Java 24 summary
kishida
3
800
AI時代のプログラミング教育 / programming education in ai era
kishida
25
27k
Other Decks in Programming
See All in Programming
AIと協働し、イベントソーシングとアクターモデルで作る後悔しないアーキテクチャ Regret-Free Architecture with AI, Event Sourcing, and Actors
tomohisa
5
15k
Level up your Gemini CLI - D&D Style!
palladius
1
150
乱雑なコードの整理から学ぶ設計の初歩
masuda220
PRO
32
15k
競馬で学ぶ機械学習の基本と実践 / Machine Learning with Horse Racing
shoheimitani
14
14k
Micro Frontendsで築いた 共通基盤と運用の試行錯誤 / Building a Shared Platform with Micro Frontends: Operational Learnings
kyntk
1
1.7k
Web エンジニアが JavaScript で AI Agent を作る / JSConf JP 2025 sponsor session
izumin5210
4
2.1k
251126 TestState APIってなんだっけ?Step Functionsテストどう変わる?
east_takumi
0
290
TypeScript 5.9 で使えるようになった import defer でパフォーマンス最適化を実現する
bicstone
1
570
生成AIを活用したリファクタリング実践 ~コードスメルをなくすためのアプローチ
raedion
0
180
AWS CDKの推しポイントN選
akihisaikeda
1
220
ViewファーストなRailsアプリ開発のたのしさ
sugiwe
0
270
Herb to ReActionView: A New Foundation for the View Layer @ San Francisco Ruby Conference 2025
marcoroth
0
230
Featured
See All Featured
Building Applications with DynamoDB
mza
96
6.8k
How STYLIGHT went responsive
nonsquared
100
5.9k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
680
Code Reviewing Like a Champion
maltzj
527
40k
Raft: Consensus for Rubyists
vanstee
140
7.2k
We Have a Design System, Now What?
morganepeng
54
7.9k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Six Lessons from altMBA
skipperchong
29
4.1k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
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++でラムダをやる方法をシチュエーション別にまとめたもの • アプリケーション構造も関数的になる • データは抽象データとして考える • データとまとめる処理は正規化と表現のバリエーション • 他のオブジェクトとやりとりしない • そもそも処理が書けるようになってから