martes, 1 de abril de 2008

Cairngorm I

Cairngorm es un framework estructural para el desarrollo de RIAs que fomenta el uso de determinados patrones y potencia la escalabilidad y el crecimiento de las aplicaciones.
Para afrontar el desarrollo de cualquier tipo de aplicación medianamente grande y en el que vayan a co-desarrollar múltiples desarrolladores es imprescindible seguir unas pautas y estrategias comunes, conocer con exactitud el alcance e impacto de cada uno de los pasos que se den. Cairngorm, al ser un framework estructural ytransversal a cualquier aplicativo, permite que desarrolladores centrados en distintos ámbitos de aplicaciones trabajen con una misma metodología y unas mismas bases que les permita tener una movilidad yun know-how entre distintos proyectos.

El hecho que se trate de un framework transversal tiene múltiples implicaciones:

  • Un desarrollador que conozca cairngorm puede incorporarse a cualquier proyecto basado en cairngorm minimizando la curva deaprendizaje inicial.
  • El know-how adquirido en otros proyectos basados en Cairngorm es aplicable de forma directa a cualquier otro proyecto.
  • En un equipo de desarrolladores, y aunque no hayan trabajado con anterioridad juntos, la metodología es conocida por todos. El lenguajeya está dominizado y los conceptos son comunes a todos los integrantes.Con esto se consigue un mayor grado de afinidad y agiliza el planteamiento de los problemas (se habla ya en el dominio de Cairngorm, las distintas partes conocen el concepto de Command, Service, Delegate,etc).
  • Se fomenta la reutilización real de código de forma transversal a los proyectos sin hacer copiar y pegar (para hacer mínimos retoques deintegración).
  • Para un desarrollador que empiece a trabajar en un proyecto basado en Cairngorm y que desconozca sus alcances, implicaciones ymetodologías resulta mucho más fácil encontrar documentación yformarse. Al tratarse de un framework muy aceptado por la industria,empieza a existir una buena cantidad de documentación, información yejemplos a su entorno. Esto tiene repercusiones directas en el equipoya que no tiene que documentar su metodología y best practices, yaestán documentadas.
  • La forma en la que se fomenta la distribución del código facilita el trabajo en equipo. Como iremos viendo Cairngorm induce a la creaciónde bastantes clases pero, normalmente, sencillas y cortas. Esto facilita la modularidad a la hora de distribuirse el trabajo y de hacerlos merges en caso de usar un sistema de versionado de código.
  • Al tratarse de un framework soportado oficialmente por Adobe podemos intuir que tendrá una evolución según ésta fuera necesaria. En el caso de que se requiera de alguna funcionalidad no incluida de base,siempre la podremos implementar ya que disponemos del código fuente y de documentación al respeto.

Aunque Cairngorm es una implementación exclusiva para aplicaciones basadas en Flex (Flex2 y su precedente Flex1.5), éste está basado en el catálogo de patrones J2EE, lo cual aún potencia más el punto de ladocumentación ya existente.

En los puntos que siguen intentaré ir justificando el uso de cada uno de los patrones que se usan, ver los distintos enfoques y usos que se le pueden dar. Finalmente veremos como construir una aplicación basada en Cairngorm.

Debido a la extensidad del tema he escrito un total de 8 artículos que iremos publicando cada 2 días:

  1. Cairngorm I: Introducción.
  2. Cairngorm II: Value Objects.
  3. Cairngorm III: Commands.
  4. Cairngorm IV: FrontController.
  5. Cairngorm V: Eventos.
  6. Cairngorm VI: Services y ServiceLocator.
  7. Cairngorm VII: Business Delegate.
  8. Cairngorm VIII: Model Locutor.
  9. Cairngorm IX: Aplicación de ejemplo.

Para los impacientes aquí dejo una serie de links interesantes sobre Cairngorm y Patrones:

Y no podía faltar una lista de libros sobre patrones:

Realmente son todos muy buenos. Para los que estéis empezando conesto de los patrones os recomendaría el segundo y a partir de ahí leeros el resto (merecen la pena).



Fte: http://www.madeinflex.com/2006/10/15/cairngorm-i-introduccion/

No hay comentarios:

Publicar un comentario