Desarrollo Full Stack con JavaScript

Alfredo Bonilla
2016
¡Hola!

- Alfredo Bonilla
- Organizador CostaRicaJS
- Desarrollador Web
- JavaScript, Drupal, PHP
- Música, Open Source
JavaScript
JavaScript (abreviado comúnmente JS) es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define como orientado a objetos, basado en prototipos, imperativo, débilmente tipado y dinámico.
Fuente: www.wikipedia.com
¿JavaScript en el back end?


Node es un intérprete Javascript del lado del servidor que cambia la noción de cómo debería trabajar un servidor. Su meta es permitir a un programador construir aplicaciones altamente escalables y escribir código que maneje decenas de miles de conexiones simultáneas en una sólo una máquina física.
Fuente: www.ibm.com

- Corre en el motor V8 de Google.
- Construido para funcionar de manera asíncrona.
- Excelente opción para aplicaciones en tiempo real.
- Nunca se quedará en un punto muerto, no se admiten bloqueos.
- Permite programación orientada a eventos.
- Permite utilizar el mismo lenguaje en todo el stack.
- Comunidad activa.
- API Inestable y problemas de retrocompatibilidad.
- Permite muchas maneras de programar.
- Es una tecnología muy nueva.
- Permite el uso de las partes malas de JavaScript.
Desventajas de NodeJS

MongoDB es un sistema de base de datos del tipo NoSQL (o no relacional) y orientado a documentos.
MongoDB almacena la información en documentos dinámicos similares de tipo BSON (muy similar a JSON pero binarios).

// Documento en MongoDB
{
Nombre: "Pedro",
Apellidos: "Martínez Campo",
Edad: 22,
Aficiones: ["fútbol","tenis","ciclismo"],
Amigos: [
{
Nombre:"María",
Edad:22
},
{
Nombre:"Luis",
Edad:28
}
]
}
// Consulta en MongoDB
db.Clientes.find({Nombre:"Pedro"});
- Soporta búsquedas por campos, consultas de rangos y expresiones regulares.
- Permite indexación.
- Permite balanceo de carga entre varios servidores.
- Puede ser usado como sistema de archivos mediante GridFS.
- No implementa las propiedades de ACID (Atomicidad, Consistencia, Integridad, Aislamiento).
- Bloqueo a nivel de documento.
- Falta de madurez.
- Limitaciones en inteligencia de negocios.
Desventajas de MongoDB
Frameworks

Frameworks

Frameworks


Meteor es un framework de JavaScript escrito en Node.js para el desarrollo de aplicaciones web que actúan en tiempo real.
Usa la comunicación en tiempo real mediante un protocolo llamado Distributed Data Protocol (DDP), que es soportado por navegadores modernos que usan WebSockets o en navegadores antigüos que soporten "long polling".
En ambos casos, la comunicación navegador-servidor es transparente para el usuario.

- Desarrollado por Meteor Development Group, una startup que recibió $11.2 millones de parte de Andreessen Horowitz.
- Permite el desarrollo de aplicaciones reactivas en tiempo real.
- Permite acceso a la base de datos desde el cliente. (MiniMongo).
- Un solo framework para front end y back end.
- Permite exportar a Android y iOS por medio de Apache-Cordova.
- Es posible utilizar React o Angular en el front end.
- Compensación de latencia.
- No envía HTML a través de la red.



Instalación de Meteor
curl https://install.meteor.com/ | shCrear una app
meteor create myappEstructura de directorios

Recursos Gratuitos
- http://nodeschool.io/
- https://university.mongodb.com/
- https://www.coursera.org/learn/meteor-development
- https://www.meteor.com/tutorials
- http://es.discovermeteor.com/
Recursos de pago
- https://www.udemy.com/understand-javascript/learn/v4/
- https://www.codeschool.com/mean
- https://www.pluralsight.com/courses/meteorjs-fundamentals-single-page-apps
- https://www.pluralsight.com/courses/meteorjs-web-application
Gracias
@brolag
Desarrollo Full Stack con JavaScript
By Alfredo Bonilla
Desarrollo Full Stack con JavaScript
- 681