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
モデリングのきほん #kanjava #mixleap
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
irof
November 30, 2019
Technology
4
7.8k
モデリングのきほん #kanjava #mixleap
2019-11-30
KanJava 10th Anniversary Party
https://kanjava.connpass.com/event/147145/
irof
November 30, 2019
Tweet
Share
More Decks by irof
See All by irof
視座の上げ方
irof
1
71
アーキテクチャと考える迷子にならない開発者テスト
irof
10
4k
技術的負債の正体を知って向き合う
irof
0
790
関ジャバと言う場
irof
0
230
型で語るカタ
irof
2
1.5k
つよそうにふるまい、つよい成果を出すのなら、つよいのかもしれない
irof
1
440
複数アプリケーションを育てていくための共通化戦略
irof
9
5.3k
SpringBootにおけるオブザーバビリティのなにか
irof
1
1.3k
Javaアプリケーションモニタリングの基本
irof
7
2.9k
Other Decks in Technology
See All in Technology
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
360
Agile Leadership Summit Keynote 2026
m_seki
1
650
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
1.5k
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
680
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
480
配列に見る bash と zsh の違い
kazzpapa3
3
160
コンテナセキュリティの最新事情 ~ 2026年版 ~
kyohmizu
2
370
量子クラウドサービスの裏側 〜Deep Dive into OQTOPUS〜
oqtopus
0
140
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
コミュニティが変えるキャリアの地平線:コロナ禍新卒入社のエンジニアがAWSコミュニティで見つけた成長の羅針盤
kentosuzuki
0
130
What happened to RubyGems and what can we learn?
mikemcquaid
0
310
プロポーザルに込める段取り八分
shoheimitani
1
570
Featured
See All Featured
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
210
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
140
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
380
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
The Cult of Friendly URLs
andyhume
79
6.8k
SEO for Brand Visibility & Recognition
aleyda
0
4.2k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
120
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
55
Typedesign – Prime Four
hannesfritz
42
2.9k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
98
The World Runs on Bad Software
bkeepers
PRO
72
12k
Transcript
ϞσϦϯάͷ͖΄Μ ,BO+BWBUI"OOJWFSTBSZ1BSUZ 5 !JSPG
;ͭ͏ͷϓϩάϥϚͰ͢ ʮ͋ͨΓ·͑ͷ͜ͱΛ͋ͨΓ·͑ʹʯ ͋ͨΓ·͑ͷ͜ͱʹ͢Δ
͡Ίʹ ؔδϟόͷपΠϕϯτ ͳͷͰ +BWBͷΛ͠·ͤΜ
ಈػ ϞσϦϯά͕ಛผͳ͜ͱʹଊ͑ΒΕͯΔΑ͏ ʹײͨ͡ͷͰ͢ɻ ʮ͍͠ʯ͕ઌཱͪɺेͳٕࣝज़͕ͳ ͍ͱखΛग़ͤͳ͍ͱײ͍ͯ͡ΔΑ͏Ͱͨ͠ɻ ϞσϦϯάͰ͖ΔΑ͏ʹͳΔͨΊʹɺϞσ Ϧϯά͢Δ͔͠ͳ͍ͷͰ͢ɻͱ͍͑ϞσϦ ϯάࣗମͰ͖ͯΔͱࢥ͏Μͩɻ
ΰʔϧ ʮϞσϦϯάશʹཧղͨ͠ʯ
ϞσϦϯάͱ
ϞσϦϯάͱ ϞσϦϯάͱԿ͔ ϞσϧͱԿ͔
ϞσϦϯάͱԿ͔
ϞσϦϯά ϞσϧΛ࡞Δ͜ͱ Ϟσϧઍࠩສผ
ϞσϦϯά Ϟσϧ ର ϞσϦϯά
ྫυϝΠϯϞσϦϯά υϝΠϯϞσϧ ର υϝΠϯϞσϦϯά
ྫΫϥεਤ Ϋϥεਤ ιʔε Ϋϥεਤͷ࡞
ྫεϥΠυ εϥΠυ ͍ͨ͜͠ͱ εϥΠυͷ࡞
ϞσϦϯάͷϞσϧ ΛϞσϦϯάͯ͠ΈΔ
ϞσϦϯά ϞσϦϯά ࣮ ࣮ߦ ࣮ࡁΈ ಠࣗ PS
ϞσϦϯά interface ϞσϦϯά<T> { Ϟσϧ<T> ࣮ߦ(T); } ແཧཧͷ+BWB ͳΜ͔ҧ͏ײ͋Δ͚Ͳ
ϞσϦϯάͷ࣮ ࡞Γ͍ͨϞσϧʹΑͬͯϞσϦ ϯάͷ࣮มΘΔ ൚༻తͳϞσϧͳΒ࣮ࡁΈͷ ϞσϦϯά͕͑Δ͔
࣮ࡁΈͷϞσϦϯά ͜ͷηογϣϯ͚ͩͷޠ ൚༻తͳϞσϧΛ࡞ΕΔ ୭͔͕࡞ͬͯެ։ͯ͘͠ΕͨϞσ ϦϯάͷΓ͔ͨͷ͜ͱ
࣮ࡁΈͷϞσϦϯάΛ͏ σβΠϯύλʔϯͷద༻ͱಉ͡ ϞσϦϯάͷํ͕Θ͔Γ͍͢ Ϟσϧ͍͍͢ ͍ॴΛؒҧ͑ΔͱେʹࣄނΔ
ಠࣗͷϞσϦϯά ࣗͰߟ͑ͨϞσϦϯά ंྠͷ࠶ൃ໌ສࡀ
ϞσϦϯάʺ͓ֆඳ͖ https://twitter.com/irof/status/1174549654534414336 ʻֆΛඳ݅͘ʼ ֆͷܗࣜͷϞσϧΛબ ඳը͞ΕΔπʔϧΛΘͳ͍
ʹ ݟ͑ͳ͍ Ϟσϧ ʹݟ͑Δ งғؾ ໌ࣔత ໊͚
ʹ ݟ͑ͳ͍ Ϟσϧ ʹݟ͑Δ งғؾ ໌ࣔత ͓ֆඳ͖ ͱ͍͏งғؾͰ͓ֆඳ͖ Ξφϩάศར
ϞσϧͱԿ͔
Ϟσϧͱ ରͷڧௐ͍ͨ͠ଆ໘ΛऔΓग़ ͨ͠ͷ ݱ࣮ͦͷͷͰͳ͍ ໝͰͳ͍
ϞσϧͷϞσϧ Ϟσϧ ใ ղऍ ಘΒΕͨใ ಘΒΕ͍ͯͳ͍ ใ ͏ใ Θͳ͍ใ ใͷղऍ
ໝ ݱࡏͷਪଌ ະདྷͷ༧ଌ
Ϟσϧͷछྨ ಠࣗͷϞσϧ ൚༻తͳϞσϧ
ಠࣗͷϞσϧ ࣗͳΓͷϞσϧ ंྠͷ࠶ൃ໌ΛڪΕͳ͍ ΘΒͳͯ͘ٽ͔ͳ͍
൚༻తͳϞσϧ Α͘ΒΕ͍ͯΔϞσϧ ͨͿΜ࣮ࡁΈͷϞσϦϯάͰ࡞ΕΔ ͨͿΜϞσϧ͍͍͢
͏͚ͩͷϞσϧ ϞσϦϯάΛ͠ͳͯ͘୭͔͕ ࡞ͬͯ͘ΕͨϞσϧΛ༻͢Ε ࣄΓΔ͜ͱ͋Γ·͢
͏͚ͩͷϞσϧͷྫ ङϞσϧ ෆ࣮֬ੑίʔϯ આಘͨ͠Γߟ͑Δͱ͖ͷࡐྉʹ ͔ͭ͏ͷɻ֦ு͍͍ͯ͠ɻ
Ϟσϧͷଊ͑ํ ࢹ࠲ʹΑͬͯͷݟ͑ํҧ͏ ݟ͑ํΛදݱͨ͠ͷ ϞσϦϯά
ϞσϦϯάͷత
ϞσϦϯάͷత ͑ΔϞσϧΛ࡞Δ͜ͱ
͑ΔϞσϧ ݱ࣮ʹϊΠζ͕ଟ͗͢Δ ͑Δঢ়گͰ৭ʑ ͕ࣗཧղͰ͖Δ ଞਓʹཧղͰ͖Δ
ཧղͷͨΊͷϞσϧ ཧղͰ͖ͨΒϞσϧ͕Ͱ͖ͯΔ ʮཁʯͬͯݴ͑ͨΒͦΕ͕Ϟσϧ Ξτϓοτͯ͠Δ͔Ͳ͏͔ผ
ϞσϦϯάΛ௨ͨ͡ཧղ ཧղͨ͜͠ͱશͯϞσϧ ϞσϦϯάΛ௨ͯ͡ଟͷϞσ ϧ͕࡞ΒΕΔ ͦͷଟ͘ʹݟ͑ͳ͍ϞσϧͰɺҙ ࣝ͞Εͳ͍͠ͷݟͳ͍
ϞσϦϯάͷΓํ
ϞσϦϯάͷΓํ ಠࣗͷϞσϧΛ࡞͢Δ ൚༻తͳϞσϧʹམͱ͠ࠐΉ
ಠࣗϞσϧͷ࡞
ରͷશମ ԿΛϞσϦϯά͠Αʔ͔
ରͷશମ ͜ͷลʁ Ϟσϧʹ͍ͨ͜͠ͱͷΞλϦΛ ͚ͭΔ
ରͷશମ ͜ͷลʁ Ͳ͏Ͱ͍͍ ʮͲ͏Ͱ͍͍ʯ ͱ͍͏ڧ͍ݴ༿Λ ͋͑ͯͬͯ ҙࣝతʹ֎͢
ରͷશମ Ϟσϧ Ͳ͏Ͱ͍͍ ʮͲ͏Ͱ͍͍ʯΛ Γམͱ͍ͯ͘͠ͱྠ ֲ͕ݟ͑ͯ͘Δ
Ϟσϧ Ͳ͏Ͱ͍͍ͷͰফ ͯ͠͠·͏
Ϟσϧ ڧௐͨ͠Γೱ୶Λ͚ͭͨΓ
൚༻తͳϞσϧͷ࡞ ʢπʔϧ༻ʣ
ϓϩμΫτ Ϋϥεਤ͕ ཉ͍͠
Ϋϥεਤ ը૾ͱ͔Ͱͷग़ྗ ͳΜ͔͍͍ײ͡ͷݟө͑ දݱํ๏ Ͳ͏Ͱ͍͍ QVCMJDҎ֎ͷϝιου
ಛఆύοέʔδҎ֎ͷΫϥε ࣮ͷৄࡉ ͳͲͳͲ ͳΜ͔ͩΜͩͷͱ͜Ζ উखʹͬͯ͘ΕΔ
ϞσϦϯάͷಠࣗϞσϧ ࢲͷϞσϦϯάΛࢲͷಠࣗϞσ ϧͰઆ໌ͯ͠Έͨɻ ΘΒͳ͔ͬͨΒ૬खΛݟͯผ ͷϞσϧΛ͏ʢٽ͔ͳ͍ ͚ͲࠓҰൃউෛͳΜͩΑͶ͐ʜʜ
ϞσϦϯάͰ͖ͯΔ Ͱ͖ͯΔͰ͖ͯͳ͍ͷڥքΛͲ ͜ʹஔ͔ࣗ͘༝ ͑ͨΒʮͰ͖ͯΔʯ͔ͳʁ ʮ͑ΔʯΛԿͰஅ͢Δ͔ͬͯʹ ʢΊΜͲ͍ͭ͘͞
ϞσϦϯάͷϙΠϯτ
ϞσϦϯάͷϙΠϯτ ಉ͜͡ͱಉ͡Α͏ʹදݱ͢Δ ൚༻తͳϞσϧΛར༻͢Δ
ಉ͜͡ͱಉ͡Α͏ʹදݱ͢Δ ҧ͏දݱ͕͞ΕͯΔͱࠞཚ͢Δ σʔλͷྲྀΕͱґଘઢͱ͔͋Γ͕ͪ ใΛҡ࣋ͯ͠දݱΛݮΒ͢
൚༻తͳϞσϧΛ ༻͢Δ ͦͷ··͏ ར༻͢Δ ֦ு͢Δ Ұ෦͚ͩआΓͯ͘Δ ҹ͚ͩͱ͔ΞΠίϯ͚ͩͱ͔
࠷ޙʹ֬ೝ
ΰʔϧςʔϓ ϞσϦϯάશʹཧղͨ͠ʁ
͕࣌ؒ༨ͬͨΒదʹ ͢κʔϯ
ʮϞσϦϯά͕Ͱ͖Δʯ ಠࣗϞσϧ͕࡞ΕΔͱ͍͏͜ͱ Ͱͳ͍ ʮͰ͖ΔʯΛϞσϦϯάͯ͠ΈΔ ͱ͍͍͔
͑ΔϞσϧ ݴ༿ɺͿΓखৼΓϞσϧ ιʔείʔυϞσϧ ͑ΔతͰΘͬͨΒɺͦΕ Ҏ্ͷϞσϦϯάཁΒͳ͍ υΩϡϝϯτΛ࡞Δ͜ͱͰͳ͍
Ξτϓοτͯ͠ΈΑ͏ ͜ͷεϥΠυϞσϦϯάʹର ͢ΔࢲͷϞσϧΛΞτϓοτ͠ ͨͰ͢ ଟҰൠతͳʮϞσϦϯάʯͱ ҧͬͨͱࢥ͍·͢
ΕͰ͖ΔΑ͏ʹͳΔ Βͳ͍͜ͱઈରͰ͖ΔΑ͏ ʹͳΒͳ͍ ࣗͷཧղΛ૬खʹ͑Α͏ͱ ͢ΔͳΒɺͦΕϞσϦϯά ʮϞσϦϯάʯͩͱࢥͬͯऔΓΜͩ ΒϞσϦϯάྗ͍͍͖ͭͯ·͢
Ϟσϧ ʹ͔͠ଘࡏ͠ͳ͍Ϟσϧ ݕূʹෳͷϞσϦϯάͰΞ τϓοτͯ͠ΈΔ
ϞσϦϯάҰ࿈ͷ׆ಈ Ϟσϧ ؍ଌՄೳϞσϧ ใͷմ ղऍ Ξτϓοτ ચ࿅ Ճใͷऩू తʹরΒͨ͠ใͷऩू ͜Ε͘Β͍Ͱ͍͍͔