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
TypeScriptでDIしてみた
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Ryohei Hisamitsu
January 16, 2021
Technology
520
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
TypeScriptでDIしてみた
Ryohei Hisamitsu
January 16, 2021
More Decks by Ryohei Hisamitsu
See All by Ryohei Hisamitsu
re:Invent参加フィードバック会
hisami
0
110
GoのアプリをEKS(Fargate)にデプロイしてみた話
hisami
0
260
Greengrassを使ったIoTのアーキテクチャ
hisami
0
180
ECS Execを使ってFargateにログインしてみた
hisami
1
400
Other Decks in Technology
See All in Technology
爆速でマルチプロダクトを立ち上げる時 事業・CTO目線で大事にしたい事
miyatakoji
0
100
現地で盛り上がった WWDC26 Keynote
zozotech
PRO
1
180
Dario Amodi『Policy on the AI Exponential』を理解する
nagatsu
0
210
2026 TECHFRESH 畢業分享會 - AI-Native 重塑軟體工程與虛擬講師
line_developers_tw
PRO
0
740
SIer20年! 培ったスキルがスタートアップで輝く時
shucho0103
0
830
社内 AI エージェント Synapse と セマンティックレイヤーの育て方
hiroakis
2
1.6k
Kubernetesにおける学習基盤とLLMOpsの概要
ry
1
240
RAG を使わないという選択肢
tatsutaka
1
160
やさしいA2A入門
minorun365
PRO
11
1.7k
作って終わりにしない タイミーのセマンティックレイヤー育成の現在地
chanyou0311
3
2.1k
AI駆動開発を通して感じた、 AI時代のデザイナーの役割変化
whisaiyo
0
210
JSAI2026 オーガナイズドセッションOS-27「不動産とAI」趣旨説明 / JSAI2026 Organized Session OS-27 “Real Estate and AI”: Statement of Purpose
ykiyota
0
220
Featured
See All Featured
Docker and Python
trallard
47
3.9k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
Statistics for Hackers
jakevdp
799
230k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
210
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
310
Accessibility Awareness
sabderemane
1
140
Site-Speed That Sticks
csswizardry
13
1.2k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
140
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.9k
Making the Leap to Tech Lead
cromwellryan
135
9.9k
Transcript
で してみた NCDC株式会社 久光遼平
DI(Dependency Injection)とは? • 依存性(Dependency)の注入(Injection) • もう少しわかりやすく あるクラスが依存している要素をクラスの外側から注入すること ClassA { private
classB constructor( ClassBInterface classB ) { this.classB = classB; } } ClassA { private classB constructor() { this.classB = new ClassB(); } }
何が嬉しいの? • 単体テストがしやすくなる! class Service { private repository; constructor() {
this.repository = new Repository(); } find() { // ... this.repository.find(); return; } } よくあるテストしにくい例 テストしたいのはService層のロジック Repository(DB)のテストも含まれてしまう ・テスト失敗した時の切り分けが面倒 ・実行時間がかかる DI→テスト側からモックを注入できる!
実際のアプリではどうやって注入するの? • DIコンテナという便利な仕組みがある ◦ インスタンスの生成、注入を一括で行ってくれる
TypeScriptのDIライブラリ
②注入する側 ①注入される側 ③DIコンテナ 実装例 ④express
まとめ • DIすればテストしやすい作りにできる • DIの仕組みを作るにはInversifyJSを使えば楽 • あとはテストの時にモックを注入するだけ! • 追記:Jestのモック機能を使えば、DIしなくてもテストは書けそう ◦
DIのメリット→より簡単に自由にテスト書ける