Date post: | 24-May-2015 |
Category: |
Technology |
Upload: | fernando-escolar |
View: | 528 times |
Download: | 2 times |
Javascript no es Vietnam
Alex Casquete@acasquete
Fernando Escolar@fernandoescolar
www.pasiona.com(+34) 669 333 [email protected]
@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