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
irof
November 30, 2019
Technology
4
7k
モデリングのきほん #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
2
1.1k
つよそうにふるまい、つよい成果を出すのなら、つよいのかもしれない
irof
1
330
複数アプリケーションを育てていくための共通化戦略
irof
10
4.7k
SpringBootにおけるオブザーバビリティのなにか
irof
1
1.1k
Javaアプリケーションモニタリングの基本
irof
7
2.7k
Webアプリケーションを作りましょう
irof
0
170
Javaの新しめの機能を知ったかぶれるようになる話 #kanjava
irof
3
6.4k
バッチを作らなきゃとなったときに考えること
irof
2
810
SpringBoot3.4の構造化ログ #kanjava
irof
3
1.5k
Other Decks in Technology
See All in Technology
o11yツールを乗り換えた話
tak0x00
2
1.7k
なごミュ@SPAJAM2025 第二回予選
1901drama
0
110
自治体職員がガバクラの AWS 閉域ネットワークを理解するのにやって良かった個人検証環境
takeda_h
2
330
メルカリIBIS:AIが拓く次世代インシデント対応
0gm
2
460
AIと描く、未来のBacklog 〜プロジェクト管理の次の10年を想像し、創造するセッション〜
hrm_o25
0
110
信頼できる開発プラットフォームをどう作るか?-Governance as Codeと継続的監視/フィードバックが導くPlatform Engineeringの進め方
yuriemori
1
210
夏休みWebアプリパフォーマンス相談室/web-app-performance-on-radio
hachi_eiji
1
270
生成AIによるデータサイエンスの変革
taka_aki
0
3.1k
会社にデータエンジニアがいることでできるようになること
10xinc
8
1k
AWS DDoS攻撃防御の最前線
ryutakondo
1
180
コミュニティと計画的偶発性理論 - 出会いが人生を変える / Life-Changing Encounters
soudai
PRO
7
840
JAWS-UG のイベントで使うハンズオンシナリオを Amazon Q Developer for CLI で作ってみた話
kazzpapa3
0
120
Featured
See All Featured
Facilitating Awesome Meetings
lara
55
6.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Music & Morning Musume
bryan
46
6.7k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
How to Think Like a Performance Engineer
csswizardry
25
1.8k
Optimizing for Happiness
mojombo
379
70k
For a Future-Friendly Web
brad_frost
179
9.9k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
The Pragmatic Product Professional
lauravandoore
36
6.8k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
RailsConf 2023
tenderlove
30
1.2k
Transcript
ϞσϦϯάͷ͖΄Μ ,BO+BWBUI"OOJWFSTBSZ1BSUZ 5 !JSPG
;ͭ͏ͷϓϩάϥϚͰ͢ ʮ͋ͨΓ·͑ͷ͜ͱΛ͋ͨΓ·͑ʹʯ ͋ͨΓ·͑ͷ͜ͱʹ͢Δ
͡Ίʹ ؔδϟόͷपΠϕϯτ ͳͷͰ +BWBͷΛ͠·ͤΜ
ಈػ ϞσϦϯά͕ಛผͳ͜ͱʹଊ͑ΒΕͯΔΑ͏ ʹײͨ͡ͷͰ͢ɻ ʮ͍͠ʯ͕ઌཱͪɺेͳٕࣝज़͕ͳ ͍ͱखΛग़ͤͳ͍ͱײ͍ͯ͡ΔΑ͏Ͱͨ͠ɻ ϞσϦϯάͰ͖ΔΑ͏ʹͳΔͨΊʹɺϞσ Ϧϯά͢Δ͔͠ͳ͍ͷͰ͢ɻͱ͍͑ϞσϦ ϯάࣗମͰ͖ͯΔͱࢥ͏Μͩɻ
ΰʔϧ ʮϞσϦϯάશʹཧղͨ͠ʯ
ϞσϦϯάͱ
ϞσϦϯάͱ ϞσϦϯάͱԿ͔ ϞσϧͱԿ͔
ϞσϦϯάͱԿ͔
ϞσϦϯά ϞσϧΛ࡞Δ͜ͱ Ϟσϧઍࠩສผ
ϞσϦϯά Ϟσϧ ର ϞσϦϯά
ྫυϝΠϯϞσϦϯά υϝΠϯϞσϧ ର υϝΠϯϞσϦϯά
ྫΫϥεਤ Ϋϥεਤ ιʔε Ϋϥεਤͷ࡞
ྫεϥΠυ εϥΠυ ͍ͨ͜͠ͱ εϥΠυͷ࡞
ϞσϦϯάͷϞσϧ ΛϞσϦϯάͯ͠ΈΔ
ϞσϦϯά ϞσϦϯά ࣮ ࣮ߦ ࣮ࡁΈ ಠࣗ PS
ϞσϦϯά interface ϞσϦϯά<T> { Ϟσϧ<T> ࣮ߦ(T); } ແཧཧͷ+BWB ͳΜ͔ҧ͏ײ͋Δ͚Ͳ
ϞσϦϯάͷ࣮ ࡞Γ͍ͨϞσϧʹΑͬͯϞσϦ ϯάͷ࣮มΘΔ ൚༻తͳϞσϧͳΒ࣮ࡁΈͷ ϞσϦϯά͕͑Δ͔
࣮ࡁΈͷϞσϦϯά ͜ͷηογϣϯ͚ͩͷޠ ൚༻తͳϞσϧΛ࡞ΕΔ ୭͔͕࡞ͬͯެ։ͯ͘͠ΕͨϞσ ϦϯάͷΓ͔ͨͷ͜ͱ
࣮ࡁΈͷϞσϦϯάΛ͏ σβΠϯύλʔϯͷద༻ͱಉ͡ ϞσϦϯάͷํ͕Θ͔Γ͍͢ Ϟσϧ͍͍͢ ͍ॴΛؒҧ͑ΔͱେʹࣄނΔ
ಠࣗͷϞσϦϯά ࣗͰߟ͑ͨϞσϦϯά ंྠͷ࠶ൃ໌ສࡀ
ϞσϦϯάʺ͓ֆඳ͖ https://twitter.com/irof/status/1174549654534414336 ʻֆΛඳ݅͘ʼ ֆͷܗࣜͷϞσϧΛબ ඳը͞ΕΔπʔϧΛΘͳ͍
ʹ ݟ͑ͳ͍ Ϟσϧ ʹݟ͑Δ งғؾ ໌ࣔత ໊͚
ʹ ݟ͑ͳ͍ Ϟσϧ ʹݟ͑Δ งғؾ ໌ࣔత ͓ֆඳ͖ ͱ͍͏งғؾͰ͓ֆඳ͖ Ξφϩάศར
ϞσϧͱԿ͔
Ϟσϧͱ ରͷڧௐ͍ͨ͠ଆ໘ΛऔΓग़ ͨ͠ͷ ݱ࣮ͦͷͷͰͳ͍ ໝͰͳ͍
ϞσϧͷϞσϧ Ϟσϧ ใ ղऍ ಘΒΕͨใ ಘΒΕ͍ͯͳ͍ ใ ͏ใ Θͳ͍ใ ใͷղऍ
ໝ ݱࡏͷਪଌ ະདྷͷ༧ଌ
Ϟσϧͷछྨ ಠࣗͷϞσϧ ൚༻తͳϞσϧ
ಠࣗͷϞσϧ ࣗͳΓͷϞσϧ ंྠͷ࠶ൃ໌ΛڪΕͳ͍ ΘΒͳͯ͘ٽ͔ͳ͍
൚༻తͳϞσϧ Α͘ΒΕ͍ͯΔϞσϧ ͨͿΜ࣮ࡁΈͷϞσϦϯάͰ࡞ΕΔ ͨͿΜϞσϧ͍͍͢
͏͚ͩͷϞσϧ ϞσϦϯάΛ͠ͳͯ͘୭͔͕ ࡞ͬͯ͘ΕͨϞσϧΛ༻͢Ε ࣄΓΔ͜ͱ͋Γ·͢
͏͚ͩͷϞσϧͷྫ ङϞσϧ ෆ࣮֬ੑίʔϯ આಘͨ͠Γߟ͑Δͱ͖ͷࡐྉʹ ͔ͭ͏ͷɻ֦ு͍͍ͯ͠ɻ
Ϟσϧͷଊ͑ํ ࢹ࠲ʹΑͬͯͷݟ͑ํҧ͏ ݟ͑ํΛදݱͨ͠ͷ ϞσϦϯά
ϞσϦϯάͷత
ϞσϦϯάͷత ͑ΔϞσϧΛ࡞Δ͜ͱ
͑ΔϞσϧ ݱ࣮ʹϊΠζ͕ଟ͗͢Δ ͑Δঢ়گͰ৭ʑ ͕ࣗཧղͰ͖Δ ଞਓʹཧղͰ͖Δ
ཧղͷͨΊͷϞσϧ ཧղͰ͖ͨΒϞσϧ͕Ͱ͖ͯΔ ʮཁʯͬͯݴ͑ͨΒͦΕ͕Ϟσϧ Ξτϓοτͯ͠Δ͔Ͳ͏͔ผ
ϞσϦϯάΛ௨ͨ͡ཧղ ཧղͨ͜͠ͱશͯϞσϧ ϞσϦϯάΛ௨ͯ͡ଟͷϞσ ϧ͕࡞ΒΕΔ ͦͷଟ͘ʹݟ͑ͳ͍ϞσϧͰɺҙ ࣝ͞Εͳ͍͠ͷݟͳ͍
ϞσϦϯάͷΓํ
ϞσϦϯάͷΓํ ಠࣗͷϞσϧΛ࡞͢Δ ൚༻తͳϞσϧʹམͱ͠ࠐΉ
ಠࣗϞσϧͷ࡞
ରͷશମ ԿΛϞσϦϯά͠Αʔ͔
ରͷશମ ͜ͷลʁ Ϟσϧʹ͍ͨ͜͠ͱͷΞλϦΛ ͚ͭΔ
ରͷશମ ͜ͷลʁ Ͳ͏Ͱ͍͍ ʮͲ͏Ͱ͍͍ʯ ͱ͍͏ڧ͍ݴ༿Λ ͋͑ͯͬͯ ҙࣝతʹ֎͢
ରͷશମ Ϟσϧ Ͳ͏Ͱ͍͍ ʮͲ͏Ͱ͍͍ʯΛ Γམͱ͍ͯ͘͠ͱྠ ֲ͕ݟ͑ͯ͘Δ
Ϟσϧ Ͳ͏Ͱ͍͍ͷͰফ ͯ͠͠·͏
Ϟσϧ ڧௐͨ͠Γೱ୶Λ͚ͭͨΓ
൚༻తͳϞσϧͷ࡞ ʢπʔϧ༻ʣ
ϓϩμΫτ Ϋϥεਤ͕ ཉ͍͠
Ϋϥεਤ ը૾ͱ͔Ͱͷग़ྗ ͳΜ͔͍͍ײ͡ͷݟө͑ දݱํ๏ Ͳ͏Ͱ͍͍ QVCMJDҎ֎ͷϝιου
ಛఆύοέʔδҎ֎ͷΫϥε ࣮ͷৄࡉ ͳͲͳͲ ͳΜ͔ͩΜͩͷͱ͜Ζ উखʹͬͯ͘ΕΔ
ϞσϦϯάͷಠࣗϞσϧ ࢲͷϞσϦϯάΛࢲͷಠࣗϞσ ϧͰઆ໌ͯ͠Έͨɻ ΘΒͳ͔ͬͨΒ૬खΛݟͯผ ͷϞσϧΛ͏ʢٽ͔ͳ͍ ͚ͲࠓҰൃউෛͳΜͩΑͶ͐ʜʜ
ϞσϦϯάͰ͖ͯΔ Ͱ͖ͯΔͰ͖ͯͳ͍ͷڥքΛͲ ͜ʹஔ͔ࣗ͘༝ ͑ͨΒʮͰ͖ͯΔʯ͔ͳʁ ʮ͑ΔʯΛԿͰஅ͢Δ͔ͬͯʹ ʢΊΜͲ͍ͭ͘͞
ϞσϦϯάͷϙΠϯτ
ϞσϦϯάͷϙΠϯτ ಉ͜͡ͱಉ͡Α͏ʹදݱ͢Δ ൚༻తͳϞσϧΛར༻͢Δ
ಉ͜͡ͱಉ͡Α͏ʹදݱ͢Δ ҧ͏දݱ͕͞ΕͯΔͱࠞཚ͢Δ σʔλͷྲྀΕͱґଘઢͱ͔͋Γ͕ͪ ใΛҡ࣋ͯ͠දݱΛݮΒ͢
൚༻తͳϞσϧΛ ༻͢Δ ͦͷ··͏ ར༻͢Δ ֦ு͢Δ Ұ෦͚ͩआΓͯ͘Δ ҹ͚ͩͱ͔ΞΠίϯ͚ͩͱ͔
࠷ޙʹ֬ೝ
ΰʔϧςʔϓ ϞσϦϯάશʹཧղͨ͠ʁ
͕࣌ؒ༨ͬͨΒదʹ ͢κʔϯ
ʮϞσϦϯά͕Ͱ͖Δʯ ಠࣗϞσϧ͕࡞ΕΔͱ͍͏͜ͱ Ͱͳ͍ ʮͰ͖ΔʯΛϞσϦϯάͯ͠ΈΔ ͱ͍͍͔
͑ΔϞσϧ ݴ༿ɺͿΓखৼΓϞσϧ ιʔείʔυϞσϧ ͑ΔతͰΘͬͨΒɺͦΕ Ҏ্ͷϞσϦϯάཁΒͳ͍ υΩϡϝϯτΛ࡞Δ͜ͱͰͳ͍
Ξτϓοτͯ͠ΈΑ͏ ͜ͷεϥΠυϞσϦϯάʹର ͢ΔࢲͷϞσϧΛΞτϓοτ͠ ͨͰ͢ ଟҰൠతͳʮϞσϦϯάʯͱ ҧͬͨͱࢥ͍·͢
ΕͰ͖ΔΑ͏ʹͳΔ Βͳ͍͜ͱઈରͰ͖ΔΑ͏ ʹͳΒͳ͍ ࣗͷཧղΛ૬खʹ͑Α͏ͱ ͢ΔͳΒɺͦΕϞσϦϯά ʮϞσϦϯάʯͩͱࢥͬͯऔΓΜͩ ΒϞσϦϯάྗ͍͍͖ͭͯ·͢
Ϟσϧ ʹ͔͠ଘࡏ͠ͳ͍Ϟσϧ ݕূʹෳͷϞσϦϯάͰΞ τϓοτͯ͠ΈΔ
ϞσϦϯάҰ࿈ͷ׆ಈ Ϟσϧ ؍ଌՄೳϞσϧ ใͷմ ղऍ Ξτϓοτ ચ࿅ Ճใͷऩू తʹরΒͨ͠ใͷऩू ͜Ε͘Β͍Ͱ͍͍͔