has("builds")
Upcoming SlideShare
Loading in...5
×
 

has("builds")

on

  • 704 views

 

Statistics

Views

Total Views
704
Views on SlideShare
704
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

has("builds") has("builds") Presentation Transcript

  • HAS(“BUILDS”) @dojoconf :: 16/17 Sept 2011 :: Peter HigginsMonday, September 19, 2011
  • Me, Briefly. Dojo Toolkit Project Lead JavaScript Engineer @joost / Adconion Blogs Infrequently :: http://higginsforpresident.net Codes @GitHub :: http://github.com/phiggins42 Twitter: @phiggins Beer Drinking ExpertMonday, September 19, 2011
  • THE HISTORY ... and motivationMonday, September 19, 2011
  • //>>webkitMobile //>>excludeStart("webkitMobile", kwArgs.webkitMobile); /* //>>excludeEnd("webkitMobile"); //>>includeStart("webkitMobile", kwArgs.webkitMobile); ["indexOf", "lastIndexOf", "forEach", "map", "some", "every", "filter"].forEach( function(name, idx){ dojo[name] = function(arr, callback, thisObj){ if((idx > 1) && (typeof callback == "string")){ callback = new Function("item", "index", "array", callback); } return Array.prototype[name].call(arr, callback, thisObj); } } ); //>>includeEnd("webkitMobile"); //>>excludeStart("webkitMobile", kwArgs.webkitMobile); */ //>>excludeEnd("webkitMobile");Monday, September 19, 2011
  • /sigh Sloppy code Error prone Difficult debugging / Build required Single specific platformMonday, September 19, 2011
  • embed.js / Uxebu different direction, same idea: minimal bytes per-function modules minimal API surface (a la carte) Dojo based, but not DojoMonday, September 19, 2011
  • Modernizr new features, not old bugs. up front testing, all tests always dojo.uacss-style HTML classesMonday, September 19, 2011
  • dojo-fd dojo/trunk branch Pure feature detection first has() sightingMonday, September 19, 2011
  • has.js Feature detection API Feature + Future tests available Minimal bytes / No initial overhead Simple API for configurable code paths Generic / AgnosticMonday, September 19, 2011
  • has() in Dojo: old “sniff” require(["dojo/_base/sniff"], function(has){ has.add("some-magic", function(){ // randomly return true or false return Math.random() > 0.5; }); if(has("some-magic")){ // do it this way }else{ // do it this way } });Monday, September 19, 2011
  • has() in Dojo: plugin define([ "dojo/has!native-array!mylib/Thinger!mylib/AltThinger" ], function(Thinger){ // Thinger is mylib/Thinger return if has("native-array") // otherwise is mylib/AltThinger // ideally they have the same API (a la embedjs) });Monday, September 19, 2011
  • Builder hasMap in profile variable substitution dead path removalMonday, September 19, 2011
  • Builder mylib.trim = has("string-trim") ? function(str){ return str.trim(); } : function(str){ /* regexp/replace that guy */ }; // build = { “string-trim”:“true” } becomes: my.trim = true ? function(a){ return a.trim(); } : function(a){ /* ... */ }; // becomes: my.trim = function(a){ return a.trim(); }Monday, September 19, 2011
  • Misc. Building RequireJS Dojo 1.7 ua-optimize https://github.com/kriszyp/ua-optimizedMonday, September 19, 2011
  • Detect or Assume has() is agnostic write own tests document historic truth limit impact of testing in production 10ms - 1800msMonday, September 19, 2011
  • WHERE does this leave us?Monday, September 19, 2011
  • AAAAND THANKS. I promise I’m done talking.Monday, September 19, 2011
  • Me, again: http://dante.dojotoolkit.org http://higginsforpresident.net http://twitter.com/phiggins http://github.com/phiggins42 phiggins @ irc.freenode.net Questions?Monday, September 19, 2011