Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Performance and Maintainability with Continuous...

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

Performance and Maintainability with Continuous Experimentation

Avatar for Seth Walker

Seth Walker

April 24, 2014
Tweet

More Decks by Seth Walker

Other Decks in Technology

Transcript

  1. @sethwalker Seth Walker Allison McKnight Jonathan Klein @sethwalker @aemcknig @jonathanklein

    Daniel Espeset @danielespeset @dxna Daniel Na Lara Swanson @laraswanson
  2. @sethwalker $cfg['save_everything'] = '1%'; // ... snip ... if (isEnabled('save_everything'))

    { writeToDB($everything); } else { throwAway($everything); }
  3. @sethwalker $cfg['save_everything'] = '5%'; // ... snip ... if (isEnabled('save_everything'))

    { writeToDB($everything); } else { throwAway($everything); }
  4. @sethwalker $cfg['save_everything'] = '1%'; // ... snip ... if (isEnabled('save_everything'))

    { writeToDB($everything); } else { throwAway($everything); }
  5. @sethwalker $cfg['save_everything'] = '5%'; // ... snip ... if (isEnabled('save_everything'))

    { writeToDB($everything); } else { throwAway($everything); }
  6. @sethwalker $cfg['save_everything'] = '10%'; // ... snip ... if (isEnabled('save_everything'))

    { writeToDB($everything); } else { throwAway($everything); }
  7. @sethwalker $cfg['jquery_1_11'] = 'staff'; // ... snip ... if (isEnabled("jquery_1_11"))

    { <script src="/js/lib/jquery-1.11.0.js"></script> } else { <script src="/js/lib/jquery-1.8.2.js"></script> }
  8. @sethwalker $cfg['jquery_1_11'] = '5%'; // ... snip ... if (isEnabled("jquery_1_11"))

    { <script src="/js/lib/jquery-1.11.0.js"></script> } else { <script src="/js/lib/jquery-1.8.2.js"></script> }
  9. @sethwalker $cfg['jquery_1_11'] = '50%'; // ... snip ... if (isEnabled("jquery_1_11"))

    { <script src="/js/lib/jquery-1.11.0.js"></script> } else { <script src="/js/lib/jquery-1.8.2.js"></script> }
  10. @sethwalker $cfg['jquery_1_11'] = '5%'; // ... snip ... if (isEnabled("jquery_1_11"))

    { <script src="/js/lib/jquery-1.11.0.js"></script> } else { <script src="/js/lib/jquery-1.8.2.js"></script> }
  11. @sethwalker $cfg['jquery_1_11'] = '50%'; // ... snip ... if (isEnabled("jquery_1_11"))

    { <script src="/js/lib/jquery-1.11.0.js"></script> } else { <script src="/js/lib/jquery-1.8.2.js"></script> }
  12. @sethwalker $cfg['jquery_1_11'] = '100%'; // ... snip ... if (isEnabled("jquery_1_11"))

    { <script src="/js/lib/jquery-1.11.0.js"></script> } else { <script src="/js/lib/jquery-1.8.2.js"></script> }
  13. @sethwalker window.Etsy.Context = { // ... snip ... "feature":{ "conversations.rejuvination":true,

    "activity.dynamic_load_on_scroll":true, "overlays.buttery_smooth":true, "collections.perf_render_fix":true, } };
  14. @sethwalker $cfg['js_debug_build'] = 'staff'; // ... snip ... if (isEnabled("js_debug_build"))

    { <script src="/js-debug/main.js"></script> } else { <script src="/js/main.js"></script> }
  15. :(

  16. @sethwalker if (isEnabled("new_listing_page")) { <script src="/js/listing/new-listing.js"></script> } if (isEnabled("new_favorite_button")) {

    <script src="/js/new-favorites.js"></script> } if (isEnabled("cart2")) { <script src="/js/add-to-cart2.js"></script> }
  17. @sethwalker <link rel="stylesheet" href="/css/base.css" /> <link rel="stylesheet" href="/css/listing.css" /> if

    (isEnabled("new_listing_page")) { <link rel="stylesheet" href="/css/new-listing.css" /> } if (isEnabled("new_favorite_button")) { <link rel="stylesheet" href="/css/new-favorites.css" /> } if (isEnabled("cart2")) { <link rel="stylesheet" href="/css/add-to-cart2.css" /> }