Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Do you know Dependency Injection?
Search
izumin5210
May 02, 2015
Technology
180
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Do you know Dependency Injection?
Code for KOSEN勉強会 #3 発表資料
izumin5210
May 02, 2015
More Decks by izumin5210
See All by izumin5210
コンパウンドプロダクト開発のためのローカルプロセスマネージャー再発明 #layerxgo
izumin5210
0
690
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
開発体験を左右するライブラリの API 設計 - GraphQL スキーマ構築ライブラリから考える #tskaigi
izumin5210
2
2.2k
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
2
1.1k
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
8
3.1k
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
6
2.4k
Building AI Agents with TypeScript #TSKaigiHokuriku
izumin5210
6
1.8k
Web エンジニアが JavaScript で AI Agent を作る / JSConf JP 2025 sponsor session
izumin5210
4
3.6k
AI Coding Meetup #3 - 導入セッション / ai-coding-meetup-3
izumin5210
0
3.8k
Other Decks in Technology
See All in Technology
CI/CDではもう遅い - 人とAIが迂回しないDevSecOps Verify基盤の再設計 -
kintotechdev
0
160
特殊変数大全
dak2
0
130
Claude Codeを「使うほど育つ」AI秘書にするノウハウ
minorun365
PRO
33
32k
Oracle Cloud Infrastructure(OCI):Onboarding Session(はじめてのOCI/Oracle Supportご利⽤ガイド)
oracle4engineer
PRO
2
20k
品質と信頼性を地続きにする
grimoh
2
1k
Kiro Meetup #8 Kiro アップデート (2026/3/21〜2026/9/24)
katzueno
1
200
SREの視点で考えるSIEM活用術 〜AWS環境でのセキュリティ強化〜
cscengineer
PRO
0
330
AIは推し活である。
kurazuuuuuu
1
970
C#コードの結合を可視化する Roslyn解析による設計改善と リファクタリング判断
dora56
0
610
2026-09-18 gotanda.sre Terraformで複数環境作ったり、複数Stateに分割したりそれとTerragrunt / Terraform multi envs and multi states
masasuzu
4
730
aws-iot-platform-architecture-use-cases.pdf
ma2shita
0
650
事業課題から技術的負債に向き合う
sansantech
PRO
2
2.3k
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.9k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
The Invisible Side of Design
smashingmag
301
52k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
440
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
740
Git: the NoSQL Database
bkeepers
PRO
432
67k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
900
How GitHub (no longer) Works
holman
316
150k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
600
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
590
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Transcript
None
Ƅ Rekimoto Lab. at University of Tokyo (Samura Lab. at
Akashi-NCT) Enginner at Wantedly, Inc. Mentor at Life is Tech, Inc.
None
None
Ruby Ruby on Rails JavaScript Android Design Others Skill Ratio
Depdendency Injection
依 存 性 注 入 ディペンデンシー・インジェクション
依存性の注入とは、コンポーネント間の依存関係を プログラムのソースコードから排除し、 外部の設定ファイルなどで注入できるようにする ソフトウェアパターンである。 依存性の注入 - Wikipedia
共通 component ふつうのばあい
共通 component ふつうのばあい 直接参照している (global 変数,new など)
共通 component ふつうのばあい component の機能が少ない… 拡張しよう!
共通 component ふつうのばあい _人人人人人人人人_ > 突然の密結合 <  ̄Y^Y^Y^Y^Y^Y^Y ̄
共通 component DI する場合 インタフェースを参照する
共通 component DI する場合 どの実態を利用するか DI コンテナに記述
共通 component DI のメリット ここは単体テストで OK
共通 component の モック DI のメリット mock に差し替えると テストが容易に!
None
None
Android DI をつかおう JavaScript
Android DI をつかおう Dagger2
Android における DI Sign in 遷移 tweet 取得
Android における DI Sign in 遷移 tweet 取得 インスタンス変数に保持してると… ライフサイクルに巻き込まれて死ぬ
Android における DI Sign in 遷移 tweet 取得 DI コンテナ
Android における DI Sign in 遷移 tweet 取得 DI コンテナ
DI コンテナが User を保持するので ライフサイクルに巻き込まれない!
DI をつかおう JavaScript Browserify
JavaScript における DI グローバルオブジェクト(window/global)
JavaScript における DI グローバルオブジェクト(window/global) _人人人人人人人人人_ > グローバル汚染 <  ̄Y^Y^Y^Y^Y^Y^Y^Y ̄
JavaScript における DI グローバルオブジェクト(window/global)
JavaScript における DI グローバルオブジェクト(window/global) DI コンテナに押し込めて グローバル汚染を防止
まとめ DIでグローバル汚染の防止 DIでテスタビリティ向上 DIでモジュールの疎結合化 Android では… Dagger / Dagger2 JavaScript
では… Browserify / ECMAScript 6
None
None
None