Desarrollo Agil de Aplicaciones Web

23
Desarrollo ágil de aplicaciones web Perl, Python y Ruby .. Christian Sánchez, Mayo 2010 CNSL Maracay

description

Una pequeña introducción al patrón de desarrollo MVC y su aplicación usando frameworks en Perl, Python y Ruby

Transcript of Desarrollo Agil de Aplicaciones Web

Page 1: Desarrollo Agil de Aplicaciones Web

Desarrollo ágil de aplicaciones web

Perl, Python y Ruby ..

Christian Sánchez, Mayo 2010             CNSL Maracay

Page 2: Desarrollo Agil de Aplicaciones Web

La Web está cambiando constantemente

• La tendencia es usar aplicaciones en la "nube"

• Es más fácil y más rápido hacer que una aplicación funcione en el navegador, sin las complicaciones del modelo cliente - servidor

Desarrollo ágil de aplicaciones web

Page 3: Desarrollo Agil de Aplicaciones Web

Es por eso que necesitamos un framework

¿Y qué es un framework?

Desarrollo ágil de aplicaciones web

Page 4: Desarrollo Agil de Aplicaciones Web

Framework

• Es una estructura de soporte definida en la cual otro proyecto de software puede ser organizado y desarrollado.

• Es una estructura software compuesta de componentes personalizables e intercambiables para el desarrollo de una aplicación.

• En otras palabras, es una aplicación genérica incompleta y configurable a la que podemos añadirle las últimas piezas para construir una aplicación concreta.

Desarrollo ágil de aplicaciones web - Framework 

Page 5: Desarrollo Agil de Aplicaciones Web

¿Y para qué sirve un framework?

• Desarrollo rápido y estructurado• Mejor reutilización del código• Aprovechamos las herramientas prediseñadas (No

reinventar la rueda)• Nos enfocamos en lo que necesitamos que haga la

aplicación y no en como lo va a hacer

Minimizar el esfuerzo en el desarrollo

Desarrollo ágil de aplicaciones web - Framework 

Page 6: Desarrollo Agil de Aplicaciones Web

¡No más código Spaghetti!

Page 7: Desarrollo Agil de Aplicaciones Web

El framework necesita un patrón de diseño ..

Y en este caso uno que funcione bien en aplicaciones web:

Desarrollo ágil de aplicaciones web - Framework 

Page 8: Desarrollo Agil de Aplicaciones Web

MVCModelo, Vista y Controlador

Desarrollo ágil de aplicaciones web - MVC 

Page 9: Desarrollo Agil de Aplicaciones Web

¿Y qué es MVC?

Es el patrón de diseño de Software que divide el desarrollo de un

proyecto en 3 capas:

Desarrollo ágil de aplicaciones web - MVC 

Page 10: Desarrollo Agil de Aplicaciones Web

ModeloSe refiere a la parte que modela y contiene la lógica del dominio de la

aplicación, por lo general la parte de la Base de Datos ..

Desarrollo ágil de aplicaciones web - MVC 

Page 11: Desarrollo Agil de Aplicaciones Web

VistaSe refiere a la parte que contiene y provee la lógica de presentación ..

Desarrollo ágil de aplicaciones web - MVC 

Page 12: Desarrollo Agil de Aplicaciones Web

ControladorSe refiere a la parte que funciona como

engranaje entre el modelo y la vista, además de contener la lógica del

negocio ..

Desarrollo ágil de aplicaciones web - MVC 

Page 13: Desarrollo Agil de Aplicaciones Web

¿Y que framework puedo usar?

Existen muchas opciones, dependiendo del lenguaje de

programación:

Desarrollo ágil de aplicaciones web - MVC 

Page 14: Desarrollo Agil de Aplicaciones Web

Perl

Catalyst, el Framework Elegante

Desarrollo ágil de aplicaciones web - Perl 

Page 15: Desarrollo Agil de Aplicaciones Web

Catalyst

• Todos los componentes están en CPAN o por lo general empaquetados para tu distribución de Linux.

• Sigue las "filosofías" de desarrolo: DRY (Don't Repeat Yourself), KISS (Keep It Simple, Stupid).

• Se pueden usar distintas herramientas para cada capa:

o Modelo: DBIx::Class, Class::DBI ..

o Vista: Template::Toolkit, HTML::Template, Mason ..

• El Controlador en este caso se arma usando Perl y la estructura que ofrece Catalyst.

Desarrollo ágil de aplicaciones web - Catalyst

Page 16: Desarrollo Agil de Aplicaciones Web

Catalyst

La instalación es sencilla:

aptitude install libcatalyst-perl libcatalyst-modules-perl libcatalyst-devel-perl

Luego, crear una aplicación nueva:

catalyst.pl MiAplicacion

Desarrollo ágil de aplicaciones web - Catalyst

Page 17: Desarrollo Agil de Aplicaciones Web

Python

Django, el entorno de desarrollo web para perfeccionistas con

agendas apretadas

Desarrollo ágil de aplicaciones web - Django

Page 18: Desarrollo Agil de Aplicaciones Web

Django

• Una API de base de datos robusta.

• Un sistema incorporado de "vistas genéricas" que ahorra tener que escribir la lógica de ciertas tareas comunes.

• Un sistema extensible de plantillas basado en etiquetas, con herencia de plantillas.

• Un despachador de URLs basado en expresiones regulares.

Desarrollo ágil de aplicaciones web - Django

Page 19: Desarrollo Agil de Aplicaciones Web

Django

Para instalarlo:

aptitude install python-django

Luego, crear una aplicación nueva:

django-admin startproject miaplicacion

Desarrollo ágil de aplicaciones web - Django

Page 20: Desarrollo Agil de Aplicaciones Web

Ruby

Ruby On Rails, el desarrollo Web que no molesta

Desarrollo ágil de aplicaciones web - Rails

Page 21: Desarrollo Agil de Aplicaciones Web

Ruby On Rails

• Es el padre de los frameworks web MVC

• Las clases del Modelo son gestionadas por ActiveRecord

• Existen muchas aplicaciones desarrolladas con este Framework, el más popular es Twitter.

• Se distribuyen muchas librerías que pueden ser agregadas a la aplicación mediante "Gems"

• Convención sobre configuración, lo que permite tener menos código que escribir.

Desarrollo ágil de aplicaciones web - Rails

Page 22: Desarrollo Agil de Aplicaciones Web

Rails

Para instalarlo:

aptitude install rails

Luego, crear una aplicación nueva:

rails miaplicacion

Desarrollo ágil de aplicaciones web - Rails

Page 23: Desarrollo Agil de Aplicaciones Web

Mas información en:

• Catalyst: http://www.catalystframework.org/• Django: http://django.es/

• Ruby on Rails: http://rubyonrails.org/

Contacto:

[email protected]• Twitter: @g013m

• Página Web: http://blog.g013m.com.ve