Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
ada:howto:sicoferp:factory:migracionsicoferp:process:backend:organizacionproyectosourcecode [2020/05/06 18:38] carlos.torres [Estructura de Paquetes] |
ada:howto:sicoferp:factory:migracionsicoferp:process:backend:organizacionproyectosourcecode [2020/07/24 12:08] (actual) carlos.torres |
||
---|---|---|---|
Línea 10: | Línea 10: | ||
Debe estár compuesta por las siguientes secciones separadas por punto: | Debe estár compuesta por las siguientes secciones separadas por punto: | ||
- | **Dominio.Organización.Producto de Sofware.Proceso.Funcionalidad** | + | **Dominio.Organización.Producto de Sofware.Proceso/Funcionalidad** |
de los cuales los dos primeros son constantes a todos los desarrollos | de los cuales los dos primeros son constantes a todos los desarrollos | ||
Línea 16: | Línea 16: | ||
**co.ada** | **co.ada** | ||
- | Ejemplo | + | Ejemplo: Paquete principal |
- | **co.ada.sicof.contabilidad.terceros.listado** | + | **co.ada.sicof.contabilidad.terceros** |
donde: | donde: | ||
Línea 26: | Línea 26: | ||
* **contabilidad**: Producto de Software / Módulo | * **contabilidad**: Producto de Software / Módulo | ||
* **tercero**: Opcion / Proceso | * **tercero**: Opcion / Proceso | ||
- | * **listado**: Funcionalidad | ||
==== Estructura de Paquetes ==== | ==== Estructura de Paquetes ==== | ||
A continuación se describe la organización de los paquetes que debe contenedor un microservicio, no todos son requeridos en el desarrollo ya que dependen del alcance de la funcionalidad soportada, sin embargo se debe mantener la estructura como estandar y no se deben crear estructuras diferentes a menos que el microservicio lo requiera y previamente haya sido aprobado por el lider de desarrollo. Se permiten sub paquetes con el fin de organizar el proyecto. | A continuación se describe la organización de los paquetes que debe contenedor un microservicio, no todos son requeridos en el desarrollo ya que dependen del alcance de la funcionalidad soportada, sin embargo se debe mantener la estructura como estandar y no se deben crear estructuras diferentes a menos que el microservicio lo requiera y previamente haya sido aprobado por el lider de desarrollo. Se permiten sub paquetes con el fin de organizar el proyecto. | ||
+ | |||
+ | Todo microservicio de definir la siguiente estructura según el alance del desarrollo: | ||
+ | |||
+ | * **Paquete Principal**: Representa el paquete raíz del microservicio. | ||
+ | * **controller**: Representa el paquete de los controladores y procesos del negocio. | ||
+ | * **config**: Contiene las configuraciones asociadas a los recursos del microservicio. Ejemplo: swagger, RestConfiguration. | ||
+ | * **dbconnect**: Contiene las clases de configuración de conexión a las bases de datos. | ||
+ | * **repo** ó **dao**: Contiene las clases de acceso a datos. Ejemplo: Clases heredadas de JpaAdaRepository | ||
+ | * **service**: Represente los proxys/brokers que puedan ser creados para exponer/modificar una operación de un microservicio. | ||
+ | * **client**: Contiene los clientes que consumen operaciones de microservicios externos. | ||
+ | * **event**: Contiene configuraciones especiales. Este paquete solo será necesario en aquellas configuraciones donde se deben intervenir eventos de APIs. | ||
+ | * **business**: Contiene el desarrollo de la lógica del negocio del microservicio | ||
Con los siguientes ejemplos se pretende explicar la estructura estandar de un microservicio: | Con los siguientes ejemplos se pretende explicar la estructura estandar de un microservicio: | ||
- | * **co.ada.sicof.contabilidad.tercero**: Representa el paquete raíz del microservicio. | + | * **co.ada.sicof.contabilidad.tercero** |
- | * **co.ada.sicof.contabilidad.tercero.controller**: Representa el paquete de los controladores y procesos del negocio. | + | * **co.ada.sicof.contabilidad.tercero.controller** |
- | * **co.ada.sicof.contabilidad.tercero.config**: Contiene las configuraciones asociadas a los reursos del microservicio. Ejemplo: swagger, RestConfiguration | + | * **co.ada.sicof.contabilidad.tercero.config** |
- | * **co.ada.sicof.contabilidad.tercero.dao**: Contiene las clases de acceso a datos. Ejemplo: CrudRepository | + | * **co.ada.sicof.contabilidad.tercero.dbconnect** |
- | * **co.ada.sicof.contabilidad.tercero.service**: Represente los proxys/brokers que puedan ser creados para exponer/modificar una operación de un microservicio. | + | * **co.ada.sicof.contabilidad.tercero.repo** |
- | * **co.ada.sicof.contabilidad.tercero.client**: Contiene los clientes que consuen operaciones de microservicios externos. | + | * **co.ada.sicof.contabilidad.tercero.service** |
- | * **co.ada.sicof.contabilidad.tercero.event**: Contiene configuraciones especiales. Este paquete solo será necesario en aquellas ocnfiguraciones donde se deben intervenir eventos de APIs. | + | * **co.ada.sicof.contabilidad.tercero.client** |
+ | * **co.ada.sicof.contabilidad.tercero.event** | ||
+ | * **co.ada.sicof.contabilidad.tercero.business** | ||
==== Consideraciones ==== | ==== Consideraciones ==== | ||
Es posible que algun desarrollo requiera una estructura con mas secciones de las definidas en la Estructura General o con algunas diferencias, esto será posible teniendo presente las siguientes condiciones | Es posible que algun desarrollo requiera una estructura con mas secciones de las definidas en la Estructura General o con algunas diferencias, esto será posible teniendo presente las siguientes condiciones | ||
- | - Se respeta la estructura general: **Dominio.Organización.Producto.Proceso.Funcionalidad.(nuevas secciones)** | + | - Se respeta la estructura general: **Dominio.Organización.Producto.Proceso.(nuevas secciones)** |
- No se pueden cambiar las 2 primeras secciones: **co.ada** | - No se pueden cambiar las 2 primeras secciones: **co.ada** | ||
- El nuevo producto no hace parte del ERP | - El nuevo producto no hace parte del ERP | ||
+ | - Evite que le nombre del paquete principal inicie con **co.ada.models** (Genera un bug de referencias en la actual versión de Springboot) | ||
==== Observaciones ==== | ==== Observaciones ==== |