21
jQuery Migration Migrating a site to jQuery Chris Pederick Yelp Learning Group 2011 This presentation is distributed under the terms of the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License

jQuery Migration

Embed Size (px)

DESCRIPTION

Migrating a site to jQuery.

Citation preview

Page 1: jQuery Migration

jQuery MigrationMigrating a site to jQuery

Chris PederickYelp Learning Group 2011

This presentation is distributed under the terms of the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License

Page 2: jQuery Migration

Who?

Eastern Screetch Owl by t.davis photogrpahyThis presentation is distributed under the terms of the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License

Page 3: jQuery Migration

Who?

• Lead front-end engineer at Bleacher Report

• 4th largest sports media site

• Nearly 20 million uniques and 500 million page views a month

This presentation is distributed under the terms of the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License

Page 4: jQuery Migration

What?

Cold Aluminum Board by YasuhiroThis presentation is distributed under the terms of the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License

Page 5: jQuery Migration

What?

• Ruby on Rails

• JavaScript written on top of Prototype

• Migrate to jQuery

This presentation is distributed under the terms of the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License

Page 6: jQuery Migration

Why?

White Boxer Puppy by Nic AdlerThis presentation is distributed under the terms of the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License

Page 7: jQuery Migration

Why?

• Experience

• Popularity

• Simplicity

• Performance

This presentation is distributed under the terms of the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License

Page 8: jQuery Migration

How?

How cute can you possibly get? by Ville MiettinenThis presentation is distributed under the terms of the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License

Page 9: jQuery Migration

Asset packager

• Merges and compresses JavaScript into fewer files

• Create new packages for the migration

• Prefix new packages and directories

This presentation is distributed under the terms of the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License

common: - prototype - lowpro - effects - dragdrop - controls ...

redesign_common: - redesign/jquery - redesign/modernizr - redesign/namespace - redesign/common - redesign/tooltips ...

Page 10: jQuery Migration

Layouts

• Combined with the view to create a response

• Create new layouts that use the new asset packages

This presentation is distributed under the terms of the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License

default.html.erb → redesign_default.html.erb

Page 11: jQuery Migration

Page by page

• Migrate pages by priority

• Importance

• Simplicity

• Common functionality/code

• Switch pages to new layouts and asset packages

• Rewrite page specific code to use jQuery and create new asset packages for these

This presentation is distributed under the terms of the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License

Page 12: jQuery Migration

Clean up

• Delete unused packages in the asset packager

• Delete JavaScript files from the deleted asset packages

• Delete old layouts

• Rename all prefixed asset packages, directories and layouts to defaults

This presentation is distributed under the terms of the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License

Page 13: jQuery Migration

Plugins

• Use existing plugins or write your own?

• Problem already solved

• Support

• Complexity/performance

• Wrap existing plugins with your own interface

• Can switch plugins or replace with your own code without changing every usage

This presentation is distributed under the terms of the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License

Page 14: jQuery Migration

Plugins

• Choose a standard plugin for each solution that should be used by everyone

• We are using three templating plugins

• Tmpl

• Tmpl2

• Mustache

This presentation is distributed under the terms of the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License

Page 15: jQuery Migration

Design patterns

(function() { BR.Feature = {}; BR.Feature.publicFunction = privateFunction;

var variable = true; $(function() { // Run on page load initialize(); }); function initialize() { // Set up the feature } function privateFunction() { // Can be called by other code }})();

This presentation is distributed under the terms of the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License

Page 16: jQuery Migration

Design patterns

• jQuery plugin patternswintoni.us/post/123029056/jquery-plugin-patterns

This presentation is distributed under the terms of the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License

Page 17: jQuery Migration

Tools

• Web Developer ☺chrispederick.com/work/web-developer/

• Firebuggetfirebug.com

• Page Speed/YSlowcode.google.com/speed/page-speed/

developer.yahoo.com/yslow/

• WebPagetestwww.webpagetest.org

This presentation is distributed under the terms of the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License

Page 18: jQuery Migration

• Waterfall view

• Optimization checklist

• Content breakdown

This presentation is distributed under the terms of the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License

WebPagetest

Page 19: jQuery Migration

jQuery upgrades

• QA (even point releases)

• Identify “fragile” features/pages

• Unit tests

This presentation is distributed under the terms of the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License

Page 20: jQuery Migration

Selector tests

• Simple HTML page to test problematic selectors

This presentation is distributed under the terms of the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License

#link-to + ul .token-input-token:first p

#tags-1 + ul .token-input-token:eq(1) p

Page 21: jQuery Migration

Questions?

Lemuren by baerchen57This presentation is distributed under the terms of the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License