Production Grade

JavaScript


Mejores prácticas y optimización


Julián David Duque

Developer by Passion

Engineer at Nodejitsu

http://about.me/julianduque - @julian_duque


Segundo Acto


Mejores Prácticas





Dependency Management



http://nodejs.org/
http://npmjs.org


 $ npm init
$ npm install <package>
$ npm search <package>
$ npm list


http://bower.io/

 $ npm install -g bower

 $ bower init
$ bower install <package>
$ bower search <package>
$ bower list [--paths]




Modules


Globals


// Definition
var
MyModule = function() { .. };

// Require (Not needed, its global!)

// Use
MyModule();


AMD

Asynchronous Module Definition

// Definition
define(['my-dependency'], function(MyDependency) { return function() {}; };

// Require & Use
require(['my-dependency'], function(MyDependency) { MyDependency(); });


CommonJS


// Definition
module.exports = function() {};

// Require
var
MyDependency = require('my-dependency');

// Use
MyDependency();


Universal Module Definition

(function (root, factory) {
  if (typeof exports === 'object') {
    // CommonJS
    module.exports = factory(require('b'));
  } else if (typeof define === 'function' && define.amd) {
    // AMD
    define(['b'], function (b) {
      return (root.returnExportsGlobal = factory(b));
    });
  } else {
    // Global Variables
    root.returnExportsGlobal = factory(root.b);
  }
}(this, function (b) {
  // Your actual module
  return {};
}));

WAT???



¿Cual utilizar?


RequireJS (AMD)

Browserify (CommonJS)




5 buenas prácticas de

Optimización




1. Reducción de Peticiones HTTP




2. Minificación de Archivos




3. Utilizar un CDN

(Content Delivery Network)




4. Cache




5. Gzip




Gulp.js

Title

Production Grade JavaScript

By Julián Duque

Production Grade JavaScript

Mejores prácticas y optimización

  • 2,456