SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Evento México
CREANDO APLICACIONES WEB EN EL 2015
Marzo 2015
1
Our Studios
At Consumer Experience we believe
that in order to retain and engage the
most demanding online users, our
clients need scalable and appealing
websites, providing predictable, highly
available systems and up-to-date
content.
PODs
Our Studios
Our Practices
Software Archaeology
Software Maintenance
Content Management Systems
Digital Marketing
Video Content Production
Cloud Computing
Managed Services
Information Security
E-commerce
Content Management
Travel
Design Thinking
User Experience Design
Visual Design
Service Design
Creative Workshops
Collaboration Solutions
Process Engineering Tools
Digital Platforms
Game Development
Graphic Engineering
Test Automation
Mobile Testing
Game QA
Data Architecture
Data Science
Data Visualization
Hybrid
Native
Consulting
Innovation as a Service
Product Landing
Hardware Design and Integration
Native Wearable and Embedded Development
Wearable Application Usability and Interface Design
Data Design & Management
UI getting Enterprise
...because Javascript is not about displaying alert() anymore...
Delivery - Integración Continua
Aspectos relevantes
Ocupar un repositorio de código fuente
Integraciones frecuentes y automáticas de un proyecto de software
Automatizar un build
El build debe ejecutar pruebas para asegurar integridad
Cada commit debe disparar un build
Automatizar deployment
Git, Svn, Mercurial, Bazaar
Grunt, Jenkins
Grunt
Grunt, Jenkins
Grunt
Gestión automática de dependencias Bower, NPM
Arquitectura
Consideraciones
“It’s all about balance”
Entendimiento de la arquitectura, de los roles y responsabilidades de cada actor
Definición clara de servicios y comunicación desde UI
Elección de patrones de diseño acordes a la arquitectura, encontrando un balance en
varios frentes (código fuente, seguridad e integridad de datos, infraestructura, entre otros)
Nunca perder foco en la usabilidad
Beneficio de esta propuesta: escalabilidad
Performance
“There’s no magic bullet”
Consideraciones
Mantener las librerías referenciadas actualizadas
Realizar análisis de código para obtener métricas de rendimiento (Sonar, New Relic)
Aplicar criterios y buenas prácticas de la comunidad. Mantenerse actualizado
Entender el “big picture”: arquitectura propuesta, alcance del producto, navegadores
Calidad de código
Analizador estático de código Analizador colaborativo de código
CrucibleJS Hint (JS Lint)
Google Closure Tools Phabricator
Review Board
Gerrit
El objetivo es la identificación de fallas mejoran la calidad de código y las
skills del desarrollador
Sonar
RequireJS
Dependency Injection / Service Locator
“Loading, loading, loading”
● Como Module Loader, optimizado para uso web pero también
apto para otros ambientes Javascript
● Resuelve la carga de otros módulos por dependencia (en el
orden apropiado) e incluso el tiempo (before/after page load)
● Promueve modularización
Bower
Gestión de paquetes
“a package manager for the web”
● Gestión de paquetes/libs desde repositorios externos
● Promueve uso up-to-date de dependencias
● Creado por Twitter
$ grunt
Running "jshint:gruntfile" (jshint) task
>> 1 file lint free.
Running "jshint:src" (jshint) task
>> 1 file lint free.
Running "jshint:test" (jshint) task
>> 1 file lint free.
Running "qunit:files" (qunit) task
Testing test/tiny-pubsub.html....OK
>> 4 assertions passed (23ms)
Running "clean:files" (clean) task
Cleaning "dist"...OK
Running "concat:dist" (concat) task
File "dist/ba-tiny-pubsub.js" created.
Running "uglify:dist" (uglify) task
File "dist/ba-tiny-pubsub.min.js" created.
Uncompressed size: 389 bytes.
Compressed size: 119 bytes gzipped (185 bytes minified).
Done, without errors.
Grunt
Task Runners
“let the automation era begin!”
● Habilidad para definir actividades repetitivas: minificación,
automatización de tests, build, empaquetado
● Multitud de plugins con otros frameworks: handlebars, JSHint,
less, sass, la lista crece día a día
● Esta herramienta es la más popular, pero se debe considerar
otras como Cake, Gulp o Broccoli según la necesidad
Simple Javascript example
console.log('Loading a web page');
var page = require('webpage').create();
var url = 'http://www.phantomjs.org/';
page.open(url, function (status) {
//Page is loaded!
phantom.exit();
});
PhantomJS
Automation
“is not a test framework, it’s used to launch tests via a suitable test runner”
● Automatizar web stack basado en browser headless
● Permite captura de pantalla del resultado
● Permite manipulación del DOM
● Apoyo en monitoreo de performance
● Usado en workflow de pruebas en Bootstrap, jQuery Mobile, Less.js,
Modernizr y YUI3 entre otros
● Usado por Twitter y LinkedIn
QUnit
Unit Testing
“a Javascript Unit Testing framework”
● Facilidad de uso
● Variedad de métodos Asserts y el enfoque ha sido en
parte inspiración a lo usado en CommonJS
● Por supuesto, puedes crear tus propios Asserts
● Usado por jQuery, jQuery Mobile y jQuery UI entre
otros
● Creado originalmente como parte de jQuery
Yeoman
Web Generators
“scaffolding web apps”
● Generar un template de aplicación en base a
combinación de librerías
● Soporta testing, minification, documentación
● Crea y comparte prototipos o arquetipos
UI TRENDS
Tendencias, desafíos, expectativas
NodeJS
Platforms
“one language”
● Proyección a desarrollos basados en sólo una tecnología: Javascript,
tanto para backend como para frontend
● Isomorphic Javascript
Aspectos relevantes
Responsive Web Design (RWD)
Consideraciones
“continuous adaptation”
● Se ha visto un constante aumento del rango de dispositivos móviles,
ya sea en capacidad, tamaño del display, versatilidad. Lo que implica
nuevas opciones entre resoluciones
● Surgen nuevas líneas de dispositivos wearables como Apple Watch,
Google Glass, Oculus Rift, entre otros
● Nuevos conceptos: Semantic UI
Polymer
Componentes reusables
“thinking in building blocks”
● Crear componentes atómicos de fácil reutilización
● Permite desarrollo veloz
● Tiene una herramienta visual para la generación de prototipos
● Permite la creación de aplicaciones mobile-ready
● Apoyado por Google
var Timer = React.createClass({
getInitialState: function() {
return {secondsElapsed: 0};
},
tick: function() {
this.setState({secondsElapsed: this.state.secondsElapsed + 1});
},
componentDidMount: function() {
this.interval = setInterval(this.tick, 1000);
},
componentWillUnmount: function() {
clearInterval(this.interval);
},
render: function() {
return (
<div>Seconds Elapsed: {this.state.secondsElapsed}</div>
);
}
});
React.render(<Timer />, mountNode);
ReactJS
Componentes reusables
“keep thinking in building blocks”
● Ayuda en la rápida creación de User Interfaces
● Crea componentes “limpios” y de facil reutilización
● Puede ser ejecutado server side apoyado en NodeJS
● A pesar de sus múltiples beneficios aún no convence a la comunidad
● Creado por Facebook
Keeping Social
Consideraciones
“being... a connected being”
● Herramientas colaborativas
● Información en la nube
BabelJS
JS Transpiler
“the next generation Javascript”
● También conocido como 6to5 (ECMAScript)
● Como transpiler permite traducir código de la especificación 6 a la
actual versión de JS
● El código producido continúa siendo “readable”
● Se pueden customizar las transformaciones o incluso desactivarlas
 Creando Aplicaciones Web en el 2015

Más contenido relacionado

La actualidad más candente

Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microserviciosMecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microserviciosSoftware Guru
 
Dragome en JavaConf Buenos Aires 2014
Dragome en JavaConf Buenos Aires 2014 Dragome en JavaConf Buenos Aires 2014
Dragome en JavaConf Buenos Aires 2014 Fernando Petrola
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?Micael Gallego
 
Gwt intro adwe_murcia
Gwt intro adwe_murciaGwt intro adwe_murcia
Gwt intro adwe_murciaADWE Team
 
Presentacion portlets tools
Presentacion portlets toolsPresentacion portlets tools
Presentacion portlets toolsguest696b01
 
Presentacion portlets-tools
Presentacion portlets-toolsPresentacion portlets-tools
Presentacion portlets-toolsguest696b01
 
Arquitectura basada a Eventos para principiantes con Apache Kafka
Arquitectura basada a Eventos para principiantes con Apache KafkaArquitectura basada a Eventos para principiantes con Apache Kafka
Arquitectura basada a Eventos para principiantes con Apache KafkaSoftware Guru
 

La actualidad más candente (11)

Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microserviciosMecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
 
Dragome en JavaConf Buenos Aires 2014
Dragome en JavaConf Buenos Aires 2014 Dragome en JavaConf Buenos Aires 2014
Dragome en JavaConf Buenos Aires 2014
 
Jclic
JclicJclic
Jclic
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?
 
Gwt intro adwe_murcia
Gwt intro adwe_murciaGwt intro adwe_murcia
Gwt intro adwe_murcia
 
Implementando una Arquitectura de Microservicios
Implementando una Arquitectura de MicroserviciosImplementando una Arquitectura de Microservicios
Implementando una Arquitectura de Microservicios
 
Presentacion portlets tools
Presentacion portlets toolsPresentacion portlets tools
Presentacion portlets tools
 
Presentacion portlets-tools
Presentacion portlets-toolsPresentacion portlets-tools
Presentacion portlets-tools
 
Arquitectura basada a Eventos para principiantes con Apache Kafka
Arquitectura basada a Eventos para principiantes con Apache KafkaArquitectura basada a Eventos para principiantes con Apache Kafka
Arquitectura basada a Eventos para principiantes con Apache Kafka
 
Angular js
Angular jsAngular js
Angular js
 
Herramientas Digitales
Herramientas DigitalesHerramientas Digitales
Herramientas Digitales
 

Destacado

The Baker Family of Cambridgeshire.
The Baker Family of Cambridgeshire.The Baker Family of Cambridgeshire.
The Baker Family of Cambridgeshire.rekab20
 
Everythingwebmastersneedtoknowaboutgoogleplus 110817025959 Phpapp01
Everythingwebmastersneedtoknowaboutgoogleplus 110817025959 Phpapp01Everythingwebmastersneedtoknowaboutgoogleplus 110817025959 Phpapp01
Everythingwebmastersneedtoknowaboutgoogleplus 110817025959 Phpapp01Gary Good
 
15 kwaliteitsfactoren - Henk Jan Bijmolt (Cleafs)
15 kwaliteitsfactoren  -  Henk Jan Bijmolt (Cleafs)15 kwaliteitsfactoren  -  Henk Jan Bijmolt (Cleafs)
15 kwaliteitsfactoren - Henk Jan Bijmolt (Cleafs)Affiliate Dag
 
Ict photo evidence
Ict photo evidenceIct photo evidence
Ict photo evidencemrswato
 
Luke Sanford " A Closer Look In How Luke Communication" 2010
Luke Sanford " A Closer Look In How Luke Communication" 2010 Luke Sanford " A Closer Look In How Luke Communication" 2010
Luke Sanford " A Closer Look In How Luke Communication" 2010 LukeFinlaySanford
 
CLU New Graduate Student Orientation
CLU New Graduate Student OrientationCLU New Graduate Student Orientation
CLU New Graduate Student Orientationcallutheran
 
Book Bootcamp Planejamento . Miami Ad School / ESPM
Book Bootcamp Planejamento . Miami Ad School / ESPMBook Bootcamp Planejamento . Miami Ad School / ESPM
Book Bootcamp Planejamento . Miami Ad School / ESPMMayara Maximilla
 
Material consulta plan_m_in_bsgr
Material consulta plan_m_in_bsgrMaterial consulta plan_m_in_bsgr
Material consulta plan_m_in_bsgrBsgr Planmin
 
Cute baby animals of all kindz
Cute baby animals of all kindzCute baby animals of all kindz
Cute baby animals of all kindzSpartaKiss
 
Mole nikh
Mole nikhMole nikh
Mole nikhnirap61
 
Crm at a glance
Crm at a glanceCrm at a glance
Crm at a glanceCRM Vision
 
company overview
company overviewcompany overview
company overviewnikumoni
 
Program staff training-2-safety
Program staff training-2-safetyProgram staff training-2-safety
Program staff training-2-safetyJessica Miller
 

Destacado (20)

Opinator
OpinatorOpinator
Opinator
 
The Baker Family of Cambridgeshire.
The Baker Family of Cambridgeshire.The Baker Family of Cambridgeshire.
The Baker Family of Cambridgeshire.
 
Everythingwebmastersneedtoknowaboutgoogleplus 110817025959 Phpapp01
Everythingwebmastersneedtoknowaboutgoogleplus 110817025959 Phpapp01Everythingwebmastersneedtoknowaboutgoogleplus 110817025959 Phpapp01
Everythingwebmastersneedtoknowaboutgoogleplus 110817025959 Phpapp01
 
SugarCRM - What's New in Version 7.7
SugarCRM - What's New in Version 7.7SugarCRM - What's New in Version 7.7
SugarCRM - What's New in Version 7.7
 
HE Student Induction 13/14
HE Student Induction 13/14HE Student Induction 13/14
HE Student Induction 13/14
 
15 kwaliteitsfactoren - Henk Jan Bijmolt (Cleafs)
15 kwaliteitsfactoren  -  Henk Jan Bijmolt (Cleafs)15 kwaliteitsfactoren  -  Henk Jan Bijmolt (Cleafs)
15 kwaliteitsfactoren - Henk Jan Bijmolt (Cleafs)
 
Ict photo evidence
Ict photo evidenceIct photo evidence
Ict photo evidence
 
Luke Sanford " A Closer Look In How Luke Communication" 2010
Luke Sanford " A Closer Look In How Luke Communication" 2010 Luke Sanford " A Closer Look In How Luke Communication" 2010
Luke Sanford " A Closer Look In How Luke Communication" 2010
 
Folhas anatomia
Folhas   anatomiaFolhas   anatomia
Folhas anatomia
 
CLU New Graduate Student Orientation
CLU New Graduate Student OrientationCLU New Graduate Student Orientation
CLU New Graduate Student Orientation
 
Book Bootcamp Planejamento . Miami Ad School / ESPM
Book Bootcamp Planejamento . Miami Ad School / ESPMBook Bootcamp Planejamento . Miami Ad School / ESPM
Book Bootcamp Planejamento . Miami Ad School / ESPM
 
Material consulta plan_m_in_bsgr
Material consulta plan_m_in_bsgrMaterial consulta plan_m_in_bsgr
Material consulta plan_m_in_bsgr
 
Cute baby animals of all kindz
Cute baby animals of all kindzCute baby animals of all kindz
Cute baby animals of all kindz
 
Mole nikh
Mole nikhMole nikh
Mole nikh
 
Crm at a glance
Crm at a glanceCrm at a glance
Crm at a glance
 
Drinking ageeeeee
Drinking ageeeeeeDrinking ageeeeee
Drinking ageeeeee
 
Solution[1]
Solution[1]Solution[1]
Solution[1]
 
company overview
company overviewcompany overview
company overview
 
강의자료8
강의자료8강의자료8
강의자료8
 
Program staff training-2-safety
Program staff training-2-safetyProgram staff training-2-safety
Program staff training-2-safety
 

Similar a Creando Aplicaciones Web en el 2015

Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoManuel Carrasco Moñino
 
An evening with ... Ionic Framework Meetup
An evening with ... Ionic Framework Meetup An evening with ... Ionic Framework Meetup
An evening with ... Ionic Framework Meetup Arkhotech
 
Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700Luis Fernando Aguas Bucheli
 
Commit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningCommit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningRafa Hidalgo
 
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivelSPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivelImanol Iza Martin
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightParadigma Digital
 
003-Introduccion-Angular.pdf
003-Introduccion-Angular.pdf003-Introduccion-Angular.pdf
003-Introduccion-Angular.pdfDubiWeb.TK
 

Similar a Creando Aplicaciones Web en el 2015 (20)

Aprendiendo GWT
Aprendiendo GWTAprendiendo GWT
Aprendiendo GWT
 
Desarrollo de aplicaciones web con Google Web Toolkit
Desarrollo de aplicaciones web con Google Web ToolkitDesarrollo de aplicaciones web con Google Web Toolkit
Desarrollo de aplicaciones web con Google Web Toolkit
 
Andrid studio
Andrid studioAndrid studio
Andrid studio
 
Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrasco
 
Presentacion Google Web Toolkit
Presentacion Google Web ToolkitPresentacion Google Web Toolkit
Presentacion Google Web Toolkit
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
 
Gwt I - entendiendo gwt
Gwt I - entendiendo gwtGwt I - entendiendo gwt
Gwt I - entendiendo gwt
 
An evening with ... Ionic Framework Meetup
An evening with ... Ionic Framework Meetup An evening with ... Ionic Framework Meetup
An evening with ... Ionic Framework Meetup
 
Arquitectura
Arquitectura Arquitectura
Arquitectura
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700
 
Cv dennys-jose-marquez-reyes-desarrollador-web
Cv dennys-jose-marquez-reyes-desarrollador-webCv dennys-jose-marquez-reyes-desarrollador-web
Cv dennys-jose-marquez-reyes-desarrollador-web
 
Commit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningCommit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine Learning
 
Integrando AngularJS y drupal
Integrando AngularJS y drupalIntegrando AngularJS y drupal
Integrando AngularJS y drupal
 
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivelSPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring Insight
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
 
003-Introduccion-Angular.pdf
003-Introduccion-Angular.pdf003-Introduccion-Angular.pdf
003-Introduccion-Angular.pdf
 
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
 

Más de Globant

Webinar MLOps: When AA gets serious.
Webinar MLOps: When AA gets serious.Webinar MLOps: When AA gets serious.
Webinar MLOps: When AA gets serious.Globant
 
Google Cloud Spanner y NewSQL
Google Cloud Spanner y NewSQLGoogle Cloud Spanner y NewSQL
Google Cloud Spanner y NewSQLGlobant
 
Eventos Asíncronos como estrategia virtual
Eventos Asíncronos como estrategia virtualEventos Asíncronos como estrategia virtual
Eventos Asíncronos como estrategia virtualGlobant
 
Cultura y valores 4.0 para líderes 4.0
Cultura y valores 4.0 para líderes 4.0Cultura y valores 4.0 para líderes 4.0
Cultura y valores 4.0 para líderes 4.0Globant
 
Tech Insiders Salesforce: SFDX e Integración Continua
Tech Insiders Salesforce: SFDX e Integración ContinuaTech Insiders Salesforce: SFDX e Integración Continua
Tech Insiders Salesforce: SFDX e Integración ContinuaGlobant
 
Como impulsar tu carrera Salesforce
Como impulsar tu carrera SalesforceComo impulsar tu carrera Salesforce
Como impulsar tu carrera SalesforceGlobant
 
3D Programming Basics: WebGL
3D Programming Basics: WebGL3D Programming Basics: WebGL
3D Programming Basics: WebGLGlobant
 
Converge augmented report
Converge augmented reportConverge augmented report
Converge augmented reportGlobant
 
Sistema de recomendación entiempo real usando Delta Lake
Sistema de recomendación entiempo real usando Delta LakeSistema de recomendación entiempo real usando Delta Lake
Sistema de recomendación entiempo real usando Delta LakeGlobant
 
Kubeflow: Machine Learning en Cloud para todos
Kubeflow: Machine Learning en Cloud para todosKubeflow: Machine Learning en Cloud para todos
Kubeflow: Machine Learning en Cloud para todosGlobant
 
Orquestando Pipelines de Datosen AWS con Step Function y AWS Glue
Orquestando Pipelines de Datosen AWS con Step Function y AWS GlueOrquestando Pipelines de Datosen AWS con Step Function y AWS Glue
Orquestando Pipelines de Datosen AWS con Step Function y AWS GlueGlobant
 
Apache Beam: Lote portátil y procesamiento de transmisión
Apache Beam: Lote portátil y procesamiento de transmisiónApache Beam: Lote portátil y procesamiento de transmisión
Apache Beam: Lote portátil y procesamiento de transmisiónGlobant
 
Navegando el desafío de transformación digital de los servicios financieros
Navegando el desafío de transformación digital de los servicios financierosNavegando el desafío de transformación digital de los servicios financieros
Navegando el desafío de transformación digital de los servicios financierosGlobant
 
Converge 2020
Converge 2020 Converge 2020
Converge 2020 Globant
 
Converge 2020
Converge 2020Converge 2020
Converge 2020Globant
 
Tendencias de tecnología para el recién egresado
Tendencias de tecnología para el recién egresadoTendencias de tecnología para el recién egresado
Tendencias de tecnología para el recién egresadoGlobant
 
SRE: ¿Qué es y cómo gestionar el Toil?
SRE: ¿Qué es y cómo gestionar el Toil?SRE: ¿Qué es y cómo gestionar el Toil?
SRE: ¿Qué es y cómo gestionar el Toil?Globant
 
Monitoreo en tiempo real para la mejora continua de una aplicación
Monitoreo en tiempo real para la mejora continua de una aplicaciónMonitoreo en tiempo real para la mejora continua de una aplicación
Monitoreo en tiempo real para la mejora continua de una aplicaciónGlobant
 
¿Cómo automatizar pruebas de infraestructura y no morir en el intento?
¿Cómo automatizar pruebas de infraestructura y no morir en el intento?¿Cómo automatizar pruebas de infraestructura y no morir en el intento?
¿Cómo automatizar pruebas de infraestructura y no morir en el intento?Globant
 
Automatización en AWS con Chatbot Serverless (Amazon Lex)
Automatización en AWS con Chatbot Serverless (Amazon Lex)Automatización en AWS con Chatbot Serverless (Amazon Lex)
Automatización en AWS con Chatbot Serverless (Amazon Lex)Globant
 

Más de Globant (20)

Webinar MLOps: When AA gets serious.
Webinar MLOps: When AA gets serious.Webinar MLOps: When AA gets serious.
Webinar MLOps: When AA gets serious.
 
Google Cloud Spanner y NewSQL
Google Cloud Spanner y NewSQLGoogle Cloud Spanner y NewSQL
Google Cloud Spanner y NewSQL
 
Eventos Asíncronos como estrategia virtual
Eventos Asíncronos como estrategia virtualEventos Asíncronos como estrategia virtual
Eventos Asíncronos como estrategia virtual
 
Cultura y valores 4.0 para líderes 4.0
Cultura y valores 4.0 para líderes 4.0Cultura y valores 4.0 para líderes 4.0
Cultura y valores 4.0 para líderes 4.0
 
Tech Insiders Salesforce: SFDX e Integración Continua
Tech Insiders Salesforce: SFDX e Integración ContinuaTech Insiders Salesforce: SFDX e Integración Continua
Tech Insiders Salesforce: SFDX e Integración Continua
 
Como impulsar tu carrera Salesforce
Como impulsar tu carrera SalesforceComo impulsar tu carrera Salesforce
Como impulsar tu carrera Salesforce
 
3D Programming Basics: WebGL
3D Programming Basics: WebGL3D Programming Basics: WebGL
3D Programming Basics: WebGL
 
Converge augmented report
Converge augmented reportConverge augmented report
Converge augmented report
 
Sistema de recomendación entiempo real usando Delta Lake
Sistema de recomendación entiempo real usando Delta LakeSistema de recomendación entiempo real usando Delta Lake
Sistema de recomendación entiempo real usando Delta Lake
 
Kubeflow: Machine Learning en Cloud para todos
Kubeflow: Machine Learning en Cloud para todosKubeflow: Machine Learning en Cloud para todos
Kubeflow: Machine Learning en Cloud para todos
 
Orquestando Pipelines de Datosen AWS con Step Function y AWS Glue
Orquestando Pipelines de Datosen AWS con Step Function y AWS GlueOrquestando Pipelines de Datosen AWS con Step Function y AWS Glue
Orquestando Pipelines de Datosen AWS con Step Function y AWS Glue
 
Apache Beam: Lote portátil y procesamiento de transmisión
Apache Beam: Lote portátil y procesamiento de transmisiónApache Beam: Lote portátil y procesamiento de transmisión
Apache Beam: Lote portátil y procesamiento de transmisión
 
Navegando el desafío de transformación digital de los servicios financieros
Navegando el desafío de transformación digital de los servicios financierosNavegando el desafío de transformación digital de los servicios financieros
Navegando el desafío de transformación digital de los servicios financieros
 
Converge 2020
Converge 2020 Converge 2020
Converge 2020
 
Converge 2020
Converge 2020Converge 2020
Converge 2020
 
Tendencias de tecnología para el recién egresado
Tendencias de tecnología para el recién egresadoTendencias de tecnología para el recién egresado
Tendencias de tecnología para el recién egresado
 
SRE: ¿Qué es y cómo gestionar el Toil?
SRE: ¿Qué es y cómo gestionar el Toil?SRE: ¿Qué es y cómo gestionar el Toil?
SRE: ¿Qué es y cómo gestionar el Toil?
 
Monitoreo en tiempo real para la mejora continua de una aplicación
Monitoreo en tiempo real para la mejora continua de una aplicaciónMonitoreo en tiempo real para la mejora continua de una aplicación
Monitoreo en tiempo real para la mejora continua de una aplicación
 
¿Cómo automatizar pruebas de infraestructura y no morir en el intento?
¿Cómo automatizar pruebas de infraestructura y no morir en el intento?¿Cómo automatizar pruebas de infraestructura y no morir en el intento?
¿Cómo automatizar pruebas de infraestructura y no morir en el intento?
 
Automatización en AWS con Chatbot Serverless (Amazon Lex)
Automatización en AWS con Chatbot Serverless (Amazon Lex)Automatización en AWS con Chatbot Serverless (Amazon Lex)
Automatización en AWS con Chatbot Serverless (Amazon Lex)
 

Último

Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webDecaunlz
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAdanielaerazok
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfOscarBlas6
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfisrael garcia
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenadanielaerazok
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenajuniorcuellargomez
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdflauradbernals
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdfedwinmelgarschlink2
 

Último (8)

Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la web
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdf
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalena
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalena
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdf
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf
 

Creando Aplicaciones Web en el 2015

  • 1. Evento México CREANDO APLICACIONES WEB EN EL 2015 Marzo 2015 1
  • 2. Our Studios At Consumer Experience we believe that in order to retain and engage the most demanding online users, our clients need scalable and appealing websites, providing predictable, highly available systems and up-to-date content.
  • 4. Our Practices Software Archaeology Software Maintenance Content Management Systems Digital Marketing Video Content Production Cloud Computing Managed Services Information Security E-commerce Content Management Travel Design Thinking User Experience Design Visual Design Service Design Creative Workshops Collaboration Solutions Process Engineering Tools Digital Platforms Game Development Graphic Engineering Test Automation Mobile Testing Game QA Data Architecture Data Science Data Visualization Hybrid Native Consulting Innovation as a Service Product Landing Hardware Design and Integration Native Wearable and Embedded Development Wearable Application Usability and Interface Design Data Design & Management
  • 5. UI getting Enterprise ...because Javascript is not about displaying alert() anymore...
  • 6. Delivery - Integración Continua Aspectos relevantes Ocupar un repositorio de código fuente Integraciones frecuentes y automáticas de un proyecto de software Automatizar un build El build debe ejecutar pruebas para asegurar integridad Cada commit debe disparar un build Automatizar deployment Git, Svn, Mercurial, Bazaar Grunt, Jenkins Grunt Grunt, Jenkins Grunt Gestión automática de dependencias Bower, NPM
  • 7. Arquitectura Consideraciones “It’s all about balance” Entendimiento de la arquitectura, de los roles y responsabilidades de cada actor Definición clara de servicios y comunicación desde UI Elección de patrones de diseño acordes a la arquitectura, encontrando un balance en varios frentes (código fuente, seguridad e integridad de datos, infraestructura, entre otros) Nunca perder foco en la usabilidad Beneficio de esta propuesta: escalabilidad
  • 8. Performance “There’s no magic bullet” Consideraciones Mantener las librerías referenciadas actualizadas Realizar análisis de código para obtener métricas de rendimiento (Sonar, New Relic) Aplicar criterios y buenas prácticas de la comunidad. Mantenerse actualizado Entender el “big picture”: arquitectura propuesta, alcance del producto, navegadores
  • 9. Calidad de código Analizador estático de código Analizador colaborativo de código CrucibleJS Hint (JS Lint) Google Closure Tools Phabricator Review Board Gerrit El objetivo es la identificación de fallas mejoran la calidad de código y las skills del desarrollador Sonar
  • 10. RequireJS Dependency Injection / Service Locator “Loading, loading, loading” ● Como Module Loader, optimizado para uso web pero también apto para otros ambientes Javascript ● Resuelve la carga de otros módulos por dependencia (en el orden apropiado) e incluso el tiempo (before/after page load) ● Promueve modularización
  • 11. Bower Gestión de paquetes “a package manager for the web” ● Gestión de paquetes/libs desde repositorios externos ● Promueve uso up-to-date de dependencias ● Creado por Twitter
  • 12. $ grunt Running "jshint:gruntfile" (jshint) task >> 1 file lint free. Running "jshint:src" (jshint) task >> 1 file lint free. Running "jshint:test" (jshint) task >> 1 file lint free. Running "qunit:files" (qunit) task Testing test/tiny-pubsub.html....OK >> 4 assertions passed (23ms) Running "clean:files" (clean) task Cleaning "dist"...OK Running "concat:dist" (concat) task File "dist/ba-tiny-pubsub.js" created. Running "uglify:dist" (uglify) task File "dist/ba-tiny-pubsub.min.js" created. Uncompressed size: 389 bytes. Compressed size: 119 bytes gzipped (185 bytes minified). Done, without errors. Grunt Task Runners “let the automation era begin!” ● Habilidad para definir actividades repetitivas: minificación, automatización de tests, build, empaquetado ● Multitud de plugins con otros frameworks: handlebars, JSHint, less, sass, la lista crece día a día ● Esta herramienta es la más popular, pero se debe considerar otras como Cake, Gulp o Broccoli según la necesidad
  • 13. Simple Javascript example console.log('Loading a web page'); var page = require('webpage').create(); var url = 'http://www.phantomjs.org/'; page.open(url, function (status) { //Page is loaded! phantom.exit(); }); PhantomJS Automation “is not a test framework, it’s used to launch tests via a suitable test runner” ● Automatizar web stack basado en browser headless ● Permite captura de pantalla del resultado ● Permite manipulación del DOM ● Apoyo en monitoreo de performance ● Usado en workflow de pruebas en Bootstrap, jQuery Mobile, Less.js, Modernizr y YUI3 entre otros ● Usado por Twitter y LinkedIn
  • 14. QUnit Unit Testing “a Javascript Unit Testing framework” ● Facilidad de uso ● Variedad de métodos Asserts y el enfoque ha sido en parte inspiración a lo usado en CommonJS ● Por supuesto, puedes crear tus propios Asserts ● Usado por jQuery, jQuery Mobile y jQuery UI entre otros ● Creado originalmente como parte de jQuery
  • 15. Yeoman Web Generators “scaffolding web apps” ● Generar un template de aplicación en base a combinación de librerías ● Soporta testing, minification, documentación ● Crea y comparte prototipos o arquetipos
  • 17. NodeJS Platforms “one language” ● Proyección a desarrollos basados en sólo una tecnología: Javascript, tanto para backend como para frontend ● Isomorphic Javascript Aspectos relevantes
  • 18. Responsive Web Design (RWD) Consideraciones “continuous adaptation” ● Se ha visto un constante aumento del rango de dispositivos móviles, ya sea en capacidad, tamaño del display, versatilidad. Lo que implica nuevas opciones entre resoluciones ● Surgen nuevas líneas de dispositivos wearables como Apple Watch, Google Glass, Oculus Rift, entre otros ● Nuevos conceptos: Semantic UI
  • 19. Polymer Componentes reusables “thinking in building blocks” ● Crear componentes atómicos de fácil reutilización ● Permite desarrollo veloz ● Tiene una herramienta visual para la generación de prototipos ● Permite la creación de aplicaciones mobile-ready ● Apoyado por Google
  • 20. var Timer = React.createClass({ getInitialState: function() { return {secondsElapsed: 0}; }, tick: function() { this.setState({secondsElapsed: this.state.secondsElapsed + 1}); }, componentDidMount: function() { this.interval = setInterval(this.tick, 1000); }, componentWillUnmount: function() { clearInterval(this.interval); }, render: function() { return ( <div>Seconds Elapsed: {this.state.secondsElapsed}</div> ); } }); React.render(<Timer />, mountNode); ReactJS Componentes reusables “keep thinking in building blocks” ● Ayuda en la rápida creación de User Interfaces ● Crea componentes “limpios” y de facil reutilización ● Puede ser ejecutado server side apoyado en NodeJS ● A pesar de sus múltiples beneficios aún no convence a la comunidad ● Creado por Facebook
  • 21. Keeping Social Consideraciones “being... a connected being” ● Herramientas colaborativas ● Información en la nube
  • 22. BabelJS JS Transpiler “the next generation Javascript” ● También conocido como 6to5 (ECMAScript) ● Como transpiler permite traducir código de la especificación 6 a la actual versión de JS ● El código producido continúa siendo “readable” ● Se pueden customizar las transformaciones o incluso desactivarlas