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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Takashi Matsuyuki
May 30, 2019
Technology
360
0
Share
goはwireでDIする
Takashi Matsuyuki
May 30, 2019
More Decks by Takashi Matsuyuki
See All by Takashi Matsuyuki
新規事業立ち上げ、グロースで きちんと”デリバリー”も"ディスカバリー"も し続けられるアジャイル組織の作り方
applepine1125
2
2.6k
最後に勝つ負け方を知っておく
applepine1125
1
520
評価者を孤独にしない
applepine1125
15
6.1k
"OKR"と"野望"で、 メンバーと組織をアラインメントする
applepine1125
5
1.2k
君たちはどうユーザーと向き合うか
applepine1125
0
460
Self-Organizing Product Development Team: Empowered Output Cycle and Collaborative Culture
applepine1125
0
1.3k
オーナーシップを持ち自己組織化するチームに必要な Engineering Program Managerという役割
applepine1125
2
2.3k
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
20260428_Product Management Summit_Loglass_JoeHirose
loglassjoe
2
3.6k
AgentCore×VPCでの設計パターンn選と勘所
har1101
3
300
はじめての MagicPod生成AI機能 機能紹介から活用方法まで
magicpod
0
110
Shipping AI Agents — Lessons from Production
vvatanabe
0
280
データ定義の混乱と戦う 〜 管理会計と財務会計 〜
wonohe
0
140
ハーネスエンジニアリングの概要と設計思想
sergicalsix
9
5.3k
コミュニティ・勉強会を作るのは目的じゃない
ohmori_yusuke
0
250
AIを共同作業者にして書籍を執筆する方法 / How to Write a Book with AI as a Co-Creator
ama_ch
2
150
Pure Intonation on Browser: Building a Sequencer with Ruby
nagachika
0
150
これからの「データマネジメント」の話をしよう
sansantech
PRO
0
150
目的ファーストのハーネス設計 ~ハーネスの変更容易性を高めるための優先順位~
gotalab555
8
2.3k
今年注目する!データ分析プラットフォームでのAIの活用
nayuts
0
150
Featured
See All Featured
HDC tutorial
michielstock
2
630
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
10k
The Cult of Friendly URLs
andyhume
79
6.8k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
230
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
280
YesSQL, Process and Tooling at Scale
rocio
174
15k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.4k
The SEO Collaboration Effect
kristinabergwall1
1
430
Designing for Performance
lara
611
70k
Side Projects
sachag
455
43k
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ͰΓͮΒ͞Λײͨ͡ ͱ͖ʹͦͦઃܭ͕·͍ͣͷͰʁͱཱͪͬͯߟ͑Δ͖͔͚ͬʹ
ͳΓͦ͏ ϝϦσϝ
ୀ۶ͳ͜ͱ ϥΠϒϥϦʹΒͤΑ͏