!==
Javascript vs TypeScript
Component-based UI
SEO Friendly
Bindings
Bootstrapping
¿Cómo desarrollo mi aplicación WEB?
¿Qué herramientas uso para el desarrollo?
Re-hacer la rueda, todo a mano
Jquery enfocado al UI, pero no te ayuda con la lógica ni el manejo de datos
Las aplicaciones empezaron a crecer en usuarios y contenido
Y se vio la necesidad de escalar los servidores, moviendo partes de código a el cliente
Te guían en como hacer tu aplicación
Componentes que puedes usar
Imagen de lo que todos esperaban
¿Qué es Angular?
Angular es un conjunto de herramientas, que te permite hacer una aplicación
La plantilla que contiene la estructura de la vista
Un HTML con componentes que se van a renderizar
Una pequeña parte de la aplicación
Es quién controla la información que el template muestra
Lo que maneja la lógica pesada
Tiene un propósito específico y es su responsabilidad
La inyección de dependencias administra los servicios
Se le entregan a quién las pida
Las clases deben configurar sus dependencias desde afuera
Los componentes reciben servicios en su constructor
Permite hacer nuestros componentes independientes de los servicios
Permite que podamos probar nuestras clases de forma fácil
Las ventajas que obtienes al usar angular:
- Framework
- Componentes web
- Injector de dependencias
Existen herramientas que ya están construidas y con las cuales puedes programar
La aplicación se convierte en algo modular, puede crecer con facilidad
Es gran conjunto de herramientas y es difícil aprender como usarlas
Aprender require paciencia y experimentación
TypeScript es un superset de Javascript
Lo mismo que Javascript, pero mejor
TypeScript es que es abierto (open source)
Madurez del código
TypeScript me permite explicar mis APIs a terceros
Compilado
Angular 5 - Actual
Typescript 2.4.x support
Reactive Forms
HttpClient
i18N Pipes
Router
Animations
Angular 6 - 2018
Typescript 2.6.x support
Forms Features
Router
Optional generic type for ElementRef
ModuleWithProviders
@Inject(token:String)
Componentizar
Manejar servicios con responsabilidades claras
Crear modelos que representen los datos
¿Qué tan difícil es manejar datos asincrónicos?
No me importa si tienes los datos o no, solo continua
No esperar a los datos y continuar procesando
Espero que los datos lleguen pronto, esperaba que llegaran hace mucho tiempo
Te doy mi palabra que te daré un resultado, o al menos te diré si fallé al intentarlo
GENERATOR
OBSERVABLE
PROMISE
FUNCTION
Synchonous
Asynchonous
Multiple
Single
Los observables se pueden cancelar (unsubscribe)
Los observables se pueden repetir (retry)
¿Qué es programación reactiva?
Microsoft's Rx terminology
KISS
Programación reactiva es programar con streams de datos asincrónicos
Eres capaz de crear un stream de datos a partir de cualquier cosa
variables, input de usuario, propiedades, caches, estructuras de datos, etc.
Te dan un conjunto de funciones que te permiten combinar filtrar y hacer cambios sobre cualquiera de los streams
Tenemos muchas funciones que nos ayudan:
http://rxmarbles.com/
Los Sistemas Reactivos son:
- flexibles y escalables
- altamente responsivo
- tolerante a fallos
- evolutivo
Cuando un cambio es requerido la respuesta es manejada por nuestras herramientas
Cambios en streams de datos son fáciles de hacer
El usuario tendrá una respuesta inmediata
No hay demora entre una acción y su resultado
La aplicación puede crecer y expandirse, incluyendo nuevas funcionalidades de forma rápida
Hacer el código fácil de mantener y evolucionar
Aprenderlo es difícil, aún más difícil por la falta de buen material
La master sword - empieza con poco poder
No sabes como usar la master sword, solo la mueves
A través del entrenamiento incrementas el poder de la master sword
La master sword se convierte en el arma más poderosa que puedes usar
Solo un conjunto de herramientas, no sabes como utilizarlas
Difícil de hacer debugging
Aprender require experimentación
Difícil de poner observables en aplicaciones complejas que ya existen
Applicaciones que usen gran cantidad datos, que se puedan representar en una secuencia asincrónica
Cuando los datos asincrónicos son de unica respuesta
La aplicación no crecerá en datos, y la complejidad es baja
http://reactivex.io/
La aplicación está hecha para realizar una acción sencilla luego de hacer click en un botón 3 veces rápidamente
https://github.com/hackeo1/click-project
Reto:
https://goo.gl/8iyaGi
Red:
HACKATHON UAM
Contraseña:
Hackathon
https://www.campusmvp.es/recursos/post/las-5-principales-ventajas-de-usar-angular-para-crear-aplicaciones-web.aspx
https://jaxenter.com/angular-5-new-features-138649.html
https://www.ngdevelop.tech/angular-6-features/
https://angular.io/guide/ajs-quick-reference
https://www.scalablepath.com/blog/single-page-applications/
https://jaxenter.com/angular-5-new-features-138649.html
https://www.ngdevelop.tech/angular-6-features/
http://slides.com/santiagorodriguezsordo/functional-reactive-programming-spanish
https://michalzalecki.com/use-rxjs-with-react/
https://medium.com/frintjs/deep-dive-into-observed-components-with-react-js-and-frintjs-e2726eaeff2b
https://x-team.com/blog/rxjs-observables/
https://xgrommx.github.io/rx-book/index.html
https://gist.github.com/staltz/868e7e9bc2a7b8c1f754