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
goはwireでDIする
Search
Takashi Matsuyuki
May 30, 2019
Technology
370
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
goはwireでDIする
Takashi Matsuyuki
May 30, 2019
More Decks by Takashi Matsuyuki
See All by Takashi Matsuyuki
新規事業立ち上げ、グロースで きちんと”デリバリー”も"ディスカバリー"も し続けられるアジャイル組織の作り方
applepine1125
2
2.7k
最後に勝つ負け方を知っておく
applepine1125
1
540
評価者を孤独にしない
applepine1125
15
6.1k
"OKR"と"野望"で、 メンバーと組織をアラインメントする
applepine1125
5
1.2k
君たちはどうユーザーと向き合うか
applepine1125
0
470
Self-Organizing Product Development Team: Empowered Output Cycle and Collaborative Culture
applepine1125
0
1.4k
オーナーシップを持ち自己組織化するチームに必要な Engineering Program Managerという役割
applepine1125
2
2.4k
Settlement simulation testing to ensure correct settlement processing
applepine1125
2
3.2k
learning-cleanarchitecture-in-go
applepine1125
0
230
Other Decks in Technology
See All in Technology
CIで使うClaude
iwatatomoya
0
290
CDKで書くECSのベストプラクティス、 改めて考え直す2026 #cdkconf2026
makies
3
830
プロダクト開発組織の現在地(Ver.2026/07) / product-organization
kaonavi
0
110
Claude Code公式skillで 自分の仕事を少しずつ手放そう!(Claude Code開発ノウハウ大公開スペシャル by クラスメソッド)
kaym
1
500
変更し続けられるシステムをどう保つか — AI時代のSSoTという設計原則
kawauso
0
190
ガバナンスの「ちょうどいい落とし所」を探れ!開発スピードを妨げない運用判断の勘所 / SRE NEXT 2026
genda
1
260
マルチアカウント環境でSecurity Hubの運用、その後どうなった? / SRE NEXT 2026 miniLT会
genda
0
110
Webアプリ認証の全体像 / The Big Picture of Web App Authentication
kitano_yuichi
0
180
オブザーバビリティ、本当に活用できてる? 〜API連携×生成AIで成熟度を自動評価〜
dmmsre
1
3.6k
AIレビューはどこまで任せられるのか?自動化と人が背負うレビューの境界
sansantech
PRO
3
1.1k
2年前に削除したPHPクラスが、 ある日突然決済をエラーにした
ykagano
1
390
DMM.com 購入改善推進チーム におけるCodeRabbitを用いた レビューフロー改善の一例
ysknsid25
2
670
Featured
See All Featured
エンジニアに許された特別な時間の終わり
watany
108
250k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
510
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
980
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
BBQ
matthewcrist
89
10k
The Limits of Empathy - UXLibs8
cassininazir
1
500
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.4k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.8k
Transcript
GowireͰDI͢Δ
ࣗݾհ ໊લ: দઇ @applepine1125
ΞδΣϯμ • wireͱ • ͍ํ • ϝϦοτɺσϝϦοτ
wireͱʁ
wireͱʁ w ґଘੑͷೖɺॳظԽΛߦ͏ϝιουΛࣗಈੜͯ͘͠ΕΔ ϥΠϒϥϦ w QSPWJEFS ֤ίϯϙʔωϯτͷΠχγϟϥΠβ ͱJOKFDUPS QSPWJEFS ͨͪΛݺͼग़ͯ͠%*͢Δ
Λ׆༻͍͍ͯ͠ײ͡ʹ%*͢Δ w HPPHMFɺ(P$MPVE͔ΒϥΠϒϥϦͱͯ͠Γग़͞Εͨ
͍ํ
͍ํ ྫ ҎԼͷΑ͏ͳϞδϡʔϧ܈Λ͍͍ײ͡ʹ%*͍ͨ͠ ֤ϞδϡʔϧͷQSPWJEFSΛ࣮ XJSFHPʹJOKFDUPSΛ࣮ wire genͰXJSF@HFOHPΛੜɺඞཁͳॴͰݺͼग़͢
֤ϞδϡʔϧͷproviderΛ࣮
֤QSPWJEFSΛXJSF#VJMEʹ·ͱΊͯಥͬࠐΉ ߦʹ// +build wireinject Λهड़͠ͳ͍ͱXJSFHFO͕ೝࣝ ͯ͘͠Εͳ͍ injectorΛ࣮
// +build wireinject Λهड़ͯ͋͠ΔϑΝΠϧΛೝࣝͯ͠ XJSF@HFOHP͕ੜ͞ΕΔ Γͳ͍ͷ͕͋Δ߹$-*ͷΤϥʔίϝϯτʹग़Δ wire_gen.goͷੜ
injectorͷهड़όϦΤʔγϣϯ FSSPSΛฦ͠͏ΔQSPWJEFS͕͋Δͱ͖ JOKFDUPSͷΓʹFSSPSΛՃ͢Δ͚ͩ ྫ /FX%3FQPTJUPSZ͕FSSPSΛฦ͠͏Δ
injectorͷهड़όϦΤʔγϣϯ FSSPSͱԿΒ͔ͷؔΛฦ͠͏ΔQSPWJEFS͕͋Δͱ͖ JOKFDUPSͷΓʹFSSPSͱGVOD ΛՃ͢Δ͚ͩ ྫ /FX%3FQPTJUPSZ͕FSSPSͱ%#$MPTF͢ΔؔΛฦ͠͏Δ
injectorͷهड़όϦΤʔγϣϯ ೖ͍ͨ͠ߏମ͕͋Δͱ͖ JOKFDUPSͷҾʹೖ͍ͨ͠ߏମΛՃ͢Δ͚ͩ ྫ /FX%3FQPTJUPSZ͕JOGSB%#JOUFSGBDFΛҾʹͱΓɺJOUFSGBDFΛ࣮ͨ͠NZTRMSFEJTଓ ͢ΔͨΊͷߏମΛJOKFDUPSͷݺͼग़͠ઌͰೖΕΔ
wireͷศརػೳ ・wire.NewSet(..interface{}) ProviderSet QSPWJEFSΛάϧʔϐϯάͰ͖Δ ґଘ͕ଟ͍ϞδϡʔϧͷQSPWJEFSΛ·ͱΊ͓ͯ͘ͱศར #4FSWJDF͕ґଘ͢ΔϞδϡʔϧ͕ଟ͍ͱ͖ɺ/FX4FUͰ·ͱΊͯɾɾɾ JOKFDUPSͰݺͼग़͢ͱศར
wireͷศརػೳ ଞʹ৭ʑ ɾwire show ͰQSPWJEFS4FUͷґଘϞδϡʔϧΛ֬ೝ ɾ#JOEJOH*OUFSGBDFͰJOUFSGBDFͱ࣮Λඥ͚ͮ ɾ#JOEJOH7BMVFTͰࢦఆͨ͠ΛಥͬࠐΜͰॳظԽ͢Δ υΩϡϝϯτΛಡ͏ IUUQTHJUIVCDPNHPPHMFXJSFUSFFNBTUFS@UVUPSJBM IUUQTHJUIVCDPNHPPHMFXJSFUSFFNBTUFSEPDT
IUUQTHPEPDPSHHJUIVCDPNHPPHMFXJSF
ϝϦοτɺσϝϦοτ
ϝϦοτ ɾʑͱΠχγϟϥΠβॻ͔ͳ͍͍ͯ͘ͷָ ɾΤϥʔϋϯυϦϯάͱ͔͢Δඞཁ͕͋Δͱ͖ߋʹָ ɾ1SPWJEFS4FUศར σϝϦοτ ɾಉ͡ύοέʔδʹෳXJSFHPஔ͚ͳ͍ ˠςετ༻ʹ%*͍ͨ͠ͱ͖ෆศ ɾΠχγϟϥΠβͰෳࡶͳ͜ͱ͢ΔͨΊʹख࣮͢Δ͔͠ͳ͍ ׂͱඞཁेͳػೳἧ͍ͬͯΔͷͰɺXJSFͰΓͮΒ͞Λײͨ͡ ͱ͖ʹͦͦઃܭ͕·͍ͣͷͰʁͱཱͪͬͯߟ͑Δ͖͔͚ͬʹ
ͳΓͦ͏ ϝϦσϝ
ୀ۶ͳ͜ͱ ϥΠϒϥϦʹΒͤΑ͏