Herramientas de usuario

Herramientas del sitio


ada:howto:sicoferp:factory:migracionsicoferp:process:backend:guiaconfiguraciondesarrollo

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
ada:howto:sicoferp:factory:migracionsicoferp:process:backend:guiaconfiguraciondesarrollo [2020/04/15 15:53]
carlos.torres [Dominio de Clases de Entidades Comunes]
ada:howto:sicoferp:factory:migracionsicoferp:process:backend:guiaconfiguraciondesarrollo [2020/05/19 12:06] (actual)
carlos.torres [Nombre del Microservicio y configuración POM (Maven)]
Línea 21: Línea 21:
   * Configuración Centralizada:​ Archivos [[https://​es.wikipedia.org/​wiki/​YAML|Yaml]]   * Configuración Centralizada:​ Archivos [[https://​es.wikipedia.org/​wiki/​YAML|Yaml]]
   * Configuración Local: Archivos [[https://​en.wikipedia.org/​wiki/​.properties|Properties]]   * Configuración Local: Archivos [[https://​en.wikipedia.org/​wiki/​.properties|Properties]]
 +
 +==== Nombre del Microservicio y configuración POM (Maven) ====
 +  * Todo microservicio que represente lógica del negocio debe iniciar con la palabra Microservicio y terminar con la palabra ADA y debe usar nomeclatura //**Camel Case**//​((https://​es.wikipedia.org/​wiki/​Camel_case)) sin signos de puntuación. **Ejemplo: MicroservicioPruebaModelADA** ​
 +  * El **groupId** del proyecto debe ser el nombre del paquete principal. **Ejemplo: <​groupId>​co.ada.test.prueba</​groupId>​**
 +  * El **artifactId** y **name** deben ser iguales al nombre del proyecto. **Ejemplo: <​artifactId>​MicroservicioPruebaModelADA</​artifactId>​** y **<​name>​MicroservicioPruebaModel</​name>​**
 +  * Todo microservicio debe contener una descripción. **Ejemplo: <​description>​Microservico de prueba para conexiones multiples</​description>​**
 +  * Todo microservicio debe definir empaquetado tipo jar. **Ejemplo: <​packaging>​jar</​packaging>​**
 +  * Todo desarrollador que actualice el microservicio debe registrarse en el POM en la etiqueta Developer.
 +
 +//**Ejemplo Sección Nombre:**//
 +<code xml>
 +<​groupId>​co.ada.test.microservicio.pruebamodel</​groupId>​
 +<​artifactId>​MicroservicioPruebaModelADA</​artifactId>​
 +<​version>​0.0.1-SNAPSHOT</​version>​
 +<​name>​MicroservicioPruebaModelADA</​name>​
 +<​description>​Microservico modelo de prueba</​description>​
 +<​packaging>​jar</​packaging>​
 +</​code>​
 +
 +//**Ejemplo Sección Developers:​**//​
 +<code xml>
 +        <​developers>​
 + <​developer>​
 + <​id>​carlos.torres</​id>​
 + <​name>​Carlos Torres</​name>​
 + <​email>​carlos.torres@ada.co</​email>​
 + <​organization>​ADA S.A.</​organization>​
 + <​organizationUrl>​www.ada.co</​organizationUrl>​
 + <​roles>​
 + <​role>​architect</​role>​
 + <​role>​developer</​role>​
 + </​roles>​
 + <​timezone>​America/​Bogota</​timezone>​
 + </​developer>​
 + </​developers>​
 +</​code>​
 +
  
 ==== Reglas de Nombre del Microservicio y Archivo de Configuración ==== ==== Reglas de Nombre del Microservicio y Archivo de Configuración ====
Línea 26: Línea 63:
   * El nombre del archivo de configuración centralizada debe ser **bootstrap.yml**   * El nombre del archivo de configuración centralizada debe ser **bootstrap.yml**
   * El nombre del archivo de configuracion local debe ser **application.properties**   * El nombre del archivo de configuracion local debe ser **application.properties**
-  * Deben existir configuraciones por cada ambiente de despliegue en el repositorio de configuración y cada archivo de configuración debe indica ​el perfil los cuales son dev: desarrollo - test: QA - prod: producción **Ejemplo:​** Microservicio:​ Terceros, Paquete Principal: //​co.ada.sicof.terceros//,​ Nombre del Microservicio spring.application.name=co.ada.sicof.terceros,​ perfil de ambiente de despliegue de desarrollo: dev, Nombre del archivo de configuración:​ **co.ada.sicof.terceros-dev.yml**+  * Deben existir configuraciones por cada ambiente de despliegue en el repositorio de configuración y cada archivo de configuración debe indicar ​el perfil los cuales son dev: desarrollo - test: QA - prod: producción **Ejemplo:​** Microservicio:​ Terceros, Paquete Principal: //​co.ada.sicof.terceros//,​ Nombre del Microservicio spring.application.name=co.ada.sicof.terceros,​ perfil de ambiente de despliegue de desarrollo: dev, Nombre del archivo de configuración:​ **co.ada.sicof.terceros-dev.yml**
   * La creación de los archivos de configuración centralizada deben ser solicitados al administrador del repositorio de configuración (Pablo Quintana / Carlos Torres).   * La creación de los archivos de configuración centralizada deben ser solicitados al administrador del repositorio de configuración (Pablo Quintana / Carlos Torres).
  
-===== Dominio de Clases de Entidades Comunes =====+===== Dominio de Clases de Entidades Comunes ​(Models) ​=====
 En la arquitectura propuesta es muy común que existan microservicios que proveen información y otros que la procesan, por esta razon hace necesario el conocimiento de las estructuras en las cuales se transportan los datos ya que en muchos escenarios persisten en el sistema. ​ En la arquitectura propuesta es muy común que existan microservicios que proveen información y otros que la procesan, por esta razon hace necesario el conocimiento de las estructuras en las cuales se transportan los datos ya que en muchos escenarios persisten en el sistema. ​
 Teniendo presente esta situación recurrente se crea un domino de clases y entidades comunes (proyecto spring) donde se van a registrar todas la entidades que puedan ser requeridas por microservicios. A ontinuación se definen las reglas a considerar para incluir una entidad. Teniendo presente esta situación recurrente se crea un domino de clases y entidades comunes (proyecto spring) donde se van a registrar todas la entidades que puedan ser requeridas por microservicios. A ontinuación se definen las reglas a considerar para incluir una entidad.
Línea 37: Línea 74:
   * Cada clase/​entidad debe estar agrupada según la estructura de definición de su parque principal teniendo presente que el nombre base empezará con la estrucutra base del domino de clases y entidades comunes Ejemplo: Para el microservicio **co.ada.sicof.contabilidad.tercero** su agrupación de entidades en el proyecto de dominio de clases de entidades comunes debe ser **co.ada.models.sicof.contabilidad.tercero**   * Cada clase/​entidad debe estar agrupada según la estructura de definición de su parque principal teniendo presente que el nombre base empezará con la estrucutra base del domino de clases y entidades comunes Ejemplo: Para el microservicio **co.ada.sicof.contabilidad.tercero** su agrupación de entidades en el proyecto de dominio de clases de entidades comunes debe ser **co.ada.models.sicof.contabilidad.tercero**
   * Se puede inlcuir definiciones resumidas de una entidad.   * Se puede inlcuir definiciones resumidas de una entidad.
 +  * La inclusión de esas entidades debe ser validada y aprobada por el administrador del dominio de clases y entidades comunes.
 +
 +==== Como utilizar el proyecto Models ====
 +De acuerdo al ambiente de despliegue el proyecto domino de clases y entidades comunes estará en uno de los siguientes repositorios (versión compilada .jar):
 +  * Desarrollo (dev): http://​adacsc.co:​1443/​svn/​repository/​ADA/​SICOFERP/​fuentes/​branches/​development/​core/​ModelsClassesADA/​target/​CommonsClassesADA-0.0.1-SNAPSHOT.jar
 +  * Pruebas/​calidad (qa):
 +  * Producción (prod):
 +
 +==== Dependencia Maven ====
 +Esta es la dependencia que debe agregar en el POM del microservicio.
  
-La inclusión de esas entidades debe ser validada y aprobada por el administrador del dominio de clases y entidades comunes.+<code xml> 
 +<​dependency>​ 
 +  <​groupId>​co.ada.models</​groupId>​ 
 +  <​artifactId>​ModelsClassesADA</​artifactId>​ 
 +  <​version>​0.0.1-SNAPSHOT</​version>​ 
 +</​dependency>​ 
 +</​code>​
  
 +Es responsabilidad del desarrollador utilizar la versión más reciente las cual será publica en la sección correspondiente de la wiki.
  
 +Para utilizar el dominio de clases y entidades comunes en los micoservicios siga los siguientes pasos:
  
 +  - Identifique el ambiente dev, qa o prod a utilizar
 +  - Identifique la versión actual (muy importante para evitar versiones obsoletas)
 +  - Importe la dependencia en Maven
 +  - Agregue la dependencia @EntityScan con el array de los paquetes o clases que necesita en la clase principal del microservicio.
  
    
 [[ada:​howto:​sicoferp:​factory:​migracionsicoferp:​process:​backend|←Volver atrás]] [[ada:​howto:​sicoferp:​factory:​migracionsicoferp:​process:​backend|←Volver atrás]]
  
ada/howto/sicoferp/factory/migracionsicoferp/process/backend/guiaconfiguraciondesarrollo.1586966036.txt.gz · Última modificación: 2020/04/15 15:53 por carlos.torres