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/03/27 12:41] carlos.torres [Observaciones] |
ada:howto:sicoferp:factory:migracionsicoferp:process:backend:organizacionproyectosourcecode [2020/07/24 12:08] (actual) carlos.torres |
||
---|---|---|---|
Línea 1: | Línea 1: | ||
====== Migración SICOF ERP - Proceso: Organización de Código Fuente ====== | ====== Migración SICOF ERP - Proceso: Organización de Código Fuente ====== | ||
- | En este proyecto se utilizará la herramienta Maven((https://es.wikipedia.org/wiki/Maven)) para la construcción de los proyectos Java. | + | En este proyecto se utilizará la herramienta **Maven**((https://es.wikipedia.org/wiki/Maven)) para la construcción de los proyectos Java. |
A continuación se explicará la estructura que deberán tener todos los proyectos, servicios o microservicios que se creen como parte de solución de los productos de software generados en la fabrica bajo la tecnología Java: | A continuación se explicará la estructura que deberán tener todos los proyectos, servicios o microservicios que se creen como parte de solución de los productos de software generados en la fabrica bajo la tecnología Java: | ||
===== Pasos Previos ===== | ===== Pasos Previos ===== | ||
- | Cada equipo (PC) que se utilice para el desarrollo Java de productos de software de la compañia debe tener instalada la herramienta Maven((https://maven.apache.org/download.cgi)) (Se debe instalar la ultima versión disponible) en el IDE de desarrollo. Si desconoce el proceso de descarga, instalación y/o configuración solicite apoyo del área de TI ((La solicitud de esta gesión puede requerir un ticket)). | + | Cada equipo (PC) que se utilice para el desarrollo Java de productos de software de la compañia debe tener instalada la herramienta **Maven**((https://maven.apache.org/download.cgi)) (Se debe instalar la ultima versión disponible) en el IDE de desarrollo. Si desconoce el proceso de descarga, instalación y/o configuración solicite apoyo del área de TI ((La solicitud de esta gesión puede requerir un ticket)). |
==== Estructura General ==== | ==== Estructura General ==== | ||
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 ==== | ||
+ | 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: | ||
+ | |||
+ | * **co.ada.sicof.contabilidad.tercero** | ||
+ | * **co.ada.sicof.contabilidad.tercero.controller** | ||
+ | * **co.ada.sicof.contabilidad.tercero.config** | ||
+ | * **co.ada.sicof.contabilidad.tercero.dbconnect** | ||
+ | * **co.ada.sicof.contabilidad.tercero.repo** | ||
+ | * **co.ada.sicof.contabilidad.tercero.service** | ||
+ | * **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 ==== | ||
- | * Los nombres de los productos deben ser validados y revisados con el lider de desarrollo. | + | * Los nombres de los productos de software deben ser validados y revisados con el lider de desarrollo. |
- | * Los nombres de los procesos deben representar opciones y/o procesos | + | * Los nombres de los procesos deben representar opciones y/o procesos del producto de software. |
- | * Los nombres de las funcionalidades serán los métodos del servicio | + | * Los nombres de las funcionalidades serán los métodos del servicio de los procesos y deben describir acciones. |
- | * Los nombres de las secciones extras quedarán a criterio el desarrollo sin embargo se recomienda utilizar nombres que describan u orienten el código que ejecutan. | + | * Los nombres de las secciones extras quedarán a criterio del desarrollador sin embargo se recomienda utilizar nombres que describan u orienten el código que ejecutan. |
- | [[ada:tips:sicoferp:general:migracionsicoferp:process:backend|←Volver atrás]] | + | [[ada:howto:sicoferp:factory:migracionsicoferp:process:backend|←Volver atrás]] |