8. SPA
Después de varios años el desarrollo a
evolucionado bastante.
Empieza el declive de flash y nacen
tecnologías como Backbone o Ember.
Nacen Angular y Bootstrap.
Nacen NodeJS y NPM.
Testing en Frontend.
Ajax y jQuery
Primer gran cambio en el
paradigma, se empiezan a utilizar
para descargar datos, animaciones
sencillas o crear componentes con
algo de complejidad.
HISTORIA
JavaScript y CSS
Se utilizan para mejorar el aspecto
de las webs, todavía muy sencillos.
1995-1996
2005-2006
2009-2011
ES1 ES2 ES3 ES5 ES5.1
9. Polymer, React, Angular
La comunidad sigue evolucionando a
grandes pasos, Angular madura y nacen
tecnologías como Polymer o React.
Nace también Bower.
Testing empieza a coger importancia.
2012-2013
2014-2016
La nueva tecnología
Sigue evolucionando y durante esta
época nacen algunas tecnologías,
otras maduran y otras nacen y
mueren.
- Gulp y / Grunt
- / Less y SASS
- X CoffeScript y TypeScript
- X Bower
- X Flash
- Se asienta Angular 1.5
- Nace Angular 2 (beta)
- Testing y linting se vuelven básicos
JSON
(estándar)
ES6
¿?
Los componentes
Viendo la evolución en todas estas
tecnologías, podemos ver que el
presente y el futuro en la web son
los componentes y la reutilización
de estos.
11. Pre desarrollo
• Lenguajes a utilizar
HTML, CSS, JavaScript (ES3).
• Compatibilidad
Firefox, IE (if IE…).
• Librerías
Ninguna, jQuery/Mootols, etc.
• IDEs y Editores
VS, Frontpage, Dreamweaver, notepad,
etc.
• Metodología
‘Con cuidado’.
Orientación a eventos.
Orientación a prototipos.
Una aplicación – Muchas páginas.
• Problemas
Huella del desarrollador.
Crear las bases del proyecto.
Estructuración de hojas de estilos.
Carga de archivos.
Escalabilidad
Etc.
• Positivo
Sencillez para obtener un primer resultado.
Curva de aprendizaje de las librerías.
• Testing
(¿Aunque si lo haces durante mejor no?)
Sencillo o inexistente.
Unitarios.
Algo de UI.
• Mantenibilidad
Depende.
Desarrollo Post desarrollo
14. • Lenguajes a utilizar
HTML, HAML, JADE
CSS, SASS, LESS, STYLUS + BEM, OOCSS
JavaScript (ES5, 6), Coffe, TypeScript
• Compatibilidad
Firefox, IE, Edge, Chrome, …
Responsive!!
Electron, Cordova, etc.
• Librerías
Angular, React, jQuery, Moment, Lodash,
RX, etc………
• IDEs y Editores
Visual Studio, Code, Atom, Sublime,
WebStorm, etc.
• Tareas
Gulp, grunt, webpack, jspmio (bundles)
• Dependencias
NPM, Bower?
Pre desarrollo
• Metodología
Orientado a componentes.
• Problemas
Los mismos (seguimos siendo
humanos) aunque se han reducido.
Curvas de aprendizaje.
Expertos en librerías.
• Positivo
Una app compleja debería ser más
sencilla de crear y mantener.
• Testing
Unitarios, mucho más
(Jasmine, Karma, etc.)
Algo de UI (Los seguimos
odiando)
• Mantenibilidad
Depende y siempre va a
depender.
Desarrollo Post desarrollo
15. • Lenguajes a utilizar
HTML, HAML, JADE
CSS, SASS, LESS, STYLUS + BEM, OOCSS
JavaScript (ES5, 6), Coffe, TypeScript
• Compatibilidad
Firefox, IE, Edge, Chrome, …
Responsive!!
Electron, Cordova, etc.
• Librerías
Angular, React, jQuery, Moment, Lodash,
RX, etc………
• IDEs y Editores
Visual Studio, Code, Atom, Sublime,
WebStorm, etc.
• Tareas
Gulp, grunt, webpack, jspmio (bundles)
• Dependencias
NPM, Bower?
Pre desarrollo
• Metodología
Orientado a componentes.
• Problemas
Los mismos (seguimos siendo
humanos) aunque se han reducido.
Curvas de aprendizaje.
Expertos en librerías.
• Positivo
Una app compleja debería ser más
sencilla de crear y mantener.
• Testing
Unitarios, mucho más
(Jasmine, Karma, etc.)
Algo de UI (Los seguimos
odiando)
• Mantenibilidad
Depende y siempre va a
depender.
Desarrollo Post desarrollo
25. POLYFILLS
Librerías de JavaScript que nos permiten utilizar
funcionalidades que aún no soporta el
navegador por si mismo.
- html5shiv Añade las características básicas de HTML5
- WebComponents.js Permite utilizar componentes
- prefix-free Dejar de depender de los prefijos
- flexie Para utilizar flexbox
- svg4everybody Permite utilizar todas las catacterísticas de svg
- Muchos más.
RENDIMIENTO
37. PLANTEAR
☐ ¿Duración del proyecto?
☐ ¿Tamaño del equipo?
☐ ¿Complejidad del proyecto?
☐ ¿Reutilización de componentes?
☐ ¿Peticiones desde cliente?
☐ ¿Conocimientos del equipo?
☐ ¿Nivel de calidad esperado?
Lo siento, la respuesta casi siempre
es ‘depende’