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.