Javascript no es vietnam

Post on 24-May-2015

533 views 2 download

Tags:

description

Estamos demasiado acostumbrados a que como javascript tiene el nombre script, podemos programar como y donde nos parezca. Pero eso ha cambiado. Hoy en día js es una compleja plataforma de programación de clientes ricos, válida para móviles, tablets y todos los ordenadores de escritorio. Así que ha llegado la hora de empezar a programar javascript con calidad.

Transcript of Javascript no es vietnam

Javascript no es Vietnam

Alex Casquete@acasquete

Fernando Escolar@fernandoescolar

www.pasiona.com(+34) 669 333 333info@pasiona.com

@pasiona BarcelonaPujades 350, 10ª planta

08019 · Barcelona

BilbaoGran Vía 19-21, 2ª planta

48008 · Bilbao

Londres1 Northumberland Avenue

London · WC2N 5BW

MadridPinar 5,

28006 · Madrid

Conocimientoadquirido a través de la realización de proyectos, formación e innovación tecnológica

Innovaciónligada a la mejora continua y basadaen las nuevas oportunidades tecnológicas

Tecnologíasoluciones a cada una de las necesidadesempresariales que se platean en cada ámbito

Valores humanosguía de lo que hacemos y pretendemosque nos enseña y nos conduce día a día

Pasiónsomos grandes entusiastas de todo aquello que creamos y vemos crecer

Experienciao la garantía de la habilidad derivada de años de vivencias y observación

Microsoftsocio 100% alineado partner 100% especializado

Desarrollocapacidad para realizar proyectos deámbito tecnológico con un fin de mejora

Especializaciónofrecemos soluciones a medida con las mejores herramientas tecnológicas

Qué es

SocialMedia

Servicios profesionales

Consultoría Proyectos

Innovación Azure

Formación

Auditoría

Servicios

JavaScript…

me encanta el olor a javascript por la mañana

estoy listo para programar sin clases

¿sabes que son los patrones, recluta?

¡¡¡eso me suena!!!

Strategy Pattern

function HtmlStyler() {    this.setStyle = function (input) {        var result = input;        for (var key in this.strategies) {            var strategy = this.strategies[key];            if (strategy.setStyle)                result = strategy.setStyle(result);            else                throw "Invalid strategy";        }         return result;    };} HtmlStyler.prototype.strategies = { };HtmlStyler.prototype.strategies.boldStyler = {    setStyle: function(input) {        return '<b>' + input + '</b>';    },}; HtmlStyler.prototype.strategies.italicStyler = {    setStyle: function (input) {        return '<i>' + input + '</i>';    },};

Module Pattern

var basketModule = (function() {

var basket = []; //private

return { //exposed to public

addItem: function(values) {

basket.push(values);

},

getItemCount: function() {

return basket.length;

},

getTotal: function(){

var q = this.getItemCount(),p=0;

while(q--){

p+= basket[q].price;

}

return p;

}

}

}());

Façade Pattern

var module = (function() { var _private = { i:5, get : function() { console.log('current value:' + this.i); }, set : function( val ) { this.i = val; }, run : function() { console.log('running'); }, jump: function(){ console.log('jumping'); } }; return { facade : function( args ) { _private.set(args.val); _private.get(); if ( args.run ) { _private.run(); } } }}());

module.facade({run: true, val:10});

//devuelve ‘current value: 10, running’

Mediator Pattern

var mediator = (function() {     var handlers = {};     function register(handler, fn) {        if (!handlers[handler]) handlers[handler] = [];        handlers[handler].push({ context: this, callback: fn });    }     function notify(handler) {        if (!handlers[handler]) return false;        var args = Array.prototype.slice.call(arguments, 1);        for (var i = 0, l = handlers[handler].length; i < l; i++) {            var subscription = handlers[handler][i];            subscription.callback.apply(subscription.context, args);        }    }     return {        register: register,        notify: notify    };}());

las pruebas nos aportan calidad

@acasquete

@fernandoescolar

Muchas gracias