Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
抽象化って何? (What is abstraction?)
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
hidenorigoto
February 16, 2019
Programming
7.8k
11
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
抽象化って何? (What is abstraction?)
2019年2月16日 Laravel JP Conference
hidenorigoto
February 16, 2019
More Decks by hidenorigoto
See All by hidenorigoto
ドメインと向き合う - 旅行予約編
hidenorigoto
4
1.2k
「ソフトウェア設計」のドメイン - 「データモデリングでドメインを駆動する」を読んで
hidenorigoto
10
3.5k
メルカリ バックエンド領域のこれまでとこれから
hidenorigoto
1
630
メルカリのエンジニアリング組織の変化〜Engineering Managerの視点から〜
hidenorigoto
0
8.8k
The changes of the engineering organization in Mercari - from the view of an engineering manager -
hidenorigoto
0
350
PHPerKaigi 2019 ランチセッション (3/31)
hidenorigoto
1
4.5k
抽象化って何? (What is abstraction?)
hidenorigoto
9
4.9k
続・SOLIDの原則ってどんなふうに使うの? 〜オープン・クローズドの原則 センパイのコーディングノート編〜
hidenorigoto
14
6.4k
SOLIDの原則ってどんなふうに使うの? 〜オープン・クローズドの原則編(拡大版)〜
hidenorigoto
9
5.4k
Other Decks in Programming
See All in Programming
Intent as Code
shoppingjaws
4
710
AIエージェント時代のコードレビューを設計する
nogu66
6
2.6k
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
3
480
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
7
2.7k
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
440
Deep dive into the select statement (GopherCon UK)
jespino
0
170
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
200
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
150
型解析で実現する Go の言語内 DSL / Conference に Go! タイムテーブルの歩き方 for Gophers
mazrean
0
140
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
300
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
260
Foundry Localでエージェント開発
seosoft
0
160
Featured
See All Featured
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
65k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
270
Making the Leap to Tech Lead
cromwellryan
135
10k
Building Adaptive Systems
keathley
44
3.2k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
660
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
290
Being A Developer After 40
akosma
91
590k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
450
It's Worth the Effort
3n
188
29k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
420
Transcript
நԽͬͯԿʁ ޙ౻लએ IJEFOPSJHPUP!HNBJMDPN -BSBWFM+1$POGFSFODF 8IBUJTBCTUSBDUJPO
நԽ "CTUSBDUJPO
͜ͷτʔΫͷඪ
͜ͷτʔΫͷඪ w ݱ࣮ੈքʹ͓͚ΔநԽͱͲͷΑ͏ͳ͜ͱͳͷ͔ɺ ཧղ͢Δ
͜ͷτʔΫͷඪ w ݱ࣮ੈքʹ͓͚ΔநԽͱͲͷΑ͏ͳ͜ͱͳͷ͔ɺ ཧղ͢Δ w ϓϩάϥϛϯάʹ͓͚ΔநԽͱͲͷΑ͏ͳ͜ͱ ͳͷ͔ɺཧղ͢Δ
͜ͷτʔΫͷඪ w ݱ࣮ੈքʹ͓͚ΔநԽͱͲͷΑ͏ͳ͜ͱͳͷ͔ɺ ཧղ͢Δ w ϓϩάϥϛϯάʹ͓͚ΔநԽͱͲͷΑ͏ͳ͜ͱ ͳͷ͔ɺཧղ͢Δ w நԽͷࢦΛΓɺநԽͷྑ͠ѱ͠ΛஅͰ͖ ΔΑ͏ʹͳΔ
͓આ໌
γνϡΤʔγϣϯ w ʮಠʢφϯϓϨɺ/VNCFS1MBDFʣʯͷΞϓϦΛ։ ൃ͢Δ
ಠʢφϯϓϨʣͱʁ
ಠʢφϯϓϨʣͱʁ ݸͷϚεʹ͓͍ͯɺ ̍ʙ̕ͷࣈ͕ ॏෳ͍ͯ͠ͳ͍͜ͱ
γνϡΤʔγϣϯ w ʮಠʢφϯϓϨɺ/VNCFS1MBDFʣʯͷΞϓϦΛ։ൃ ͢Δ w ಠͷʮਖ਼ղνΣοΫػೳʯͷ࣮Λ୲͢Δ w ϧʔϧΛຬ͍ͨͯ͠Δ͔Ͳ͏͔ʁ w લఏ
w ಠͷͯ͢ͷϚεʹࣈ͕ೖ͍ͬͯΔ w ̍ʙ̕ͷࣈҎ֎ͷೖྗͳ͍
࠷ॳͷίʔυ֓ཁ ಠͷϚεͷใΛ ̎࣍ݩྻͰอ࣋ ਖ਼ղ͔Ͳ͏͔Λ νΣοΫ͢Δ
None
None
B<J><K> Jଆ͕ߦ Kଆ͕ྻ
None
None
վળϙΠϯτͳ͍͔ʁ w ϩδοΫͰ͖͍ͯΔɻਖ਼͘͠νΣοΫͰ͖Δɻ w ίʔυΛཧͰ͖Δؾ͕͢Δɻ͔͠͠ɺͲΜͳΞϓ ϩʔνͰΔͷ͔ʁ w $IFDLFS͕.BUSJYʹґଘ͍ͯ͠Δͱ͜Ζ͔Βʁ
ґଘͱ͍͑ɾɾɾ ґଘؔٯసͷݪଇʢ%*1ʣ ͬͯϠπΛ͏ͷ͔ͳɾɾɾ ্ҐϨϕϧͷϞδϡʔϧԼҐϨϕϧͷϞδϡʔ ϧʹґଘ͖͢Ͱͳ͍ɻ྆ํͱந ʢBCTUSBDUJPOT ʹґଘ͖͢Ͱ͋Δɻ
ґଘؔٯసͷݪଇͬͯɺ ؒʹJOUFSGBDFΛ͞Ήܗʹ ͢Εྑ͍ΜͩΑͳɻ ˞ҙɿԋग़ͷ߹্ͷɺۃͳཧղྫͰ͢
ґଘؔٯసʂґଘͯ͠·ͤΜʂ
Կ͔ؒҧ͍ͬͯΔ ؾ͕͢Δ
Ͳ͕ؒ͜ҧ͍ͬͯΔͷ͔ આ໌͍ͯͩ͘͠͞ʂ
Ͳ͕ؒ͜ҧ͍ͬͯΔͷ͔ʁ
நԽͱ
ࣙॻతఆٛ நʢͪΎ͏͠ΐ͏ʣ ࣄදΛɺ͋Δੑ࣭ɾ ڞ௨ੑɾຊ࣭ʹண͠ɺ ͦΕΛந͖ग़ͯ͠Ѳ͢Δ ͜ͱɻ ࣺʢ͠Ό͠ΐ͏ʣ ֓೦Λந͢Δࡍʹɺந ͞ΕͨॾදҎ֎ͷද Λߟͷର͔ΒΓ
ࣺͯΔ͜ͱɻ
4ɾ*ɾϋϠΧϫʮநͷϋγΰʯ ʰࢥߟͱߦಈʹ͓͚ΔݴޠʱQ ܦݧͷରʢ໒ڇʣ Պֶతঢ়ଶʢ໒ڇʣ ϕογʔ ޠʮ໒ڇʯ Ոச ࢿ࢈ ࢿ࢈
ݴޠ நԽ நԽ நԽ
நԽʹ͓͚ΔมԽ ϕογʔ ޠʮ໒ڇʯ நԽ ಛͷྔ ଟ͍ গͳ͍ ରͷ
গͳ͍ ଟ͍
நϨϕϧ͕͓͔͍͠จ ܦݧͷରʢ໒ڇʣ Պֶతঢ়ଶʢ໒ڇʣ ϕογʔ ޠʮ໒ڇʯ Ոச ࢿ࢈ ࢿ࢈
ࢲ໌ͷேɺࢲୡͷࢿ࢈ʹ 㕒Λ༩͑ͳ͚Ε͍͚ͳ͍ ࢿ࢈ 㕒 ผͷநϨϕ ϧ͕ࠞࡏͯ͠ ͍Δʂ
நԽͷ·ͱΊ w நʹϨϕϧ͕͋Δʢநͷϋγΰʣ w ϋγΰΛ্ΔʹɺಛΛΓࣺͯͯநԽ͢Δ ಛྔݮΔ͕ɺΑΓଟ͕͘ରʹೖΔ w நͷϨϕϧ͕ἧ͍ͬͯͳ͍ͱɺίϛϡχέʔγϣ ϯͰ͖ͳ͍
ϓϩάϥϛϯάʹ͓͚Δ நԽͱ
ݱ࣮ੈքɺϓϩάϥϛϯάͷੈք
ݱ࣮ੈքɺϓϩάϥϛϯάͷੈք ࢿ࢈ 㕒 ͓ۚ ϕογʔ
ݱ࣮ੈքɺϓϩάϥϛϯάͷੈք ࢿ࢈ 㕒 ͓ۚ ϕογʔ ࠃޠɺߏจɺޠኮ ಓ ۩
ݱ࣮ੈքɺϓϩάϥϛϯάͷੈք ࢿ࢈ 㕒 ͓ۚ ϕογʔ .BUSJY νΣοΫ Ϛε ϧʔϧ ࠃޠɺߏจɺޠኮ
ಓ ۩
ݱ࣮ੈքɺϓϩάϥϛϯάͷੈք ࢿ࢈ 㕒 ͓ۚ ϕογʔ .BUSJY νΣοΫ Ϛε ϧʔϧ ࠃޠɺߏจɺޠኮ
ϓϩάϥϛϯάݴޠɺߏจɺޠኮ ಓ ۩
ϓϩάϥϛϯάʹ͓͚ΔநԽͱ ѻ͍ͬͯΔ֓೦ͷநԽ *OUFSGBDF"CTUSBDUDMBTTΛ͏͜ͱ ͜ΕΛୡ͢ΔͨΊʹɺݴޠʹ༻ҙ͞Ε͍ͯΔ༷ʑͳ ػೳΛ͏ʢ*OUFSGBDFɺ"CTUSBDUɺFUDʣ
ࢦʁ
ϓϩάϥϛϯάʹ͓͚ΔͷநԽͷࢦ Ծ దͳ໋໊ ໊લͱ༰͕Ұக͠ ͍ͯΔ͜ͱ நͷ౷Ұ ͋Δଆ໘͕औΓग़͞ Εͨͷ͚ͩͰ⁋᧒ ͕߹͏͜ͱ ڱ͍ൣғ
ߟྀ͢Δಛͷ͕ খ͘͞ͳ͍ͬͯΔ͜ ͱ ˞ҙɿIJEFOPSJHPUPʹΑΔࡶͳఏҊͰ͢
͜ͷநԽԿ͕ؒҧ͍ͬͯͨʁ
͜ͷநԽԿ͕ؒҧ͍ͬͯͨʁ దͳ໋໊
͜ͷநԽԿ͕ؒҧ͍ͬͯͨʁ நͷ౷Ұ
͜ͷநԽԿ͕ؒҧ͍ͬͯͨʁ ڱ͍ൣғ
͜ͷநԽԿ͕ؒҧ͍ͬͯͨʁ ڱ͍ൣғ ଞʹϝιου͕͋Δ ͚̍ͭͩ
͜ͷநԽԿ͕ؒҧ͍ͬͯͨʁ ڱ͍ൣғ
վળྫ
ґଘؔͷຊ࣭ΛݟۃΊΔ
ґଘؔͷຊ࣭ΛݟۃΊΔ w $IFDLFSͱ.BUSJYͷຊ࣭తͳؔɺׂΛߟ͑Δ $IFDLFSɺ࠷ݶԿ͕͋ΕΛՌͨͤΔ͔
ґଘؔͷຊ࣭ΛݟۃΊΔ w $IFDLFSͱ.BUSJYͷຊ࣭తͳؔɺׂΛߟ͑Δ $IFDLFSɺ࠷ݶԿ͕͋ΕΛՌͨͤΔ͔ w $IFDLFSɺݸͷࣈΛड͚औΕɺͦΕ͕0,͔/( ͔ΛఆͰ͖Δ
ґଘؔͷຊ࣭ΛݟۃΊΔ w $IFDLFSͱ.BUSJYͷຊ࣭తͳؔɺׂΛߟ͑Δ $IFDLFSɺ࠷ݶԿ͕͋ΕΛՌͨͤΔ͔ w $IFDLFSɺݸͷࣈΛड͚औΕɺͦΕ͕0,͔/( ͔ΛఆͰ͖Δ w ݸͷࣈͷஔɺఆʹ͕ؔͳ͍
$IFDLFSࣈͷྻ͚ͩΛѻ͏
ࣈͷྻͷੜΞμϓλʔͰٵऩ͢Δ
None
None
None
վળલͷ$IFDLFSͱൺֱ
ڱ͍ൣғநԽ ந౷Ұ .BUSJYΛѻ͏ $IFDLFS /VNCFS$PMMFDUJPO Λѻ͏$IFDLFS .BUSJYશମ ࣈͷྻ
6.- $IFDLFS.BUSJY͔ΒΓ͞Εͨ
நԽͷԸܙ w $IFDLFSΫϥεͷίʔυ͕ݮͬͨ w $IFDLFSΫϥεͷґଘର͕খ͘͞ͳͬͨ
·ͱΊ
͜ͷτʔΫͷඪ
͜ͷτʔΫͷඪ w ݱ࣮ੈքʹ͓͚ΔநԽͱͲͷΑ͏ͳ͜ͱͳͷ͔ɺ ཧղ͢Δ
͜ͷτʔΫͷඪ w ݱ࣮ੈքʹ͓͚ΔநԽͱͲͷΑ͏ͳ͜ͱͳͷ͔ɺ ཧղ͢Δ w ϓϩάϥϛϯάʹ͓͚ΔநԽͱͲͷΑ͏ͳ͜ͱ ͳͷ͔ɺཧղ͢Δ
͜ͷτʔΫͷඪ w ݱ࣮ੈքʹ͓͚ΔநԽͱͲͷΑ͏ͳ͜ͱͳͷ͔ɺ ཧղ͢Δ w ϓϩάϥϛϯάʹ͓͚ΔநԽͱͲͷΑ͏ͳ͜ͱ ͳͷ͔ɺཧղ͢Δ w நԽͷࢦΛΓɺநԽͷྑ͠ѱ͠ΛஅͰ͖ ΔΑ͏ʹͳΔ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠
ࢀߟ w 4ɾ*ɾϋϠΧϫʰࢥߟͱߦಈʹ͓͚Δݴޠʱݪॻୈ ࢛൛ؠॻళ