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
“Why JS is way to go for backend”
Search
GDG Cherkasy
February 15, 2019
Technology
0
75
“Why JS is way to go for backend”
Denys Pysmennyi “Why JS is way to go for backend”
GDG Cherkasy
February 15, 2019
Tweet
Share
More Decks by GDG Cherkasy
See All by GDG Cherkasy
Трансформація від розробника до ліда: байки та поради.
gdgcherkasy
0
110
Емоції: усвідомлення, прийняття, комунікація
gdgcherkasy
0
71
Kibana Plugin Development - Vlad Bolibruk
gdgcherkasy
0
72
CoreData, custom merge policy
gdgcherkasy
2
1.5k
macOS_for_iOS_devs2.pdf
gdgcherkasy
0
69
MQTT.pdf
gdgcherkasy
1
35
Инструменты Lean Product Management как точки пересечения проектов с "реальностью": хватит клонировать плохие решения!
gdgcherkasy
1
73
Насколько силен Иммунитет вашей организации?
gdgcherkasy
1
98
From Project Manager to CEO by Alyona Vlasiuk
gdgcherkasy
0
55
Other Decks in Technology
See All in Technology
【Startup CTO of the Year 2024 / Audience Award】アセンド取締役CTO 丹羽健
niwatakeru
0
1.8k
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.8k
Introduction to Works of ML Engineer in LY Corporation
lycorp_recruit_jp
0
160
【Pycon mini 東海 2024】Google Colaboratoryで試すVLM
kazuhitotakahashi
2
600
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
160
アジャイルチームがらしさを発揮するための目標づくり / Making the goal and enabling the team
kakehashi
4
260
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
390
OOM発生時のトラブルシューティング Profilerを活用できるか調査してみた
atsushii
0
120
飲食店データの分析事例とそれを支えるデータ基盤
kimujun
0
230
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
4
250
Chasing the White Whale of Open Source - ROI
mrbobbytables
0
120
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
160
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
What's new in Ruby 2.0
geeforr
343
31k
BBQ
matthewcrist
85
9.3k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
910
Music & Morning Musume
bryan
46
6.2k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
850
How to Ace a Technical Interview
jacobian
276
23k
A better future with KSS
kneath
238
17k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Code Review Best Practice
trishagee
64
17k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Transcript
Denys Pysmennyi Why JS is a way to go for
backend
Will talk about • NodeJS to start project • NodeJS
&& Microservices • How to make back-end good again
DISCLAIMER: Language is just a tool, choose the right tool
for the right job* *JS is still the best
Some stats stackoverflow dou.ua Google searches
NodeJS awesome for small projects • Easy to start •
npm
NodeJS classic MEAN set-up
NodeJS classic MEAN set-up
NodeJS classic MEAN set-up
NodeJS classic MEAN set-up Express + ORM + Rest +
generator(blueprints) = MVC https://sailsjs.com
NodeJS classic MEAN set-up
NodeJS awesome for microservices
NodeJS awesome for microservices • Speed • Restart time •
Memory
NodeJS awesome for microservices • Speed • Restart time •
Memory
NodeJS performance • Each metric shows different result • Golang
is really good at concurrency • Js seems to be better at high concurrency then Java • PHP looks promising and scary
NodeJs performance (reqs/sec) https://medium.com/car2godevs/node-js-10-is-the-lts-the-enterprise-will-love-2395372a80c3
Ok, so how to build it?
What do we use in Taxify?
and we are hiring... • 15 million users • 500,000
drivers • 25 countries • 100+ developers • 100++ misro-services
What we use in Taxify? We’ve created our own framework
API generation Generated API Connect services Test Mocks Documentation, Visualization
Tests
Tests
Tests Component tests - balanced way for microservices Test Service
DB Mock
Tests Component tests - balanced way for microservices Test Service
DB Test Service DB Mock Mock Service DB
So how to build good backend • Good framework for
api • Good and right tests • What else?
Monitoring
Deployment
Good Backend: dependencies • Check dependencies • NPM scripts(rm -rf)
• Use NPM proxy: Verdaccio • nodesecurity.io
Good Backend: linters and code style • Little more Java,
little less Ruby • Read some Uncle Bob • Choose code style https://github.com/airbnb/javascript • Configure Eslint Tslint
Good Backend: typescript • DefinitelyTyped lib • TypeScript 3
Good Backend: async/callback • Callback are ok if you know
how to cook them • async/await • if you need more than 2 states: go with streams
Good Backend: async/callback • Callback are ok if you know
how to cook them • async/await • if you need more than 2 states: go with streams
Good Backend: some others tools • Debug: chrome://inspect debug from
browser • Deno - ts runtime from Node creator • GraphQL
Summary • Do NodeJS for fun • Do NodeJS for
enterprise • Do NodeJS good
Thank you! Denys Pysmenny
[email protected]
JavaScript developer