E-Commerce Catalog - Kick off
Durante las últimas semanas, el equipo de Sustaining Engeniering de p&p estuvo desarrollando una nueva Reference Implementation para Web Client Software Factory 2.0. El escenario elegido fue el de un E-Commerce debido a que es un ambiente bastante familiar y conocido. El proyecto aún está está en desarrollo y se irá actualizando periódicamente. Usted puede conseguir las ultimas versiones en WCSFContrib en la sección Source Code.
Introducción
E-Commerce Catalog es una aplicación Web Client Software Factory 2.0 cuyo objetivo es:
- Mostrar buenas prácticas en el desarrollo incremental de una aplicación web.
- Demostrar cómo comenzar y desarrollar un proyecto WCSF.
- Demostrar cómo se pueden resolver distintos desafíos técnicos usando Web Client Software Factory 2.0.
La aplicación E-Commerce Catalog permite buscar artículos para su venta a todos los usuarios registrados. Cada usuario puede realizar las siguientes tareas:
- Agregar ítems en un carro de compras virtual.
- Seleccionar el método de pago, la dirección de envío y la dirección donde se le cobrará.
- Confirmar el pedido.
La aplicación E-Commerce Catalog está constituida por dos Web sites.
- Development Web site: Este Web site es público y es accedido por todos los usuarios para realizar las compras.
- Admin Web site: Este Web site es accedido por los administradores para controlar y manejar el catálogo de productos. El administrador está habilitado para agregar y editar productos, categorías, precios, envíos, forma de pago, etc.
Este post es el primero de una serie de artículos que cubrirán todo el desarrollo de la aplicación. En este post usted podrá encontrar:
- Cómo se diseño la aplicación.
- Cuales fueron los primeros pasos.
- Cuales fueron las decisiones técnicas tomadas y por qué razones.
Primer paso
Antes que nada necesitamos crear un diseño general de la solución. Para ello realizamos las siguientes tareas:
- Generamos un draft con las distintas páginas que la aplicación, en principio, debería tener.
- Hicimos una lista con las entidades involucradas en la aplicación.
- Decidimos cuáles serán los módulos que se deberían crear. La Figura 1 muestra los módulos que tendrá la aplicación.
Figura1
Módulos de la aplicación
Decisiones tomadas
Antes de comenzar el desarrollo de la aplicación, tuvimos que tomar las siguientes decisiones:
- Decidimos realizar Test Driven Development: Este tipo de desarrollo es posible gracias a:
- El patrón Model-View-Presenter (MVP) incluido en la recipe de Web Client Software Factory el cual facilita la creación de los tests desacoplando responsabilidades y permitiendo testear si tener dependencias.
- La Guiadance Package: permite generar proyectos de pruebas con la toda la estructura necesaria para testear a los presenter y a los servicios (generando Mocks y tests de ejemplo).
- Decidimos guardar toda la información en memoria en lugar de persistir los datos en una base de datos. Esto permite que nos enfoquemos más en el desarrollo de la lógica de la aplicación.
Desafíos técnicos
La siguiente tabla muestra los principales desafíos técnicos a los cuales apunta la aplicación E-Commerce Catalog.
|
Desafío Técnico |
Descripción |
¿De qué forma está demostrado en la E-Commerce Catalog? |
|
Modularidad |
Habilidad de construir sitios complejos basados en módulos que pueden ser desarrollados, probados, versionados y desplegados en forma independiente. |
|
| Manejo de la presentación de la aplicación | Habilidad de crear una experiencia de usuario común a través de módulos distintos e independientes, separando el diseño de la interfaz de usuario del desarrollo de la aplicación. |
|
| Navegación y Page Flow | Habilidad de diseñar e implementar transiciones entre las páginas Web separando la lógica de la navegación de la lógica de negocios. |
|
| Unit testing | Habilidad de correr tests unitarios contra la lógica de la página Web. |
|
| Perfil del usuario basado en la UI | Habilidad de cambiar el comportamiento de la UI basándose en la identidad del usuario y en la información del perfil. |
|
| Autenticación | Habilidad para identificar a los usuarios registrados en el Web sitio. |
|
| Autorización | Habilidad de cambiar los permisos para diferentes usuarios. |
|
| Seguridad en los datos | Asegurar a los usuarios y a la información del Web site |
|
| Disponibilidad y escalabilidad del sistema | Maximizar el tiempo de funcionamiento y minimizar el tiempo para diagnosticar problemas. |
|
| Fácil despliegue | Minimizar la complejidad de desplegar o actualizar funcionalidad en un Web site. |
|
Eso es todo por el momento. En el próximo post les mostraré como implementamos el modulo Products.
Ver este artículo en inglés en la sección de documentación de SCSFContrib.