DISMANTLING    THE MONORAIL  Jack Lawson ( @ajacksified )
GOALS
IN THE BEGINNINGA TEAM BUILDS AN APP
PRIORITY #1  RAPIDITERATION
SIMPLECONCEPTUAL  MODEL
FAST FEATUREDEVELOPMENT
SINGLE MVCAPPLICATIONLAYERS ARE GREAT   THATS NOT SARCASM
ITS EASYfor examplerisnwctam al e akra                    orepes-ssin -hgnctam xrs -esos -oa akra                   thenc ...
KEEP IT ALL IN YOUR HEAD
LATER ON SHIFTINGPRIORITIESCATKARMA A RIOTIOUS SUCCESS
TIME IS YOUR ENEMYCHAOS AND ENTROPY
GROWINGINTRODUCESCOMPLEXITY
HIGHERCOMMUNICATIONOVERHEADMEETINGS, STANDUPS, &    COORDINATION
BIG PROBLEMS IF TEST SUITE  IS LACKING
UPGRADING     BECOMES       HARDRAISE YOUR HAND IF YOUVE EVER PUT OFF A RAILS 3.2                    UPGRADE
ONE-OFFS AND DUPLICATED   CODE
TO MAINTAIN SPEED  TAKESHORTCUTS
SIMPLECONCEPTUAL  MODEL?
NOT QUITE
COMPLEX AND  FULL OF   HACKS     :(
YOU MAY ASK YOURSELFHOW DID I GET   HERE?
"WE WILL REBUILD ITWHEN WE GET   TIME"  RIGHT? ...SOON?
DISMANTLING    THE MONORAIL
PRIORITIZEEFFICIENCY
A DIFFERENTCONCEPTUAL  MODEL ITS STILL SIMPLE
SERVICES
NOT APARTICULARLY  NEW IDEAYOURE LIKELY FAMILIAR WITH "THE INTERNET", A            DISTRIBUTED SYSTEM
DISCRETESYSTEMS LEAD     TOSPECIALIZING
SPECIALIZING  LEADS TO EFFICIENCY
ABSTRACTED LOGIC LEADSTO FLEXIBILITYUSING THE RIGHT TOOL    FOR THE JOB
BEST TECHNOLOGY FOR  APPLICATION LOGIC   USER INTERFACE     PERSISTENCETHESE ARE ALMOST NEVER THE SAME ANSWER
REUSABLE APISIMPLEMENT ANDROID,IOS, GOOGLE GLASSES, KINDLES, GAME CONSOLES,    RASPBERRY PIS, DESKTOPS, LAPTOPS,   E-PAPER...
PROVIDED YOU USE COMMONPROTOCOLSLIKE RESTFUL JSON
ADDITIONAL COMPLEXITYOPPORTUNITY
PARTIAL  FAILUREMEANS THE ENTIREAPPLICATION ISNT  UNAVAILABLE
MULTIPLESYSTEMS AT   ONCE  HIGHLIGHTSCOMMUNICATION INEFFICIENCIES
MORECOMPLEX OPS ALLOWS SCALING SPECIFIC SERVICES
SHARED  ASSETSBUNDLE REUSABLE   LIBRARIES
FASTITERATIONSWHICH IS WHAT WEWANTED ANYWAY
LESS  OVERHEADMORE EFFICIENTLY USEDSERVERS AND DEVELOPER         TIME
LESSFRUSTRATIONSTOP DIGGING THROUGH  SQL INJECTED IN VIEW        HELPERS
GETTING THEREFEW PEOPLE ARESTARTING FROM   NOTHING
SEPARATE   DATASTRUCTURES    INTO LIBRARIES
DEFINESERVICES
BREAK OUT  EXISTINGSERVICES INTO  MODULESDEFINE AN INTERFACE,LIKE JSON OVER REST,   AND REFACTOR
OPTIMIZE  FEATURES INVOLVING    MANY  SERVICESDEFINE A VIEW IN THE      MIDDLE
BREAK OUT   SERVICE  MODULESINTO SERVERS
DELETE YOUR    OLDMONOLITHICREPOSITORY
MONORAILDISMANTLED
AirBnB's Jack Lawson at Heroku's Waza: Dismantling the Monorail
AirBnB's Jack Lawson at Heroku's Waza: Dismantling the Monorail
AirBnB's Jack Lawson at Heroku's Waza: Dismantling the Monorail
AirBnB's Jack Lawson at Heroku's Waza: Dismantling the Monorail
AirBnB's Jack Lawson at Heroku's Waza: Dismantling the Monorail
AirBnB's Jack Lawson at Heroku's Waza: Dismantling the Monorail
AirBnB's Jack Lawson at Heroku's Waza: Dismantling the Monorail
Upcoming SlideShare
Loading in …5
×

AirBnB's Jack Lawson at Heroku's Waza: Dismantling the Monorail

868 views
752 views

Published on

AirBnB's Software Engineer Jack Lawson (@ajacksified) presented at Heroku's Developer Conference #Waza 2013 on "Dismantling the Monorail". Lawson specializes in user interface development at Airbnb, runs the SF Lua meetup group, and enjoys open-source development, building games, writing Mustache templates, and coffee connoisseurism (these interests often coincide.) He lives in San Francisco with his wife and two daughters and can be reached at @ajacksified. For more on Waza visit http://waza.heroku.com/2013.

For Waza videos stay tuned at http://blog.heroku.com or visit http://vimeo.com/herokuwaza

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
868
On SlideShare
0
From Embeds
0
Number of Embeds
37
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

AirBnB's Jack Lawson at Heroku's Waza: Dismantling the Monorail

  1. 1. DISMANTLING THE MONORAIL Jack Lawson ( @ajacksified )
  2. 2. GOALS
  3. 3. IN THE BEGINNINGA TEAM BUILDS AN APP
  4. 4. PRIORITY #1 RAPIDITERATION
  5. 5. SIMPLECONCEPTUAL MODEL
  6. 6. FAST FEATUREDEVELOPMENT
  7. 7. SINGLE MVCAPPLICATIONLAYERS ARE GREAT THATS NOT SARCASM
  8. 8. ITS EASYfor examplerisnwctam al e akra orepes-ssin -hgnctam xrs -esos -oa akra thenc ctam d akragtii i ntgtad. i dgtcmi - nil i omt m Itahrk cet eou raegtps hrk mse i uh eou atr
  9. 9. KEEP IT ALL IN YOUR HEAD
  10. 10. LATER ON SHIFTINGPRIORITIESCATKARMA A RIOTIOUS SUCCESS
  11. 11. TIME IS YOUR ENEMYCHAOS AND ENTROPY
  12. 12. GROWINGINTRODUCESCOMPLEXITY
  13. 13. HIGHERCOMMUNICATIONOVERHEADMEETINGS, STANDUPS, & COORDINATION
  14. 14. BIG PROBLEMS IF TEST SUITE IS LACKING
  15. 15. UPGRADING BECOMES HARDRAISE YOUR HAND IF YOUVE EVER PUT OFF A RAILS 3.2 UPGRADE
  16. 16. ONE-OFFS AND DUPLICATED CODE
  17. 17. TO MAINTAIN SPEED TAKESHORTCUTS
  18. 18. SIMPLECONCEPTUAL MODEL?
  19. 19. NOT QUITE
  20. 20. COMPLEX AND FULL OF HACKS :(
  21. 21. YOU MAY ASK YOURSELFHOW DID I GET HERE?
  22. 22. "WE WILL REBUILD ITWHEN WE GET TIME" RIGHT? ...SOON?
  23. 23. DISMANTLING THE MONORAIL
  24. 24. PRIORITIZEEFFICIENCY
  25. 25. A DIFFERENTCONCEPTUAL MODEL ITS STILL SIMPLE
  26. 26. SERVICES
  27. 27. NOT APARTICULARLY NEW IDEAYOURE LIKELY FAMILIAR WITH "THE INTERNET", A DISTRIBUTED SYSTEM
  28. 28. DISCRETESYSTEMS LEAD TOSPECIALIZING
  29. 29. SPECIALIZING LEADS TO EFFICIENCY
  30. 30. ABSTRACTED LOGIC LEADSTO FLEXIBILITYUSING THE RIGHT TOOL FOR THE JOB
  31. 31. BEST TECHNOLOGY FOR APPLICATION LOGIC USER INTERFACE PERSISTENCETHESE ARE ALMOST NEVER THE SAME ANSWER
  32. 32. REUSABLE APISIMPLEMENT ANDROID,IOS, GOOGLE GLASSES, KINDLES, GAME CONSOLES, RASPBERRY PIS, DESKTOPS, LAPTOPS, E-PAPER WRISTWATCHES, 3-D PRINTERS, CHATBOTS, CONSOLE SCRIPTS, PUBLIC APIS...WITH NO SPECIAL CODE
  33. 33. PROVIDED YOU USE COMMONPROTOCOLSLIKE RESTFUL JSON
  34. 34. ADDITIONAL COMPLEXITYOPPORTUNITY
  35. 35. PARTIAL FAILUREMEANS THE ENTIREAPPLICATION ISNT UNAVAILABLE
  36. 36. MULTIPLESYSTEMS AT ONCE HIGHLIGHTSCOMMUNICATION INEFFICIENCIES
  37. 37. MORECOMPLEX OPS ALLOWS SCALING SPECIFIC SERVICES
  38. 38. SHARED ASSETSBUNDLE REUSABLE LIBRARIES
  39. 39. FASTITERATIONSWHICH IS WHAT WEWANTED ANYWAY
  40. 40. LESS OVERHEADMORE EFFICIENTLY USEDSERVERS AND DEVELOPER TIME
  41. 41. LESSFRUSTRATIONSTOP DIGGING THROUGH SQL INJECTED IN VIEW HELPERS
  42. 42. GETTING THEREFEW PEOPLE ARESTARTING FROM NOTHING
  43. 43. SEPARATE DATASTRUCTURES INTO LIBRARIES
  44. 44. DEFINESERVICES
  45. 45. BREAK OUT EXISTINGSERVICES INTO MODULESDEFINE AN INTERFACE,LIKE JSON OVER REST, AND REFACTOR
  46. 46. OPTIMIZE FEATURES INVOLVING MANY SERVICESDEFINE A VIEW IN THE MIDDLE
  47. 47. BREAK OUT SERVICE MODULESINTO SERVERS
  48. 48. DELETE YOUR OLDMONOLITHICREPOSITORY
  49. 49. MONORAILDISMANTLED

×