Beruflich Dokumente
Kultur Dokumente
Reactiva
www.grandpa.im
Qu es?
La programacin reactiva es un paradigma de
programacin orientado a flujos de datos y la
propagacin de cambios
(Wikipedia)
Manifiesto de Programacin Reactiva:
http://www.reactivemanifesto.org/
Javascript Isomorfo
Antes: Desde los labores de la Web, la navegacin la experiencia ha trabajado de esta manera:
Un navegador web pedira una pgina en particular (por ejemplo, http://www.geocities.com/ ")
-Causando un servidor en algn lugar en la Internet para generar una pgina HTML y enviarlo de
vuelta.
Esto ha funcionado bien porque los navegadores no eran muy poderosos y las pginas HTML
representaban documentos que eran en su mayora estticos y autnomos.
JavaScript, fue creada para permitir que las pginas web fuern ms dinmicas, no permita mucho
ms que presentaciones de imgenes y la era del diseo Jquery y efectos prettys.
Javascript Isomorfo
Traduccin parcial del Post http://nerds.airbnb.com/isomorphic-javascript-future-web-apps/ por Spike Brehm
Aplicaciones en el navegador?
Problemas en el paraso
En la prctica, sin embargo, hay algunos defectos fatales con este enfoque que le impiden ser
adecuado para muchos casos de uso.
SEO
Una aplicacin que slo se puede ejecutar en el lado del cliente no puede servir de HTML para
los rastreadores, por lo que tienen mala SEO by default. Web crawlers funcin haciendo una
peticin a un servidor web y la interpretacin de los resultados, pero si el servidor devuelve una
pgina en blanco, no es de mucho valor. Hay soluciones, pero no sin saltar a travs de algunos
aros.
Rendimiento
Por la misma razn, si el servidor no hace que una pgina de HTML, sino que espera a JavaScript
del lado del cliente para hacerlo, los usuarios experimentarn unos segundos crticos de la
pgina en blanco o spinner carga antes de ver el contenido de la pgina. Hay muchos estudios
que muestran el efecto drstico un sitio lento tiene en los usuarios, y por lo tanto los ingresos.
Amazon afirma que cada reduccin de http://venturebeat.com/2013/11/08/the-future-of-webapps-is-ready-isomorphic-javascript/00 ms en el tiempo de carga de pgina obtiene ingresos por
el uno por ciento. Twitter pas un ao y 40 ingenieros de la reconstruccin de su sitio para hacer
en el servidor en lugar del cliente, reclamando una mejora de 5 veces en el tiempo de carga
percibida.
Mantenibilidad
Mientras que el caso ideal puede conducir a una bonita y clara separacin de las preocupaciones,
inevitablemente, algunos trozos de lgica de la aplicacin o la vista lgica terminan duplicado
entre el cliente y el servidor, a menudo en diferentes idiomas.
Los ejemplos ms comunes son la fecha y el formato de moneda, validaciones de formulario y la
lgica de enrutamiento. . Esto hace que el mantenimiento sea una pesadilla, especialmente para
las aplicaciones ms complejas.
Algunos desarrolladores, incluido yo mismo, nos sentimos mordidos por este enfoque que es a
menudo slo despus de haber invertido tiempo y esfuerzo para construir una aplicacin de una
sola pgina que empezamos a encontrar sus inconvenientes.
Resumen
Sincroniza
automticamente los
datos entre
navegadores,
servidores y bases de
datos.
El ms mgico de
todos, un simple script
y wua la!! Toda una API
para realtime
Buen founding,
excelente equipo de
desarrollo y grandiosa
comunidad.
Mojito
Mojito es un framework para el desarrollo de aplicaciones web usando JavaScript o HTML5 que Yahoo! ha
decidido liberar con la idea de crear una comunidad de desarrolladores alrededor de este framework para que,
gracias a su adopcin, el proyecto crezca y se termine convirtiendo en un estndar. Gracias a Mojito, los
desarrolladores podrn trabajar a alto nivel y abstraerse de la plataforma destino, evitando la necesidad de
conocer la programacin en Android, iOS o BlackBerry y obteniendo una versin de la aplicacin para cada una
de las plataformas destino.
De hecho, una de las ventajas de usar este framework es que ste est optimizado para generar aplicaciones muy
optimizadas para trabajar en movilidad, es decir, para superar las adversidades del uso de conexiones de datos
mviles (cortes, cada del nivel de seal, etc) gracias a la flexibilidad de realizar la ejecucin de los procesos tanto
desde el lado del servidor como el del cliente.
http://developer.yahoo.com/cocktails/mojito/ Official Page
Derbyjs
Derby incluye un potente motor de sincronizacin de datos llamada Racer. A pesar de que funciona de forma
diferente , Racer es en Derby algo as como ActiveRecord es a Rails. Racer sincroniza automticamente los datos
entre navegadores , servidores y bases de datos. Suscribciones a modelos y a los cambios en los objetos y
consultas especficas , lo que permite un control granular de la propagacin de datos sin definir canales. Racer es
compatible con la resolucin de conflictos Out of the box, lo que simplifica enormemente la creacin de
aplicaciones multi-usuario.
Muy bueno para hacer aplicaciones REST, Derby est basado en Express.js el cual tiene un excelente soporte para
aplicaciones REST y si estas buscando un framework para una aplicacin REST y NO html mejor usar libreras
como Express.js y no Derby, de igual forma si no ests pensando en apps con funcionalidades multiusuario o
realtime es mejor no usar Derby.
MeteorJS
Qu es MeteorJS?
Meteor es una plataforma para crear aplicaciones web en tiempo real construida sobre Node.js.
Meteor se localiza entre la base de datos de la aplicacin y su interfaz de usuario y se asegura de
que ambas partes estn sincronizadas.
Como Meteor usa Node.js, se utiliza JavaScript en el cliente y en el servidor. Y ms an, Meteor es
capaz de compartir cdigo entre ambos entornos.
hot code pushes baby!, gracias al canal que dejamos abierto cada vez que se actualiza el cdigo
cliente en el servidor este lo sirve directamente a los clientes que estn conectados.
No es maravilloso? olvdate de esas eternas tensas esperas a que se limpien las caches de los
servidores para ver el efecto de tu pase a produccin, tu xito o tu fracaso sin esperas.
Porque Meteorjs?
Por qu gastar tiempo aprendiendo Meteor en lugar de otro framework web? Dejando a un lado
las caractersticas de Meteor, creemos que todo se reduce a una sola cosa: Meteor es fcil de
aprender.
Meteor permite crear una aplicacin web en tiempo real en cuestin de horas. Y si ya hemos
hecho desarrollo web, estaremos familiarizados con JavaScript, y ni siquiera tendremos que
aprender un nuevo lenguaje.
Meteor podra ser el marco ideal para nuestras necesidades, quizs no. Pero por qu no
probarlo y descubrirlo por nosotros mismos?.
Links recomendados
-http://nerds.airbnb.com/isomorphic-javascript-future-web-apps/ Javascript Isomorfo
https://www.meteor.com/ Oficial Page Meteorjs
http://es.discovermeteor.com/ El mejor recurso actual para aprender Meteorjs en Espaol
Porque Fibers en Meteorjs?
-http://meteorhacks.com/fibers-eventloop-and-meteor.html
-https://modulus.io/ Excelente Cloud para aplicaciones Nodejs y Meteorjs, Incribete y recibe 15
dolares para probarla!
Muchas gracias
Equipo Grandpa
Luis lvarez @goluis
Julin Alvarez @ouyeahbro
www.grandpa.im