� Rekimoto Lab. at University of Tokyo(Samura Lab. at Akashi-NCT)
� Enginner at Wantedly, Inc.Mentor at Life is Tech, Inc.
依 存 性 注 入ディペンデンシー・インジェクション
依存性の注入とは、コンポーネント間の依存関係をプログラムのソースコードから排除し、
外部の設定ファイルなどで注入できるようにするソフトウェアパターンである。
依存性の注入 - Wikipedia
共通 component
ふつうのばあい
直接参照している(global 変数,new など)
共通 component
ふつうのばあいcomponent の機能が少ない…拡張しよう!
Android における DI
Sign in
遷移
tweet 取得
インスタンス変数に保持してると…� ライフサイクルに巻き込まれて死ぬ
Android における DI
Sign in
遷移
tweet 取得DI コンテナ
DI コンテナが User を保持するのでライフサイクルに巻き込まれない!
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