O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
REBUILDING THE MONOLITH WITH
COMPOSABLE APPS
InfoQ.com: News & Community Site
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentati...
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practi...
https://www.quora.com/Why-are-front-end-developers-so-high-in-demand-at-startups-if-front-end-development-is-relatively-ea...
2013
http://conference.phpnw.org.uk/phpnw13/schedule/dan-rathbone/
XHR
2014
WHY DO WE CARE SO MUCH ABOUT MOBILE?
Because it makes up a huge proportion of our traffic, of which there is lots…
MOBILE IS GROWING AT A SCARY RATE TOO…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44...
BACK TO THE TECH
What are the challenges we were facing?
Create a more engaging customer experience
Increase the resilience of our core features
Scale our product
Scale our teams
Nothing rendered by JavaScript
No knowledge of routing in client
State stored in data
attributes in the DOM
Spaghetti OO s...
“From a people and culture point of view, we’re very
focused on maintaining the things that made Sky Bet
great as we scale...
WHOLLY OWNED, VERTICAL SLICES
“Favor object composition over class inheritance…
...You should be able to get all the functionality you
need just by asse...
CHOOSING THE TECH STACK
“Don’t Rewrite, React”
Ryan Florence, React Europe 2015
IN PRACTICE IT’S NEVER THAT SIMPLE
Independent components
may share data requirements
Real-time updates need to
happen simultaneously to
ensure consistent ex...
IT GETS HARDER AS THE PRODUCT REQUIREMENTS
GROW MORE DETAILED
WORKING WITH COMPONENTS
FUNCTIONAL COMPOSITION
“It is better to have 100 functions operate on one data
structure than 10 functions on 10 data structures..”
Alan Perlis
ENCAPSULATE CSS
EXTRACT LOW LEVEL DESIGN LANGUAGE
THE ELEVENTH HOUR CURVE BALL
DELIVER A MARKET LEADING
REQUESTABET™ PRODUCT FOR THE START
OF THE PREMIER LEAGUE SEASON
(That gave us less than six weeks)
Allow customers to request a
bet consisting of outcomes
from the same event
Select outcomes from a
curated list of markets...
When a selection is added
we calculate suggestions
using a web worker
When a request is submitted,
we can use the pre-buil...
WORKING WITH REACT AND THE CLIENT-SIDE
COMPONENT APPROACH ALLOWED US TO
DEVELOP THE FEATURE IN PARALLEL TO THE
EXISTING RO...
CUSTOMERS LOVE THE FEATURE
(And we delivered it with a week to spare)
OVER 1 MILLION UNIQUE USERS SINCE LAUNCH
AND ROUGHLY 1.7 MILLION UNIQUE REQUESTS
RECEIVED BY TRADERS
THE BITS THAT DIDN’T GO SO WELL
BUILT COMPONENTS IN THE UI-LIBRARY TOO SOON
SERVER RENDERING
SOME FUNCTIONAL TECHNIQUES CAME WITH A
STEEP LEARNING CURVE
TEAM NAMES MATTER MORE THAN YOU THINK
HAVE WELL DOCUMENTED ENGINEERING
PRINCIPLES WHICH ARE ACTIVELY DISCUSSED
TDD, PAIRING AND CODE REVIEW KEEP THE
QUALITY BAR HIGH
WHAT’S NEXT?
Create a more engaging customer experience
Increase the resilience of our core features
Scale our product
Scale our teams
THANK YOU
Ian Thomas – Principal Engineer, Sky Betting & Gaming
@anatomic
Watch the video with slide synchronization on
InfoQ.com!
https://www.infoq.com/presentations/monolith-
composable-apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
Próximos SlideShares
Carregando em…5
×

Rebuilding the Monolith with Composable Apps

138 visualizações

Publicada em

Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/2qvwC9N.

Ian Thomas discusses breaking down monoliths into composable parts and understanding value from the point of the customer, showing examples of functional programming styles for building front-end apps. Filmed at qconlondon.com.

Ian Thomas leads a team of engineers developing the next generation of user interface at Sky Betting & Gaming. The team is tasked with building API-driven, component-based applications which, when combined, form a cohesive, resilient and performant customer experience which copes with both the scale of the customer base and engineering team.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Rebuilding the Monolith with Composable Apps

  1. 1. REBUILDING THE MONOLITH WITH COMPOSABLE APPS
  2. 2. InfoQ.com: News & Community Site Watch the video with slide synchronization on InfoQ.com! https://www.infoq.com/presentations/ monolith-composable-apps • Over 1,000,000 software developers, architects and CTOs read the site world- wide every month • 250,000 senior developers subscribe to our weekly newsletter • Published in 4 languages (English, Chinese, Japanese and Brazilian Portuguese) • Post content from our QCon conferences • 2 dedicated podcast channels: The InfoQ Podcast, with a focus on Architecture and The Engineering Culture Podcast, with a focus on building • 96 deep dives on innovative topics packed as downloadable emags and minibooks • Over 40 new content items per week
  3. 3. Purpose of QCon - to empower software development by facilitating the spread of knowledge and innovation Strategy - practitioner-driven conference designed for YOU: influencers of change and innovation in your teams - speakers and topics driving the evolution and innovation - connecting and catalyzing the influencers and innovators Highlights - attended by more than 12,000 delegates since 2007 - held in 9 cities worldwide Presented at QCon London www.qconlondon.com
  4. 4. https://www.quora.com/Why-are-front-end-developers-so-high-in-demand-at-startups-if-front-end-development-is-relatively-easier-than-other-fields-of-engineering
  5. 5. 2013
  6. 6. http://conference.phpnw.org.uk/phpnw13/schedule/dan-rathbone/
  7. 7. XHR
  8. 8. 2014
  9. 9. WHY DO WE CARE SO MUCH ABOUT MOBILE? Because it makes up a huge proportion of our traffic, of which there is lots…
  10. 10. MOBILE IS GROWING AT A SCARY RATE TOO…
  11. 11. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 Weekly Uniques on Mobile
  12. 12. BACK TO THE TECH What are the challenges we were facing?
  13. 13. Create a more engaging customer experience Increase the resilience of our core features Scale our product Scale our teams
  14. 14. Nothing rendered by JavaScript No knowledge of routing in client State stored in data attributes in the DOM Spaghetti OO style JavaScript reliant on directly bound event listeners Increasingly real-time and interactive product demands
  15. 15. “From a people and culture point of view, we’re very focused on maintaining the things that made Sky Bet great as we scale up the internal team – we doubled the number of employees last year.” http://www.silicon.co.uk/cloud/it-life-andy-burton-cto-sky-bet-197113
  16. 16. WHOLLY OWNED, VERTICAL SLICES
  17. 17. “Favor object composition over class inheritance… ...You should be able to get all the functionality you need just by assembling existing components through object composition.” Gamma et al, 1994
  18. 18. CHOOSING THE TECH STACK
  19. 19. “Don’t Rewrite, React” Ryan Florence, React Europe 2015
  20. 20. IN PRACTICE IT’S NEVER THAT SIMPLE
  21. 21. Independent components may share data requirements Real-time updates need to happen simultaneously to ensure consistent experience Apps may share code dependencies (i.e. Ramda) How do we instantiate these things?
  22. 22. IT GETS HARDER AS THE PRODUCT REQUIREMENTS GROW MORE DETAILED
  23. 23. WORKING WITH COMPONENTS
  24. 24. FUNCTIONAL COMPOSITION
  25. 25. “It is better to have 100 functions operate on one data structure than 10 functions on 10 data structures..” Alan Perlis
  26. 26. ENCAPSULATE CSS
  27. 27. EXTRACT LOW LEVEL DESIGN LANGUAGE
  28. 28. THE ELEVENTH HOUR CURVE BALL
  29. 29. DELIVER A MARKET LEADING REQUESTABET™ PRODUCT FOR THE START OF THE PREMIER LEAGUE SEASON (That gave us less than six weeks)
  30. 30. Allow customers to request a bet consisting of outcomes from the same event Select outcomes from a curated list of markets and add them to your request cart Request the bet – if it can be priced immediately you’ll see the result in real-time, otherwise it will be sent to the trading team Your requests are stored locally and a push notification is sent to the device to notify when the trading team have stopped pricing requests
  31. 31. When a selection is added we calculate suggestions using a web worker When a request is submitted, we can use the pre-built suggestions list to show you highly related options Web worker runs in separate JavaScript thread to minimise performance overhead
  32. 32. WORKING WITH REACT AND THE CLIENT-SIDE COMPONENT APPROACH ALLOWED US TO DEVELOP THE FEATURE IN PARALLEL TO THE EXISTING ROADMAP
  33. 33. CUSTOMERS LOVE THE FEATURE (And we delivered it with a week to spare)
  34. 34. OVER 1 MILLION UNIQUE USERS SINCE LAUNCH AND ROUGHLY 1.7 MILLION UNIQUE REQUESTS RECEIVED BY TRADERS
  35. 35. THE BITS THAT DIDN’T GO SO WELL
  36. 36. BUILT COMPONENTS IN THE UI-LIBRARY TOO SOON
  37. 37. SERVER RENDERING
  38. 38. SOME FUNCTIONAL TECHNIQUES CAME WITH A STEEP LEARNING CURVE
  39. 39. TEAM NAMES MATTER MORE THAN YOU THINK
  40. 40. HAVE WELL DOCUMENTED ENGINEERING PRINCIPLES WHICH ARE ACTIVELY DISCUSSED
  41. 41. TDD, PAIRING AND CODE REVIEW KEEP THE QUALITY BAR HIGH
  42. 42. WHAT’S NEXT?
  43. 43. Create a more engaging customer experience Increase the resilience of our core features Scale our product Scale our teams
  44. 44. THANK YOU Ian Thomas – Principal Engineer, Sky Betting & Gaming @anatomic
  45. 45. Watch the video with slide synchronization on InfoQ.com! https://www.infoq.com/presentations/monolith- composable-apps

×