Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
How to choose the best npm module for your team?
Search
Sota Sugiura
November 23, 2018
Programming
9
620
How to choose the best npm module for your team?
2018/11/23
Presented at NodeFest 2018@Tokyo
https://nodefest.jp/2018/
Sota Sugiura
November 23, 2018
Tweet
Share
More Decks by Sota Sugiura
See All by Sota Sugiura
内製したSlack Appで頑張るIncident Response@Waroom Meetup #1 / Incident Response with Slack App in 10X
sota1235
0
1.8k
20220926_セキュリティチームの今_for_Drs._Prime_公開用.pdf
sota1235
0
160
再発防止策を考える技術 / #phpconsen
sota1235
10
4k
Realtime Database for high traffic production application
sota1235
7
4.2k
Road to migrate JP Web as a microservice
sota1235
4
1.7k
インターフェース再入門 / Think Interface again
sota1235
6
11k
再発防止策を考える技術 #phpconfuk_rej
sota1235
1
1.3k
Update around Firebase #io18
sota1235
3
4.4k
Introduction for sonarwhal
sota1235
0
610
Other Decks in Programming
See All in Programming
大体よく分かるscala.collection.immutable.HashMap ~ Compressed Hash-Array Mapped Prefix-tree (CHAMP) ~
matsu_chara
1
210
複数人でのCLI/Infrastructure as Codeの暮らしを良くする
shmokmt
5
2.2k
Microservices Platforms: When Team Topologies Meets Microservices Patterns
cer
PRO
1
1k
Rediscover the Console - SymfonyCon Amsterdam 2025
chalasr
2
160
TypeScript 5.9 で使えるようになった import defer でパフォーマンス最適化を実現する
bicstone
1
1.2k
How Software Deployment tools have changed in the past 20 years
geshan
0
28k
UIデザインに役立つ 2025年の最新CSS / The Latest CSS for UI Design 2025
clockmaker
18
7.2k
TypeScriptで設計する 堅牢さとUXを両立した非同期ワークフローの実現
moeka__c
6
3k
俺流レスポンシブコーディング 2025
tak_dcxi
14
8.4k
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
140
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
120
AI時代もSEOを頑張っている話
shirahama_x
0
270
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
970
Facilitating Awesome Meetings
lara
57
6.7k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Writing Fast Ruby
sferik
630
62k
Visualization
eitanlees
150
16k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
710
[SF Ruby Conf 2025] Rails X
palkan
0
480
Done Done
chrislema
186
16k
The Cost Of JavaScript in 2023
addyosmani
55
9.3k
RailsConf 2023
tenderlove
30
1.3k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
Unsuck your backbone
ammeep
671
58k
Transcript
How to choose the best npm module for your team?
@sota1235
Title @sota1235 Sota Sugiura Backend Engineer@Mercari, Inc. “My dream is
to be JavaScript”
Title @sota1235 Sota Sugiura Backend Engineer@Mercari, Inc. “My dream is
to be JavaScript”
Q. How many npm module are you using?
None
197
197 = 197 decisions
Q. Can you explain a reason behind every npm module
you chose?
Let’s think! https://jp.freeimages.com/photo/thinking-1387695
http://www.modulecounts.com/
It’s like a jewelry box! Let’s choose!
Wait!! Can you explain the Goal you set?
Using a npm module is not Goal Goal is to
solve the problem
Define the Goal Think about the candidates Decide what to
use Solve the problem
Define the Goal Think about the candidates Decide what to
use Solve the problem
Define the Goal • There are still many problems to
solve • We always use some tool to solve that problem
Define the Goal Think about the candidates Decide what to
use Solve the problem
Search a npm module • www.npmjs.com • awesome-* pages •
Recommendation from other engineers • Googling
Define the Goal Think about the candidates Decide what to
use Solve the problem
Select from candidates • When you have multiple choices, you
need to compare them • There are a lot of points to do that
• Star count • API design • Size of community
• Performance • Documentation • Test coverage • Quality of code • and so on...
https://jp.freeimages.com/photo/cat-1537181
Again, the Goal is... • Let’s decide the priority by
thinking about the Goal • If you will use it for prototyping, not necessary to mind test coverage • If you will use it for only development environment, file size won’t be a problem
OK, let’s use that!
Wait!! Did you think about the cost to maintain that?
Using a npm module is not free :( • It
takes time to maintain • Managing vulnerability/version • If maintenance stops, you will need to fork it
Think about Pros/Cons everytime • We SHOULD think about Pros/Cons
everytime • What is the benefit to use that? • What is the problem to use that? • If Pros won, let’s use that!
Define the Goal Think about the candidates Decide what to
use Solve the problem
None
Q. Can you explain a reason behind every npm module
you chose?
Conclusion
Make it better! • You should be able to explain
the reason • It’ll be a good experience even if you made a wrong decision
Thank you @sota1235 JavaScript lover