Spaghetti Stack JS
Ventajas
- JS en todos lados
- Fácil de aprender
- Mucho material online
- Personal permutable
- Microservicios
- Asincrono
Desventajas
- Mucho material online es basura
- JS tiene muchos defectos
- Demasiadas herramientas
- Proceso NodeJS mono-core
- MongoDB no transaccional
- Bubble up de errores
- Callback of hell
- Asincrono
Asincronismo JS
PHP
echo "1";
sleep(5);
echo "2";
JS
console.log("1");
setTimeout(function(){
console.log("2");
}, 5000);
console.log("3");
Event Loop
https://youtu.be/8aGhZQkoFbQ
NodeJS & NPM
Requerimientos Windows:
- Python 2.7.x
- Visual Studio 2013 C++
- Agregar a PATH Python y carpeta bin de modulos
Consejos S.O. NO Windows:
- Mover carpeta de módulos globales a home
Versiones
ExpressJS
Framework simplista
Servidor web
Middlewares imperativos
"Evitar GZIP"
Pagina oficial confiable
http://expressjs.com/
ExpressJS
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello World!');
});
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
MongoDB
Mongoose
Inicializar
TokuMX
MongoDB
var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test');
var Cat = mongoose.model('Cat', { name: String });
var kitty = new Cat({ name: 'Zildjian' }); kitty.save(function (err) {
if (err) // ...
console.log('meow');
});
Task Runners
Gulp *
Grunt
Webpack
AngularJS
FULL AJAX SPA
Google Feedback
-
6 meses, 3 devs, 17k lineas de codigo
- 3 meses, 1 dev, 1.5k lineas de codigo
egghead.io
ng-book
john papa styleguide
Bluebird
var fs = require("fs");
fs.readFile("name", "utf8", function(err, data) {
});
var fs = Promise.promisifyAll(require("fs"));
fs.readFileAsync("name", "utf8").then(function(data) {
});
//Promise.method()
TypeScript
POO
Tipos
Import / Export
Futurefill
Best Practices
ng-inx
bower
lodash
código agnóstico
protractor + karma + jasmine
yeoman: gulp-angular && meanjs
Spaghetti JS
By Heber López
Spaghetti JS
- 275