JavaScript @ Spotify (Felipe Ribeiro Technology Stream)
-
Upload
lviv-it-arena -
Category
Technology
-
view
53 -
download
1
Transcript of JavaScript @ Spotify (Felipe Ribeiro Technology Stream)
![Page 1: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/1.jpg)
JS @ SPOTIFYFELIPE RIBEIRO | @FELIPERNB
![Page 2: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/2.jpg)
SPOTIFY FOR DESKTOP IS A WEB-BASED APP
![Page 3: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/3.jpg)
A BIT OF HISTORY…
![Page 4: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/4.jpg)
![Page 5: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/5.jpg)
![Page 6: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/6.jpg)
![Page 7: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/7.jpg)
WEB VIEWS INSIDE THE CLIENT WITH CEF
![Page 8: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/8.jpg)
![Page 9: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/9.jpg)
![Page 10: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/10.jpg)
![Page 11: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/11.jpg)
![Page 12: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/12.jpg)
WEBALL THE THINGS!!1!
![Page 13: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/13.jpg)
![Page 14: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/14.jpg)
TO REWRITE OR NOT TO REWRITE?
![Page 15: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/15.jpg)
EMOTIONAL DISCUSSIONS !
![Page 16: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/16.jpg)
ENGINEERING THINKING !
![Page 17: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/17.jpg)
TRADE-OFFS ⚖
![Page 18: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/18.jpg)
THE ARCHITECTURE
![Page 19: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/19.jpg)
client-core
client-desktop
Chromium Embedded Framework
JS Container
Browse Search Radio Playlist
![Page 20: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/20.jpg)
![Page 21: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/21.jpg)
DID YOU JUST SAY *IFRAMES*? !
![Page 22: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/22.jpg)
THE CODEBASE
![Page 23: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/23.jpg)
▸ one repository per app (playlist, browse, search, …)▸ one repository per lib
▸ internal npm registry to publish and distribute the libs
![Page 24: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/24.jpg)
NOPE !
![Page 25: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/25.jpg)
WHY NOT?
![Page 26: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/26.jpg)
HARD TO COORDINATE HORIZONTAL CHANGES
![Page 27: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/27.jpg)
COMPLICATES CI, TESTABILITY AND
STANDARDIZATION
![Page 28: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/28.jpg)
dependencies: { "spotify-css": "~1.0.0", "spotify-uri": "~1.5.0"}
dependencies: { "spotify-css": "~2.0.0", "spotify-uri": "~1.0.0"}
![Page 29: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/29.jpg)
![Page 30: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/30.jpg)
One repo to rule them all— Git Sauron
![Page 31: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/31.jpg)
MONOREPO !
![Page 32: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/32.jpg)
▸ simplified CI▸ easier to test the impact of changes▸ free to break backwards compatibility▸ atomic refactorings (and rollbacks)▸ consistency and standardization
![Page 33: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/33.jpg)
![Page 34: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/34.jpg)
things are simpler than before, but there’s still a lot of entropy
![Page 35: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/35.jpg)
GOLDEN PATH
![Page 36: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/36.jpg)
▸ standardization workgroup▸ de-facto standards and path of least resistance
▸ data-driven decision making
![Page 37: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/37.jpg)
LESSONS LEARNED
![Page 38: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/38.jpg)
!EVOLVE THINGS INCREMENTALLY
![Page 39: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/39.jpg)
!NO “IVORY TOWER” INFRA
TEAM
![Page 40: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/40.jpg)
!GIT REPOSITORIES SHOULDN’T
DEFINE THE ARCHITECTURE
![Page 41: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/41.jpg)
!CONSISTENCY IS KEY
![Page 42: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/42.jpg)
LIKE THE CHALLENGES?SPOTIFY.COM/JOBS
![Page 43: JavaScript @ Spotify (Felipe Ribeiro Technology Stream)](https://reader031.fdocuments.in/reader031/viewer/2022021922/5871af2d1a28abda6a8b63d3/html5/thumbnails/43.jpg)
QUESTIONS? !@FELIPERNB