Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Evolving an Application Architecture

328 views

Published on

A practical view of how to make architectural changes to your application and get the changes into production quickly.

Presented at the JS Meetup in Shanghai on December 14, 2016.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Evolving an Application Architecture

  1. 1. Evolving an application architecture Garret Fick Software Architect - ChinaNetCloud email: garret@ficksworkshop.com web: ficksworkshop.com 微信: keokje
  2. 2. const person = ; console.log(person);
  3. 3. const product = ; console.log(product); console.log(product.history);
  4. 4. const arch = requirements .sort(byImportance) .slice(0, executionCapacity) .reduce(toArch)
  5. 5. Laravel (Blade templates) Laravel Simplest possible Laravel app Known language Reuse former code Fast to setup Easy to test Simple deployment
  6. 6. while (curReq === pastReq) { pastReq = curReq curReq = getRequirements(Data.now()) } alert(‘Panic!’)
  7. 7. Angular Ember Express Meteor React Vue Other
  8. 8. Evaluation Matrix Framework Angular React jQuery … Type MVC V Library GitHub Stars 49,421 42,443 39,506 Sponsor Google Facebook N/A Top 10k 7.3% 0.6% 69.9% # Amazon Books 414 61 2,353 Initial Release 5 years 3 years 9 years LinkedIn Hits 288,599 34,239 1,477,898
  9. 9. Laravel (Blade templates) Laravel Validate fast React
  10. 10. const choices = [ ‘beAmbitious’, ‘createRefactorBranch’, ‘planToRefixBugFixes’, ... ] const failure = choices .filter(c => did(c)) .reduce((a, b) => 1, 0) > 0
  11. 11. Laravel Keep things working Laravel (Blade) React
  12. 12. Laravel Progressively migrate React
  13. 13. http://theredlist.com/media/database/films/cinema/1930/mutiny-on-the-bounty/023-mutiny-on-the-bounty-theredlist.jpg
  14. 14. Laravel Series of apps Easy to integrate Fast to setup
  15. 15. Component State Redux Flux Other
  16. 16. Component State Redux Flux Other
  17. 17. 1. Requirements define arch decisions 2. Make changes with limited ambition
  18. 18. https://openclipart.org/detail/188792/conversation “the decisions that are hard to change” Patterns of Enterprise Application Architecture Martin Fowler

×