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
14k
10
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
脱オブジェクト指向講座(5分LT資料)
2022/5/14に開催されたTechFeed Conference 2022の5分LTでの登壇資料です
Naoki Kishida
May 14, 2022
More Decks by Naoki Kishida
See All by Naoki Kishida
ソフトウェアエンジニアにとっての生成AI - 特性を知って使い倒す / generative ai for software enginner
kishida
7
2k
ローカルLLMでどこまでコードが書けるか -縮小版 / How much code can be written on a local LLM Shortened
kishida
2
240
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
12
5.2k
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
200
ローカルLLMでどこまでコードが書けるか / How much code can be written on a local LLM
kishida
2
560
ローカルLLM基礎知識 / local LLM basics 2025
kishida
30
17k
AIエージェントでのJava開発がはかどるMCPをAIを使って開発してみた / java mcp for jjug
kishida
5
1.3k
AIの弱点、やっぱりプログラミングは人間が(も)勉強しよう / YAPC AI and Programming
kishida
13
7k
海外登壇の心構え - コワクナイヨ - / how to prepare for a presentation abroad
kishida
2
210
Other Decks in Programming
See All in Programming
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
210
プロポーザルを書いてもらう
pvcresin
0
560
進化を続けるGo toolsの現在地 / The Current State of Ever-Evolving Go Tools
hond0413
0
250
楽しそうなつよつよエンジニアと目が死んでる僕/A brilliant engineer having a blast, and dead-eyed me.
3l4l5
2
210
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.4k
Flow は今どうなっているか
mizdra
PRO
0
660
実装をデザインガイドラインに追従させるための取り組み / 260731-dip-mosh-design-system
dachi023
0
6.6k
MySQLとPostgreSQLって何が違うの?
akagami
0
120
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
750
「人を評価する AI」の設計と実装
ryoyanara
0
220
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
160
AI Readyの正体はデータマネジメントだ メダリオン2.0の最前線
freee
PRO
0
340
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Mind Mapping
helmedeiros
PRO
1
320
Crafting Experiences
bethany
1
260
How to make the Groovebox
asonas
2
2.3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
sira's awesome portfolio website redesign presentation
elsirapls
0
330
YesSQL, Process and Tooling at Scale
rocio
174
15k
Evolving SEO for Evolving Search Engines
ryanjones
0
260
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
420
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Making the Leap to Tech Lead
cromwellryan
135
10k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
220
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++でラムダをやる方法をシチュエーション別にまとめたもの • アプリケーション構造も関数的になる • データは抽象データとして考える • データとまとめる処理は正規化と表現のバリエーション • 他のオブジェクトとやりとりしない • そもそも処理が書けるようになってから