JavaScript @ Spotify (Felipe Ribeiro Technology Stream)
-
Upload
lviv-it-arena -
Category
Technology
-
view
53 -
download
1
Transcript of JavaScript @ Spotify (Felipe Ribeiro Technology Stream)
JS @ SPOTIFYFELIPE RIBEIRO | @FELIPERNB
SPOTIFY FOR DESKTOP IS A WEB-BASED APP
A BIT OF HISTORY…
WEB VIEWS INSIDE THE CLIENT WITH CEF
WEBALL THE THINGS!!1!
TO REWRITE OR NOT TO REWRITE?
EMOTIONAL DISCUSSIONS !
ENGINEERING THINKING !
TRADE-OFFS ⚖
THE ARCHITECTURE
client-core
client-desktop
Chromium Embedded Framework
JS Container
Browse Search Radio Playlist
DID YOU JUST SAY *IFRAMES*? !
THE CODEBASE
▸ one repository per app (playlist, browse, search, …)▸ one repository per lib
▸ internal npm registry to publish and distribute the libs
NOPE !
WHY NOT?
HARD TO COORDINATE HORIZONTAL CHANGES
COMPLICATES CI, TESTABILITY AND
STANDARDIZATION
dependencies: { "spotify-css": "~1.0.0", "spotify-uri": "~1.5.0"}
dependencies: { "spotify-css": "~2.0.0", "spotify-uri": "~1.0.0"}
One repo to rule them all— Git Sauron
MONOREPO !
▸ simplified CI▸ easier to test the impact of changes▸ free to break backwards compatibility▸ atomic refactorings (and rollbacks)▸ consistency and standardization
things are simpler than before, but there’s still a lot of entropy
GOLDEN PATH
▸ standardization workgroup▸ de-facto standards and path of least resistance
▸ data-driven decision making
LESSONS LEARNED
!EVOLVE THINGS INCREMENTALLY
!NO “IVORY TOWER” INFRA
TEAM
!GIT REPOSITORIES SHOULDN’T
DEFINE THE ARCHITECTURE
!CONSISTENCY IS KEY
LIKE THE CHALLENGES?SPOTIFY.COM/JOBS
QUESTIONS? !@FELIPERNB