SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
Desarrollo Web Ágil con Symfony,
Bootstrap y Angular
Bayron Guevara
Investigador Independiente
FLISOL 2014
Contenido
● Principios del Desarrollo Ágil
● Metodologías y componentes del Desarrollo Ágil
● Scrum y XP: Metodologías ágiles más difundidas
● Symfony como framework de desarrollo Server-Side
● Bootstrap: Framework para Front-end
● Angular: Framework Javascript
● Colocando todo junto
Principios del Desarrollo Ágil
El desarrollo ágil o agile development en inglés es un
conjunto de metodologías de desarrollo de software
orientadas a agilizar o acelerar su lanzamiento inicial y
mejoramiento continuo.
Se fundamenta en tres (3) principios:
1. Ciclo corto de desarrollo (generalmente de 2 a 4
semanas).
Opuesto al enfoque tradicional donde el lanzamiento del
software se prolonga hasta satisfacer la mayoría de los
requerimientos del cliente, el desarrollo ágil promueve
ciclos cortos e incrementales -llamados iteraciones- que
permiten validar tempranamente la funcionalidad.
Principios del Desarrollo Ágil
2. Equipos auto-organizados y comunicación cara a cara.
Tratan de evitar demasiados formalismos y enfatizan la
comunicación directa entre los miembros del equipo de
desarrollo y el cliente.
3. Adaptabilidad y respuesta rápida a los cambios.
Se evalúan los resultados en cada iteración y se
mantiene un canal de comunicación constante con el
cliente para validar requerimientos y responder
oportunamente a los cambios que puedan surgir.
Principios del Desarrollo Ágil
Metodologías y componentes del
Desarrollo Ágil
Se han desarrollado numerosas metodologías o
implementaciones prácticas del desarrollo ágil.
Siendo las más populares las siguientes:
1. Scrum. Es la metodología actualmente más
utilizada en el desarrollo web y define un equipo
de trabajo con 3 roles: ScrumMaster (facilitador
del proyecto), ProductOwner (representante del
cliente) y el Team (desarrolladores). Cada ciclo
se llama sprint durante el cual se desarrollan
mejoras potencialmente entregables o
utilizables.
Metodologías y componentes del
Desarrollo Ágil
2. Lean Software Development (LSD).
Inspirado en el modelo de producción LEAN, el
cual fue originado en la Toyota, se basa en los
siguientes principios:
● Eliminar los desperdicios
● Ampliar el aprendizaje
● Decidir lo más tarde posible
● Reaccionar tan rápido como sea posible
● Potenciar el equipo
● Véase todo el conjunto
Metodologías y componentes del
Desarrollo Ágil
3. Programación Extrema (XP). Considera el
cambio de requerimientos como un aspecto
natural del desarrollo de software, además de
dar mayor importancia a las relaciones
interpersonales del equipo de trabajo.
Scrum y XP: Metodologías ágiles
más difundidas
Comprende varias reuniones que van desde obtener retro-
alimentación hasta definir los requerimientos.
● Scrum diario o stand-up meeting.
● Reunion de planificacion del Sprint
● Reunion de revision del Sprint
● Retrospectiva del Sprint
El Scrum mantiene una serie de documentos que le
permiten conocer el estado actual y futuro del proyecto:
Product Backlog, Sprint Backlog, Burn down Chart.
Scrum
Scrum y XP: Metodologías ágiles
más difundidas
Scrum y XP: Metodologías ágiles
más difundidas
Sus características fundamentales son:
● Entregas pequeñas
● Historias de usuario para documentar requerimientos
● El Cliente debe estar presente continuamente.
● Diseño simple para facilitar su comprensión por el equipo
● Pruebas unitarias continuas. Por ejemplo, el Desarrollo
Guiado por Pruebas (TDD)
● Refactorización del código (Refactoring).
● Programación en Parejas
● Propiedad compartida del código
Programación Extrema (XP)
Symfony como framework de
desarrollo Server-Side
Symfony es un framework para el desarrollo de
aplicaciones web en PHP. Con framework me refiero a
un conjunto de herramientas y a una metodología de
desarrollo. Alrededor de Symfony existe una
comunidad y una filosofía basada en el software libre
y de código abierto.
Symfony esta inspirado en otro framework llamado
Ruby on Rails que comparte el mismo patrón de
diseño de apps llamado Modelo-Vista-Controlador.
Symfony como framework de
desarrollo Server-Side
Los requests (solicitudes web) siguen el siguiente
flujo a través de Symfony.
Symfony como framework de
desarrollo Server-Side
Symfony posee una arquitectura orientada a
componentes llamados Bundles. Cada bundle puede
hacer uso de los servicios expuestos por otros
bundles a través de un mecanismo llamado Inyección
de Dependencias.
Arquitectura
Esta flexibilidad permite desarrollar
componentes con mayor facilidad.
Prueba de ello son los miles de
componentes de terceros que se pueden
encontrar en el repositorio KnpBundles
(http://knpbundles.com).
Symfony como framework de
desarrollo Server-Side
Symfony utiliza un administrador de dependencias para
aplicaciones PHP llamado Composer, el cual es similar
a YUM o APT para Linux, o a Bundler para Ruby.
"require": {
"monolog/monolog": "1.2.*"
}
Se le considera el sucesor de Pear ya que es
más completo y sencillo de utilizar. Por ejemplo
para indicar que la librería monolog es una
dependencia de nuestro proyecto, basta con
usar el siguiente código:
Symfony como framework de
desarrollo Server-Side
El patrón de diseño MVC es muy práctico en las
aplicaciones web, ya que permite dividirlas en tres
componentes: Modelo de datos, Vista del contenido
y Controlador de la lógica de la aplicación.
Twig como motor
de plantillas
Doctrine o Propel
para modelar la
base de datos
Symfony como framework de
desarrollo Server-Side
Una de las características más útiles que poseen
los frameworks modernos, y que es parte de la
filosofía RAD, es la capacidad de generar código
fuente y prototipos funcionales de manera
automática a partir de simples comandos.
Symfony posee generadores para crear Bundles,
Controladores CRUD (Create-Read-Update-
Delete) a partir de modelos de datos, crear
entidades de datos a partir de una BD, etc.
Generadores (Scaffolding)
Bootstrap: Framework para
Front-end
Es un framework para el desarrollo de interfaces de
usuario de aplicaciones web (front-end). Podemos
usarlo tanto por medio de CSS puro o mediante
extensiones del lenguaje como Less o Sass.
Esta fundamentado sobre la tendencia actual en web
respecto a diseñar primero para las pantallas móviles
(mobile-first) y en crear diseños responsivos
(responsive-design); de manera que nos permite
desarrollar aplicaciones web que luzcan y funcionen
bien tanto en móviles como en computadoras de
escritorio o laptops.
Bootstrap: Framework para
Front-end
Consta de los siguientes componentes prefabricados
que nos permitirán embellecer automáticamente
nuestros elementos web:
Componentes Principales
● Menú desplegable
● Grupos de botones
● Input Groups
● Barras de Navegación
Bootstrap: Framework para
Front-end
Componentes Principales
● Alertas
● Badges
● Jumbotron
● Paginación
Bootstrap: Framework para
Front-end
Componentes Principales
● Barras de progreso
● Listas
● Paneles
● Tablas
Bootstrap: Framework para
Front-end
Sistema de Grillas (Grid System)
Bootstrap se basa en un sistema de cuadricula de 12
columnas para crear el layout de una página web. Usa
la técnica de CSS conocida como media queries para
ajustar automáticamente el ancho de cada columna de
acuerdo al tamaño/resolución de la pantalla.
Además dispone de una serie de clases que nos
permiten especificar si un conjunto de grids (celdas)
continuas se mostrarán horizontalmente o por el
contrario se apilaran unas debajo de otras.
Bootstrap: Framework para
Front-end
Sistema de Grillas (Grid System)
Comportamiento del sistema de grillas a diferentes resoluciones y clases CSS
Bootstrap: Framework para
Front-end
Organización de la grilla en pantallas mayores a 992px (md: medium devices)
La misma grillla se apila automáticamente en resoluciones de pantalla pequeñas
(menores a 992px, ej: iPhone, Windows Phone)
AngularJS: Framework Javascript
Angular es un framework javascript para el
desarrollo de aplicaciones web dinámicas
mediante una arquitectura MVW (Model-View-
Whatever). A diferencia de otros, Angular extiende
el lenguaje HTML introduciendo etiquetas que
permiten controlar el comportamiento y agregar
dinamismo a una página web.
Fue desarrollado inicialmente por Google y esta
bajo la licencia MIT, que es una licencia permisiva
de software libre.
AngularJS: Framework Javascript
Veamos un sencillo ejemplo práctico en Angular
usando el clásico Hello World!, donde lo que
escribimos en el campo de texto se refleja
inmediatamente en el encabezado de abajo.
AngularJS: Framework Javascript
Este ejemplo consta básicamente de cuatro pasos:
1. Activar Angular dentro de una porción de
nuestra página: directiva ng-app
2. Incluir el código fuente de la librería:
angular.min.js
3. Declarar un modelo de datos y enlazarlo a un
formulario: directiva ng-model
4. Utilizar una referencia al modelo declarado
previamente: sintaxis {{modelName}}
AngularJS: Framework Javascript
● Data Binding. Permite actualizar la vista
automáticamente cuando el modelo cambia y
viceversa.
● Controlador. Permite definir acciones al interactuar
con los elementos del DOM (click, enviar un form).
● Deep Linking. Una forma de generar links (URIs)
que llevan a una ubicación especifica de la app.
● Validación de formularios. Podemos definir
validación client-side de formularios de manera
automática y declarativa.
Características principales
AngularJs: Framework Javascript
● Comunicación con el servidor. Posee servicios pre-
fabricados de comunicación basados en AJAX,
facilitando la integración con sistemas de terceros.
● Componentes reutilizables. Similar a los componentes
de Bootstrap pero usando nuevos tags o directivas
HTML.
● Exportable. Permite integrarlo fácilmente a otras
tecnologías.
● Inyectable. Las dependencias se definen de forma
declarativa y cualquier componente se puede
reemplazar por uno propio.
Características principales
Colocando todo junto
Hemos visto a grandes rasgos algunas de las
metodologías y tecnologías más populares para
el desarrollo web. Ahora vamos a aplicarlo todo
junto en un solo ejemplo.
Aunque por defecto Bootstrap emplea jQuery
como framework javascript para lograr la
interactividad de sus componentes,
alternativamente existen ports del mismo
implementados en otros frameworks. Para
AngularJS se encuentran: UI Bootstrap y Mobile
Angular UI.
Colocando todo junto
Por otra parte gracias a estas tecnologías de frontend,
ahora el desarrollo de backends -Symfony en nuestro
caso- se centra en proveer al frontend de los datos en
bruto para generar y almacenar dinámicamente el
contenido del sitio. Esto usualmente significa
desarrollar un webservice bajo los principios de la
arquitectura REST y usando JSON o XML como
formato de datos.
La ventaja de este enfoque es que el
mismo servicio de datos se puede
reutilizar en otras plataformas como son
apps móviles nativas, Smart TVs, etc. Emblema de
JSON
Colocando todo junto
Es un framework para el desarrollo web móvil
basado en Bootstrap y Angular. Se integra como
un módulo y adicionalmente provee funciones
para el reconocimiento de gestos propios de
pantallas táctiles entre los que se encuentran:
tap, fast-click, swipe, etc.
Podemos ver una demo en acción a través del
siguiente enlace:
http://mobileangularui.com/demo
Mobile Angular UI
Gracias por su atención.
Desarrollo Web Ágil con Symfony,
Bootstrap y Angular

Mais conteúdo relacionado

Mais procurados

Desarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfonyDesarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfonyJuan Eladio Sánchez Rosas
 
Desymfony 2011 - Introducción a Symfony2
Desymfony 2011 - Introducción a Symfony2Desymfony 2011 - Introducción a Symfony2
Desymfony 2011 - Introducción a Symfony2Javier Eguiluz
 
Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Raul Fraile
 
Mi primer programa en Symfony2
Mi primer programa en Symfony2Mi primer programa en Symfony2
Mi primer programa en Symfony2César Hernández
 
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasosDesymfony 2011 - Tutorial #1: Instalacion y primeros pasos
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasosJavier Eguiluz
 
Tutorial de cakePHP itst
Tutorial de cakePHP itstTutorial de cakePHP itst
Tutorial de cakePHP itstomicx
 
Introducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebIntroducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebFacundo E. Goñi Perez
 
Presentación de zan php
Presentación de zan phpPresentación de zan php
Presentación de zan phpCarlos Zantana
 
Taller introduccion symfony2
Taller introduccion symfony2Taller introduccion symfony2
Taller introduccion symfony2Mario IC
 
7 Gemas de Ruby on Rails que podrían salvarte el dia
7 Gemas de Ruby on Rails que podrían salvarte el dia7 Gemas de Ruby on Rails que podrían salvarte el dia
7 Gemas de Ruby on Rails que podrían salvarte el diaFrancisco Aranda
 
Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5Raul Fraile
 
Introducción al framework Symfony
Introducción al framework SymfonyIntroducción al framework Symfony
Introducción al framework SymfonyAlejandro Hernández
 
API REST conceptos (Rails-api)
API REST conceptos (Rails-api)API REST conceptos (Rails-api)
API REST conceptos (Rails-api)Daryl Moreno
 
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...JaenFrankcezco
 

Mais procurados (20)

Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Desarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfonyDesarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfony
 
Desymfony 2011 - Introducción a Symfony2
Desymfony 2011 - Introducción a Symfony2Desymfony 2011 - Introducción a Symfony2
Desymfony 2011 - Introducción a Symfony2
 
Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Symfony2: Framework para PHP5
Symfony2: Framework para PHP5
 
9.laravel
9.laravel9.laravel
9.laravel
 
Curso Php
Curso PhpCurso Php
Curso Php
 
Mi primer programa en Symfony2
Mi primer programa en Symfony2Mi primer programa en Symfony2
Mi primer programa en Symfony2
 
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasosDesymfony 2011 - Tutorial #1: Instalacion y primeros pasos
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos
 
Tutorial de cakePHP itst
Tutorial de cakePHP itstTutorial de cakePHP itst
Tutorial de cakePHP itst
 
Introducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebIntroducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos Web
 
Presentación de zan php
Presentación de zan phpPresentación de zan php
Presentación de zan php
 
Taller introduccion symfony2
Taller introduccion symfony2Taller introduccion symfony2
Taller introduccion symfony2
 
Primefaces
PrimefacesPrimefaces
Primefaces
 
7 Gemas de Ruby on Rails que podrían salvarte el dia
7 Gemas de Ruby on Rails que podrían salvarte el dia7 Gemas de Ruby on Rails que podrían salvarte el dia
7 Gemas de Ruby on Rails que podrían salvarte el dia
 
Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5
 
Desymfony 2011 - Twig
Desymfony 2011 - TwigDesymfony 2011 - Twig
Desymfony 2011 - Twig
 
Introducción al framework Symfony
Introducción al framework SymfonyIntroducción al framework Symfony
Introducción al framework Symfony
 
API REST conceptos (Rails-api)
API REST conceptos (Rails-api)API REST conceptos (Rails-api)
API REST conceptos (Rails-api)
 
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
 
Facelets
FaceletsFacelets
Facelets
 

Destaque

Building Single Page Application (SPA) with Symfony2 and AngularJS
Building Single Page Application (SPA) with Symfony2 and AngularJSBuilding Single Page Application (SPA) with Symfony2 and AngularJS
Building Single Page Application (SPA) with Symfony2 and AngularJSAntonio Peric-Mazar
 
Game of Frameworks - GDG Cáceres #CodeCC
Game of Frameworks - GDG Cáceres #CodeCCGame of Frameworks - GDG Cáceres #CodeCC
Game of Frameworks - GDG Cáceres #CodeCCCarlos Azaustre
 
Metodologia agil para el diseño de aplicaciones multimedias moviles
Metodologia agil para el diseño de aplicaciones multimedias movilesMetodologia agil para el diseño de aplicaciones multimedias moviles
Metodologia agil para el diseño de aplicaciones multimedias movilescristopherf
 
E front diapositivas
E front diapositivasE front diapositivas
E front diapositivasEdnna Ciceri
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacionEdwin
 
Raspberry Pi Planet Linux Caffe
Raspberry Pi Planet Linux CaffeRaspberry Pi Planet Linux Caffe
Raspberry Pi Planet Linux CaffePlanet Linux Caffe
 
Symfony + AngularJS | Mladen Plavsic @DaFED26
Symfony + AngularJS | Mladen Plavsic @DaFED26Symfony + AngularJS | Mladen Plavsic @DaFED26
Symfony + AngularJS | Mladen Plavsic @DaFED26Mladen Plavšić
 
Servlets exposicion
Servlets exposicionServlets exposicion
Servlets exposicionFlashnet S.A
 
Charla introducción a RaspberryPI
Charla introducción a RaspberryPICharla introducción a RaspberryPI
Charla introducción a RaspberryPIJuan Rodríguez
 
Taller de raspberry PI
Taller de raspberry PITaller de raspberry PI
Taller de raspberry PIAlex Casanova
 
Raspberry Pi 2: Instalación y configuración
Raspberry Pi 2: Instalación y configuraciónRaspberry Pi 2: Instalación y configuración
Raspberry Pi 2: Instalación y configuraciónVíctor R. Ruiz
 
Monta tu Centro Multimedia con Raspberry Pi
Monta tu Centro Multimedia con Raspberry PiMonta tu Centro Multimedia con Raspberry Pi
Monta tu Centro Multimedia con Raspberry PiAlvaro García Loaisa
 

Destaque (20)

Symfony2 and AngularJS
Symfony2 and AngularJSSymfony2 and AngularJS
Symfony2 and AngularJS
 
Building Single Page Application (SPA) with Symfony2 and AngularJS
Building Single Page Application (SPA) with Symfony2 and AngularJSBuilding Single Page Application (SPA) with Symfony2 and AngularJS
Building Single Page Application (SPA) with Symfony2 and AngularJS
 
Game of Frameworks - GDG Cáceres #CodeCC
Game of Frameworks - GDG Cáceres #CodeCCGame of Frameworks - GDG Cáceres #CodeCC
Game of Frameworks - GDG Cáceres #CodeCC
 
Aplicaciones Web con Drupal
Aplicaciones Web con DrupalAplicaciones Web con Drupal
Aplicaciones Web con Drupal
 
Symfony and Angularjs
Symfony and AngularjsSymfony and Angularjs
Symfony and Angularjs
 
Metodologia agil para el diseño de aplicaciones multimedias moviles
Metodologia agil para el diseño de aplicaciones multimedias movilesMetodologia agil para el diseño de aplicaciones multimedias moviles
Metodologia agil para el diseño de aplicaciones multimedias moviles
 
REST - deSymfony2012
REST - deSymfony2012REST - deSymfony2012
REST - deSymfony2012
 
E front diapositivas
E front diapositivasE front diapositivas
E front diapositivas
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Raspberry Pi Planet Linux Caffe
Raspberry Pi Planet Linux CaffeRaspberry Pi Planet Linux Caffe
Raspberry Pi Planet Linux Caffe
 
Symfony + AngularJS | Mladen Plavsic @DaFED26
Symfony + AngularJS | Mladen Plavsic @DaFED26Symfony + AngularJS | Mladen Plavsic @DaFED26
Symfony + AngularJS | Mladen Plavsic @DaFED26
 
Servlets exposicion
Servlets exposicionServlets exposicion
Servlets exposicion
 
Raspberry Pi + Arduino
Raspberry Pi + ArduinoRaspberry Pi + Arduino
Raspberry Pi + Arduino
 
Servlet
ServletServlet
Servlet
 
Charla introducción a RaspberryPI
Charla introducción a RaspberryPICharla introducción a RaspberryPI
Charla introducción a RaspberryPI
 
Taller de raspberry PI
Taller de raspberry PITaller de raspberry PI
Taller de raspberry PI
 
Bootstrap
BootstrapBootstrap
Bootstrap
 
Raspberry Pi
Raspberry PiRaspberry Pi
Raspberry Pi
 
Raspberry Pi 2: Instalación y configuración
Raspberry Pi 2: Instalación y configuraciónRaspberry Pi 2: Instalación y configuración
Raspberry Pi 2: Instalación y configuración
 
Monta tu Centro Multimedia con Raspberry Pi
Monta tu Centro Multimedia con Raspberry PiMonta tu Centro Multimedia con Raspberry Pi
Monta tu Centro Multimedia con Raspberry Pi
 

Semelhante a Desarrollo Web Ágil con Symfony, Bootstrap y Angular

Instalacion adobe dream weaver
Instalacion adobe dream weaverInstalacion adobe dream weaver
Instalacion adobe dream weaverLuis Viteri
 
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
 
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...Ianpierr Miranda
 
Catalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones WebCatalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones WebEsteban Saavedra
 
9 tecnologías v1.1
9 tecnologías v1.19 tecnologías v1.1
9 tecnologías v1.1UTN
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyJorge Antonio Linares Vera
 
Framework para desarrollo de apps móviles
Framework para desarrollo de apps móvilesFramework para desarrollo de apps móviles
Framework para desarrollo de apps móvilesIván Campaña Naranjo
 
Articulo diseño e implementacion de generador de protocolos
Articulo diseño e implementacion de generador de protocolosArticulo diseño e implementacion de generador de protocolos
Articulo diseño e implementacion de generador de protocolosSaul Sanchez Cuevas
 
FMK Capa de Presentacion
FMK Capa de PresentacionFMK Capa de Presentacion
FMK Capa de Presentacionkaolong
 
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...Héctor Curbelo Barrios
 

Semelhante a Desarrollo Web Ágil con Symfony, Bootstrap y Angular (20)

Symfony
SymfonySymfony
Symfony
 
Framework
FrameworkFramework
Framework
 
Instalacion adobe dream weaver
Instalacion adobe dream weaverInstalacion adobe dream weaver
Instalacion adobe dream weaver
 
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
 
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
 
Framework
FrameworkFramework
Framework
 
Framework
FrameworkFramework
Framework
 
Catalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones WebCatalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones Web
 
9 tecnologías v1.1
9 tecnologías v1.19 tecnologías v1.1
9 tecnologías v1.1
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademy
 
CodeIgniter
CodeIgniterCodeIgniter
CodeIgniter
 
Integrando AngularJS y drupal
Integrando AngularJS y drupalIntegrando AngularJS y drupal
Integrando AngularJS y drupal
 
Framework para desarrollo de apps móviles
Framework para desarrollo de apps móvilesFramework para desarrollo de apps móviles
Framework para desarrollo de apps móviles
 
Articulo diseño e implementacion de generador de protocolos
Articulo diseño e implementacion de generador de protocolosArticulo diseño e implementacion de generador de protocolos
Articulo diseño e implementacion de generador de protocolos
 
5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web
 
FMK Capa de Presentacion
FMK Capa de PresentacionFMK Capa de Presentacion
FMK Capa de Presentacion
 
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
 
Framework
FrameworkFramework
Framework
 
Conociendo Nuestro Fua interno
Conociendo Nuestro Fua internoConociendo Nuestro Fua interno
Conociendo Nuestro Fua interno
 
5-Unidad 2: Diseños de Vista-2.2 Para Web
5-Unidad 2: Diseños de Vista-2.2 Para Web5-Unidad 2: Diseños de Vista-2.2 Para Web
5-Unidad 2: Diseños de Vista-2.2 Para Web
 

Desarrollo Web Ágil con Symfony, Bootstrap y Angular

  • 1. Desarrollo Web Ágil con Symfony, Bootstrap y Angular Bayron Guevara Investigador Independiente FLISOL 2014
  • 2. Contenido ● Principios del Desarrollo Ágil ● Metodologías y componentes del Desarrollo Ágil ● Scrum y XP: Metodologías ágiles más difundidas ● Symfony como framework de desarrollo Server-Side ● Bootstrap: Framework para Front-end ● Angular: Framework Javascript ● Colocando todo junto
  • 3. Principios del Desarrollo Ágil El desarrollo ágil o agile development en inglés es un conjunto de metodologías de desarrollo de software orientadas a agilizar o acelerar su lanzamiento inicial y mejoramiento continuo. Se fundamenta en tres (3) principios: 1. Ciclo corto de desarrollo (generalmente de 2 a 4 semanas). Opuesto al enfoque tradicional donde el lanzamiento del software se prolonga hasta satisfacer la mayoría de los requerimientos del cliente, el desarrollo ágil promueve ciclos cortos e incrementales -llamados iteraciones- que permiten validar tempranamente la funcionalidad.
  • 4. Principios del Desarrollo Ágil 2. Equipos auto-organizados y comunicación cara a cara. Tratan de evitar demasiados formalismos y enfatizan la comunicación directa entre los miembros del equipo de desarrollo y el cliente. 3. Adaptabilidad y respuesta rápida a los cambios. Se evalúan los resultados en cada iteración y se mantiene un canal de comunicación constante con el cliente para validar requerimientos y responder oportunamente a los cambios que puedan surgir.
  • 6. Metodologías y componentes del Desarrollo Ágil Se han desarrollado numerosas metodologías o implementaciones prácticas del desarrollo ágil. Siendo las más populares las siguientes: 1. Scrum. Es la metodología actualmente más utilizada en el desarrollo web y define un equipo de trabajo con 3 roles: ScrumMaster (facilitador del proyecto), ProductOwner (representante del cliente) y el Team (desarrolladores). Cada ciclo se llama sprint durante el cual se desarrollan mejoras potencialmente entregables o utilizables.
  • 7. Metodologías y componentes del Desarrollo Ágil 2. Lean Software Development (LSD). Inspirado en el modelo de producción LEAN, el cual fue originado en la Toyota, se basa en los siguientes principios: ● Eliminar los desperdicios ● Ampliar el aprendizaje ● Decidir lo más tarde posible ● Reaccionar tan rápido como sea posible ● Potenciar el equipo ● Véase todo el conjunto
  • 8. Metodologías y componentes del Desarrollo Ágil 3. Programación Extrema (XP). Considera el cambio de requerimientos como un aspecto natural del desarrollo de software, además de dar mayor importancia a las relaciones interpersonales del equipo de trabajo.
  • 9. Scrum y XP: Metodologías ágiles más difundidas Comprende varias reuniones que van desde obtener retro- alimentación hasta definir los requerimientos. ● Scrum diario o stand-up meeting. ● Reunion de planificacion del Sprint ● Reunion de revision del Sprint ● Retrospectiva del Sprint El Scrum mantiene una serie de documentos que le permiten conocer el estado actual y futuro del proyecto: Product Backlog, Sprint Backlog, Burn down Chart. Scrum
  • 10. Scrum y XP: Metodologías ágiles más difundidas
  • 11. Scrum y XP: Metodologías ágiles más difundidas Sus características fundamentales son: ● Entregas pequeñas ● Historias de usuario para documentar requerimientos ● El Cliente debe estar presente continuamente. ● Diseño simple para facilitar su comprensión por el equipo ● Pruebas unitarias continuas. Por ejemplo, el Desarrollo Guiado por Pruebas (TDD) ● Refactorización del código (Refactoring). ● Programación en Parejas ● Propiedad compartida del código Programación Extrema (XP)
  • 12. Symfony como framework de desarrollo Server-Side Symfony es un framework para el desarrollo de aplicaciones web en PHP. Con framework me refiero a un conjunto de herramientas y a una metodología de desarrollo. Alrededor de Symfony existe una comunidad y una filosofía basada en el software libre y de código abierto. Symfony esta inspirado en otro framework llamado Ruby on Rails que comparte el mismo patrón de diseño de apps llamado Modelo-Vista-Controlador.
  • 13. Symfony como framework de desarrollo Server-Side Los requests (solicitudes web) siguen el siguiente flujo a través de Symfony.
  • 14. Symfony como framework de desarrollo Server-Side Symfony posee una arquitectura orientada a componentes llamados Bundles. Cada bundle puede hacer uso de los servicios expuestos por otros bundles a través de un mecanismo llamado Inyección de Dependencias. Arquitectura Esta flexibilidad permite desarrollar componentes con mayor facilidad. Prueba de ello son los miles de componentes de terceros que se pueden encontrar en el repositorio KnpBundles (http://knpbundles.com).
  • 15. Symfony como framework de desarrollo Server-Side Symfony utiliza un administrador de dependencias para aplicaciones PHP llamado Composer, el cual es similar a YUM o APT para Linux, o a Bundler para Ruby. "require": { "monolog/monolog": "1.2.*" } Se le considera el sucesor de Pear ya que es más completo y sencillo de utilizar. Por ejemplo para indicar que la librería monolog es una dependencia de nuestro proyecto, basta con usar el siguiente código:
  • 16. Symfony como framework de desarrollo Server-Side El patrón de diseño MVC es muy práctico en las aplicaciones web, ya que permite dividirlas en tres componentes: Modelo de datos, Vista del contenido y Controlador de la lógica de la aplicación. Twig como motor de plantillas Doctrine o Propel para modelar la base de datos
  • 17. Symfony como framework de desarrollo Server-Side Una de las características más útiles que poseen los frameworks modernos, y que es parte de la filosofía RAD, es la capacidad de generar código fuente y prototipos funcionales de manera automática a partir de simples comandos. Symfony posee generadores para crear Bundles, Controladores CRUD (Create-Read-Update- Delete) a partir de modelos de datos, crear entidades de datos a partir de una BD, etc. Generadores (Scaffolding)
  • 18. Bootstrap: Framework para Front-end Es un framework para el desarrollo de interfaces de usuario de aplicaciones web (front-end). Podemos usarlo tanto por medio de CSS puro o mediante extensiones del lenguaje como Less o Sass. Esta fundamentado sobre la tendencia actual en web respecto a diseñar primero para las pantallas móviles (mobile-first) y en crear diseños responsivos (responsive-design); de manera que nos permite desarrollar aplicaciones web que luzcan y funcionen bien tanto en móviles como en computadoras de escritorio o laptops.
  • 19. Bootstrap: Framework para Front-end Consta de los siguientes componentes prefabricados que nos permitirán embellecer automáticamente nuestros elementos web: Componentes Principales ● Menú desplegable ● Grupos de botones ● Input Groups ● Barras de Navegación
  • 20. Bootstrap: Framework para Front-end Componentes Principales ● Alertas ● Badges ● Jumbotron ● Paginación
  • 21. Bootstrap: Framework para Front-end Componentes Principales ● Barras de progreso ● Listas ● Paneles ● Tablas
  • 22. Bootstrap: Framework para Front-end Sistema de Grillas (Grid System) Bootstrap se basa en un sistema de cuadricula de 12 columnas para crear el layout de una página web. Usa la técnica de CSS conocida como media queries para ajustar automáticamente el ancho de cada columna de acuerdo al tamaño/resolución de la pantalla. Además dispone de una serie de clases que nos permiten especificar si un conjunto de grids (celdas) continuas se mostrarán horizontalmente o por el contrario se apilaran unas debajo de otras.
  • 23. Bootstrap: Framework para Front-end Sistema de Grillas (Grid System) Comportamiento del sistema de grillas a diferentes resoluciones y clases CSS
  • 24. Bootstrap: Framework para Front-end Organización de la grilla en pantallas mayores a 992px (md: medium devices) La misma grillla se apila automáticamente en resoluciones de pantalla pequeñas (menores a 992px, ej: iPhone, Windows Phone)
  • 25. AngularJS: Framework Javascript Angular es un framework javascript para el desarrollo de aplicaciones web dinámicas mediante una arquitectura MVW (Model-View- Whatever). A diferencia de otros, Angular extiende el lenguaje HTML introduciendo etiquetas que permiten controlar el comportamiento y agregar dinamismo a una página web. Fue desarrollado inicialmente por Google y esta bajo la licencia MIT, que es una licencia permisiva de software libre.
  • 26. AngularJS: Framework Javascript Veamos un sencillo ejemplo práctico en Angular usando el clásico Hello World!, donde lo que escribimos en el campo de texto se refleja inmediatamente en el encabezado de abajo.
  • 27. AngularJS: Framework Javascript Este ejemplo consta básicamente de cuatro pasos: 1. Activar Angular dentro de una porción de nuestra página: directiva ng-app 2. Incluir el código fuente de la librería: angular.min.js 3. Declarar un modelo de datos y enlazarlo a un formulario: directiva ng-model 4. Utilizar una referencia al modelo declarado previamente: sintaxis {{modelName}}
  • 28. AngularJS: Framework Javascript ● Data Binding. Permite actualizar la vista automáticamente cuando el modelo cambia y viceversa. ● Controlador. Permite definir acciones al interactuar con los elementos del DOM (click, enviar un form). ● Deep Linking. Una forma de generar links (URIs) que llevan a una ubicación especifica de la app. ● Validación de formularios. Podemos definir validación client-side de formularios de manera automática y declarativa. Características principales
  • 29. AngularJs: Framework Javascript ● Comunicación con el servidor. Posee servicios pre- fabricados de comunicación basados en AJAX, facilitando la integración con sistemas de terceros. ● Componentes reutilizables. Similar a los componentes de Bootstrap pero usando nuevos tags o directivas HTML. ● Exportable. Permite integrarlo fácilmente a otras tecnologías. ● Inyectable. Las dependencias se definen de forma declarativa y cualquier componente se puede reemplazar por uno propio. Características principales
  • 30. Colocando todo junto Hemos visto a grandes rasgos algunas de las metodologías y tecnologías más populares para el desarrollo web. Ahora vamos a aplicarlo todo junto en un solo ejemplo. Aunque por defecto Bootstrap emplea jQuery como framework javascript para lograr la interactividad de sus componentes, alternativamente existen ports del mismo implementados en otros frameworks. Para AngularJS se encuentran: UI Bootstrap y Mobile Angular UI.
  • 31. Colocando todo junto Por otra parte gracias a estas tecnologías de frontend, ahora el desarrollo de backends -Symfony en nuestro caso- se centra en proveer al frontend de los datos en bruto para generar y almacenar dinámicamente el contenido del sitio. Esto usualmente significa desarrollar un webservice bajo los principios de la arquitectura REST y usando JSON o XML como formato de datos. La ventaja de este enfoque es que el mismo servicio de datos se puede reutilizar en otras plataformas como son apps móviles nativas, Smart TVs, etc. Emblema de JSON
  • 32. Colocando todo junto Es un framework para el desarrollo web móvil basado en Bootstrap y Angular. Se integra como un módulo y adicionalmente provee funciones para el reconocimiento de gestos propios de pantallas táctiles entre los que se encuentran: tap, fast-click, swipe, etc. Podemos ver una demo en acción a través del siguiente enlace: http://mobileangularui.com/demo Mobile Angular UI
  • 33. Gracias por su atención. Desarrollo Web Ágil con Symfony, Bootstrap y Angular