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
How to choose the best npm module for your team?
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Sota Sugiura
November 23, 2018
Programming
9
640
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
180
再発防止策を考える技術 / #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.4k
Update around Firebase #io18
sota1235
3
4.4k
Introduction for sonarwhal
sota1235
0
630
Other Decks in Programming
See All in Programming
Railsの気持ちを考えながらコントローラとビューを整頓する/tidying-rails-controllers-and-views-as-rails-think
moro
5
390
encoding/json/v2のUnmarshalはこう変わった:内部実装で見る設計改善
kurakura0916
0
400
AI時代でも変わらない技術コミュニティの力~10年続く“ゆるい”つながりが生み出す価値
n_takehata
2
720
AI時代のソフトウェア開発でも「人が仕様を書く」から始めよう-医療IT現場での実践とこれから
koukimiura
0
140
Fundamentals of Software Engineering In the Age of AI
therealdanvega
1
240
猫の手も借りたい!ので AIエージェント猫を作って社内に放した話 Claude Code × Container Lambda の Slack Bot "DevNeko"
naramomi7
0
260
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
480
PostgreSQL を使った快適な go test 環境を求めて
otakakot
0
540
Unity6.3 AudioUpdate
cova8bitdots
0
120
LangChain4jとは一味違うLangChain4j-CDI
kazumura
1
170
Claude Code Skill入門
mayahoney
0
200
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
130
Featured
See All Featured
Test your architecture with Archunit
thirion
1
2.2k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Designing Experiences People Love
moore
143
24k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
220
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Un-Boring Meetings
codingconduct
0
220
Darren the Foodie - Storyboard
khoart
PRO
3
2.8k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
630
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
130
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
460
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
Unsuck your backbone
ammeep
672
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