Frameworks
¿Cómo, cuándo y por qué?
...Y por qué no, también.
@anfibiacreativa
Javascript
@anfibiacreativa
Javascript
SPECIFICATION
LIBRARIES
FRAMEWORKS
RUNTIMES
(Especificación)
(Librería)
(Marco)
(Ejecución)
@anfibiacreativa
Typescript
Javascript
SPECIFICATION
(Especificación)
LIBRARIES
FRAMEWORKS
RUNTIMES
(Librería)
(Marco)
(Ejecución)
@anfibiacreativa
Typescript
Javascript
SPECIFICATION
(Especificación)
LIBRARIES
FRAMEWORKS
RUNTIMES
(Librería)
(Marco)
(Ejecución)
@anfibiacreativa
Javascript
LIBRARIES
FRAMEWORKS
(Librería)
(Marco)
@anfibiacreativa
Inversión del Control
@anfibiacreativa
@anfibiacreativa
DOM
La selección y manipulación de elementos, se logra fácilmente de manera nativa
@anfibiacreativa
DOM
La selección y manipulación de elementos objetos, se soporta nativamente
LÓGICA
Empezamos a mover la lógica de negocio del servidor al cliente
@anfibiacreativa
@anfibiacreativa
10/2010
10/2010
12/2011
05/2013
02/2014
09/2016
12/2016
@anfibiacreativa
@anfibiacreativa
MODELO
LENGUAJE
TIPO
Typescript
Modelo-Vista-Controlador
Framework
@anfibiacreativa
MODELO
LENGUAJE
TIPO
JavaScript
DOM/VDOM
Librería UI
@anfibiacreativa
MODELO
LENGUAJE
TIPO
JavaScript
DOM/VDOM
Framework
@anfibiacreativa
MODELO
LENGUAJE
TIPO
JavaScript
DOM (Paso de compilación)
Framework
@anfibiacreativa
Library
o Framework
INVERSIÓN
de CONTROL
Solución de Arquitectura
@anfibiacreativa
@anfibiacreativa
-
Limitaciones de tiempo
@anfibiacreativa
-
Limitaciones de tiempo
-
Tamaño/madurez equipo
@anfibiacreativa
-
Limitaciones de tiempo
-
Tamaño/madurez equipo
-
Tecnología pre-existente
@anfibiacreativa
@anfibiacreativa
Curva de
Aprendizaje
Alta
Alta
Baja
Baja
@anfibiacreativa
Madurez del
código base
* respecto a su uso en producción
Alta
Alta
Alta
Media
@anfibiacreativa
Oferta herramienta
de linea de comandos
(CLI)
Muy Alta
Alta
Alta
Alta
@anfibiacreativa
Integración sin
herramientas de
compilación
No
Ext.
Si
No
@anfibiacreativa
OOTB
Routing
Si
Ext.
Si
Ext.
@anfibiacreativa
Mecanismos para mejorar`runtime perfomance`
Si
Si
Si
Si
@anfibiacreativa
¿Cuál es el costo del bootstrap?
Alto
Medio
Bajo
~
~200kb
~100kb
~35kb
~var
Los valores son aproximados
@anfibiacreativa
Mecanismos dedicados para integrar
control de estado
Si
Si
Si
Si
ngRX*
Redux*
Vuex*
Store
Librería o módulo externo*
@anfibiacreativa
Mecanismos para implementar i18n and l10n
Si
Ext.
Ext.
Ext.
@anfibiacreativa
Herramientas dedicadas para SSR y SSG
Si
Si
Si
Si
¿Necesitamos un Framework en nuestro proyecto?
@anfibiacreativa
¿Es un producto?
¿El resultado es estático?
¿Es un proyecto?
¿El resultado es dinámico?
¿Se necesita control de estado?
¿Se necesita data-binding?
¿Es una UI reactiva?
@anfibiacreativa
¿Puedo hacerlo
solo con
JavaScript?
@anfibiacreativa
Selección de elementos del DOM
Manipulación del DOM
Control del estado
ES2015+
@anfibiacreativa
@anfibiacreativa
@anfibiacreativa
NAVEGADOR se encarga de la lógica, hace el routing, descarga los datos, genera el HTML, etc
CSR
Runtime
RÁPIDO
RÁPIDO
RÁPIDO
LENTO
First Paint
First Contentful Paint
Time to First Byte
Time to Interactive
@anfibiacreativa
@anfibiacreativa
(Re)hidratación del DOM
Server Side Rendering
Static Site Generators
Parcial
via otro Framrwork basado en Svelte
@anfibiacreativa
Muchas Gracias
Natalia Venditto
Imágenes: Unsplash.com
Iconos y gráficos: www.flaticon.com
https://www.flaticon.com/authors/becris
https://www.flaticon.com/authors/wichaiwi
https://www.flaticon.com/authors/nikita-golubev
https://www.flaticon.com/authors/freepik
https://www.flaticon.com/authors/smashicons
https://www.flaticon.com/authors/smashicons
https://www.flaticon.com/authors/ddara
@anfibiacreativa
JavaScript Frameworks
By Natalia Venditto
JavaScript Frameworks
¿Cómo, cuándo y por qué?...Y por qué no, también.
- 228