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
DI-antiPattern.pdf
Search
shindyu
December 20, 2018
0
75
DI-antiPattern.pdf
shindyu
December 20, 2018
Tweet
Share
More Decks by shindyu
See All by shindyu
iPhone へのマイナンバーカード搭載におけるデータ規格についての理解を深める
shindyu
2
1.2k
Embedded frameworkを利用して既存プロジェクトでも爆速でTDD
shindyu
2
940
テスト駆動で会社アプリと個人アプリを開発してみて思ったこと
shindyu
0
700
Featured
See All Featured
Visualization
eitanlees
146
15k
Music & Morning Musume
bryan
46
6.4k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
A Tale of Four Properties
chriscoyier
158
23k
It's Worth the Effort
3n
184
28k
YesSQL, Process and Tooling at Scale
rocio
172
14k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
Designing for humans not robots
tammielis
250
25k
Transcript
DEPENDENCY INJECTION ANTI-PATTERNS @SHINDYU
DEPENDENCY INJECTION ANTI-PATTERNS SELF-INTRODUCTION ▸ ৽ಊ ܟོ / @shindyu ▸
ϠϑΦΫ! iOS ▸ ٕज़ॻయ̑ͰςετຊΛॻ͖·ͨ͠ʂ https://booth.pm/ja/items/1040471
DEPENDENCY INJECTION ANTI-PATTERNS DEPENDENCY INJECTION ▸ ґଘੑͷೖ ʰ͋ΔΦϒδΣΫτʹରͯ͠ґଘؔͷ͋ΔผͷΦϒδΣΫ τΛ֎෦͔Β͢͜ͱʱ ▸
ͷ ▸ ςετ͍͢͠
DEPENDENCY INJECTION ANTI-PATTERNS DEPENDENCY INJECTION PATTERNS ▸ Constructor Injection ▸
Property Injection ▸ Method Injection ▸ Ambient Context
DEPENDENCY INJECTION ANTI-PATTERNS DEPENDENCY INJECTION PATTERNS ▸ Constructor Injection ▸
Property Injection ▸ Method Injection ▸ Ambient Context
DEPENDENCY INJECTION ANTI-PATTERNS DEPENDENCY INJECTION PATTERNS ▸ Constructor Injection ▸
Property Injection ▸ Method Injection ▸ Ambient Context
DEPENDENCY INJECTION ANTI-PATTERNS DEPENDENCY INJECTION PATTERNS ▸ Constructor Injection ▸
Property Injection ▸ Method Injection ▸ Ambient Context
DEPENDENCY INJECTION ANTI-PATTERNS DEPENDENCY INJECTION PATTERNS ▸ Constructor Injection ▸
Property Injection ▸ Method Injection ▸ Ambient Context
DEPENDENCY INJECTION ANTI-PATTERNS DEPENDENCY INJECTION PATTERNS ▸ Constructor Injection ▸
Property Injection ▸ Method Injection ▸ Ambient Context
DEPENDENCY INJECTION ANTI-PATTERNS ANTI-PATTERNS ▸ Control Freak ▸ Bastard Injection
▸ Service Locator
DEPENDENCY INJECTION ANTI-PATTERNS CONTROL FREAK ▸ DI͞Ε͍ͯͳ͍ঢ়ଶ ▸ StableͱVolatileΛݟۃΊͯDIύλʔϯΛ͏
DEPENDENCY INJECTION ANTI-PATTERNS STABLE / VOLATILE ▸ Stable Dependency :
҆ఆͨ͠ґଘؔ ▸ ex) ෦ͰͷΈར༻͢ΔϞδϡʔϧ ▸ Volatile Dependency : شൃੑͷ͋Δґଘؔ ▸ ex) ཚɺ࣌ؒΛར༻͢ΔϞδϡʔϧɺ ɹ ฒߦ։ൃதͰFIX͍ͯ͠ͳ͍ґଘؔ
DEPENDENCY INJECTION ANTI-PATTERNS BASTARD INJECTION ▸ ConstructorͷύϥϝʔλʹσϑΥϧτͱͯ͠ ֎෦ϞδϡʔϧΛࢦఆͯ͠͠·ͬͨঢ়ଶ
DEPENDENCY INJECTION ANTI-PATTERNS BASTARD INJECTION
DEPENDENCY INJECTION ANTI-PATTERNS BASTARD INJECTION
DEPENDENCY INJECTION ANTI-PATTERNS BASTARD INJECTION ▸ ςετॻ͖͍͢ ▸ ͕ɺ݁ہ֎෦Ϟδϡʔϧͷ࣮ʹґଘ͍ͯ͠ΔͷͰμϝ
DEPENDENCY INJECTION ANTI-PATTERNS BASTARD INJECTION ▸ ͜Ε͓ͦΒ͘Bastard InjectionͰͳ͍͕ ґଘ͕ؔΦϓγϣφϧͳΒMethod InjectionͰྑ͍
DEPENDENCY INJECTION ANTI-PATTERNS SERVICE LOCATOR
DEPENDENCY INJECTION ANTI-PATTERNS SERVICE LOCATOR
DEPENDENCY INJECTION ANTI-PATTERNS SERVICE LOCATOR ▸ ґଘؔΛ҉తʹӅ͍ͯ͠Δ ▸ ServiceLocatorͷґଘ͕ൃੜ͍ͯ͠Δ ▸
ServiceLocatorܦ༝Ͱ࡞ΒΕͨͷ͔֬ೝ͢Δඞཁ͕͋Δ
DEPENDENCY INJECTION ANTI-PATTERNS SUMMARY ▸ Dependency Injection ▸ Constructor Injection
▸ Property Injection ▸ Method Injection ▸ Ambient Context ▸ Anti-Patterns ▸ Control Freak ▸ Bastard Injection ▸ Service Locator ͍ͨͩ͠ύλʔϯΛཧղͯ͠ΑΓྑ͍ίʔυΛʂ
DEPENDENCY INJECTION ANTI-PATTERNS REFERENCES ▸ http://ilya.puchka.me/dependency-injection-in-swift/ ▸ https://www.future-processing.pl/blog/introduction-to- dependency-injection/