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
Sota Sugiura
November 23, 2018
Programming
670
9
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
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
2k
20220926_セキュリティチームの今_for_Drs._Prime_公開用.pdf
sota1235
0
210
再発防止策を考える技術 / #phpconsen
sota1235
10
4.1k
Realtime Database for high traffic production application
sota1235
7
4.3k
Road to migrate JP Web as a microservice
sota1235
4
1.8k
インターフェース再入門 / Think Interface again
sota1235
6
11k
再発防止策を考える技術 #phpconfuk_rej
sota1235
1
1.4k
Update around Firebase #io18
sota1235
3
4.5k
Introduction for sonarwhal
sota1235
0
660
Other Decks in Programming
See All in Programming
【やさしく解説 設計編・中級 #4】ルールの寿命と、システムの年輪
panda728
PRO
2
180
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
550
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
140
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
4
360
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
550
数百円から始めるRuby電子工作
tarosay
0
130
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
450
Built Our Own Background Agent at LayerX
layerx
PRO
9
4.8k
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
360
torikago - Ruby::Boxで照らすモジュラモノリスの実行境界
se4weed
1
330
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
470
継続モナドとリアクティブプログラミング
yukikurage
3
680
Featured
See All Featured
30 Presentation Tips
portentint
PRO
1
360
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
520
Producing Creativity
orderedlist
PRO
348
40k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.6k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
430
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
The browser strikes back
jonoalderson
0
1.4k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
BBQ
matthewcrist
89
10k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
920
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
400
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