16 October 2015

WSO2 Developer Studio - Desarrollo y buenas prácticas [Parte 2]

Buenas prácticas de desarrollo


Creación genérica de proyectos


DevStudio permite crear proyectos desde cero o puede importar algunos existentes o artefactos en proyectos. Aquí se puede encontrar la guía de como crear diferentes tipos de proyectos.

Los siguientes, son algunos de los puntos a tener en cuenta cuando se crea un proyecto:
  • El IDE empieza con el workspace por defecto. Se recomienda cambiar la localización a una que sea fácilmente accesible.
  • Cuando se crea un proyecto, este tiene una localización por defecto, al igual que con el workspace se puede elegir una localización fácilmente accesible.
  • Se recomienda crear un proyecto "Maven Multi Module (MMM)" para agrupar los proyectos de un caso de uso.
  • Tan pronto como la estructura sea creada se recomienda ponerla bajo el control de un SCM (SVN, Git,...).
  • Todos los proyectos creados son MAVEN, por tanto se recomienda seguir la convensión de nombres de MAVEN.
  • Hay que asegurarnos que las propiedades groupid, artifactid y version esten correctamente definidos.


Creación de proyectos ESB


Un proyecto de este tipo puede contener artefactos tales como "proxy services", "APIs", "endpoints", "sequence tasks", "message stores", "message processors", "local-entries" y "templates".

Los siguientes, son algunos de los puntos a tener en cuenta cuando se crea un proyecto ESB:
  • Por cada artefacto hay que usar una convensión de nombres, por tanto es necesario establecer alguna antes de empezar.
  • Si un proyecto ESB contiene muchos artefactos relacionados a diferentes casos de uso, es recomendable usar prefijos o sufijos relacionados con el caso de uso. Pero es recomendable tener un proyecto por caso de uso.
  • Cuando se dispone de un conjunto de código, una buena práctica es implementarlo en una "sequence" o "template", así podemos reutilizarlos.
  • No usar nunca "endpoint inline", en su lugar hay que registrarlos y usar su clave de registro, así, ganaremos más flexibilidad cuando haya que cambiar o eliminar el endpoint.
  • [este es mi granito de arena] En caso de tener que utilizar passwords es recomendable utilizar "Secure Vault" para almacenarlos encriptados y usar sus alias.


Creación de proyectos múltiples


La mayoría de tiempo se necesitan crear múltiples proyectos. Por ejemplo, se necesita crear los servicios de backend (AS), ESB, front-end (Web app) y otros. Para estos casos se recomienda crearlos como proyectos MMM (Maven Multi Module) y un ejemplo de esta estructura sería la siguiente:
Integration_Parent_Project
   |___ AppServerProject
   |___ ESBConfigProject
   |___ RegistryProject
   |___ CappProject
La ventaja de los proyectos MMM es que se pueden construir todos los hijos al mismo tiempo con un solo comando. También, si fuera necesario realizar tareas de automatizacion como la ejecución de otros plugins de Maven antes y después de un "build", desde este punto se vuelve una tarea sencilla.

Control de código fuente


Siempre se recomienda el uso de un SCM para el seguimiento de los proyectos y también como mecanismo a prueba de fallos.

Los siguientes, son algunos de los puntos a tener en cuenta cuando se usa un SCM:
  • Añadir a la lista de ignorados las carpetas ".settings" y "target"
  • No ignorar los ficheros "artifacts.xml" y ".project" porque contienen información para visualizar el proyecto.
  • Para los proyectos ESB, se puede ignorar el directorio "graphical-synapse-config", porque se auto genera.



Este artículo es una interpretación de un artículo publicado por Susinda Perera, uno de los ingenieros de WSO2, el cual trata sobre el IDE oficial y las buenas prácticas de desarrollo de proyectos SOA.
Enlaces relacionados: - FIN -

No comments: