Estoy diseñando una nueva aplicación que maneja mucha lógica de negocios.
Para evitar el enredo habitual entre las diferentes capas de aplicación que a menudo se infiltra en dichos sistemas con el tiempo, quiero implementar una separación limpia de las preocupaciones desde el principio. En términos generales, quiero separar:
- Capa de presentación
- capa de lógica de negocios
- almacenamiento de datos y capa de persistencia
La pregunta con la que más estoy luchando es cómo implementar realmente el comportamiento en los bordes de manera limpia, especialmente entre el negocio y la capa de datos. He visto demasiadas aplicaciones en las que la capa de datos entrega objetos ORM a la capa central, acoplando de manera efectiva la lógica empresarial al ORM.
¿Debo convertir los objetos ORM a algún formato serializado (JSON?) Y luego deserializar eso en la capa empresarial en una estructura de datos interna a esa capa? ¿No es eso mucha sobrecarga?
¿Cómo implementar limpiamente la separación de preocupaciones para aplicaciones de tamaño mediano? ¿Algún consejo?
article.getId(), article.getTimestamp()etc. Estas asignaciones parecen ser más frecuentes que las específicas de ORM utilizadas.