Cairngorm I: Introducción

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 y transversal 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 y un 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 de aprendizaje 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 lenguaje ya 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 de integración).
  • Para un desarrollador que empiece a trabajar en un proyecto basado en Cairngorm y que desconozca sus alcances, implicaciones y metodologías resulta mucho más fácil encontrar documentación y formarse. Al tratarse de un framework muy aceptado por la industria, empieza a existir una buena cantidad de documentación, información y ejemplos a su entorno. Esto tiene repercusiones directas en el equipo ya que no tiene que documentar su metodología y best practices, ya está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ón de bastantes clases pero, normalmente, sencillas y cortas. Esto facilita la modularidad a la hora de distribuirse el trabajo y de hacer los 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 la documentació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 con esto de los patrones os recomendaría el segundo y a partir de ahí leeros el resto (merecen la pena).

Comparte:



13votos  Vota!!

Acerca de esta entrada