El dia de hoy recibí un correo que considere importante compartir con ustedes pues durante algun tiempo he contestado este tipo de preguntas de manera personal lo cual creo que es un poco inadecuado cuando a través de blog puedo llegar a mas personas que pueden tener las mismas dudas.
Les comparto el mail y la respuesta en post subsecuentes:
Hola Gabriel, estuve viendo un video que hiciste sobre diseño de capas de acceso a datos y abusando de la confianza que diste para que te escribiéramos me he animado a hacerlo.
Soy un asiduo lector de artículos sobre arquitectura de sistemas, lastimosamente en mi trabajo no he tenido la oportunidad de poder definir y trabajar con una arquitectura de las que he leído en diferentes páginas Web, en estos momentos comienzo a desarrollar una aplicación web y pues tengo un dilema de que arquitectura implementar, como te digo he leído muchos artículos al respecto pero como tu sabes la última palabra la tiene la experiencia, cosa que no he tenido, básicamente la aplicación web que voy a desarrollar contiene capturas de datos y la respectiva grabación en bases de datos, lo común, no tiene nada de raro, de pronto una que otra invocación de web services pero no mas. He planteado la siguiente arquitectura:
|
Interfaz de Usuario
|
Entidades
|
|
Fachada
|
|
Capa de Reglas del Negocio
|
|
Capa de Acceso a Datos
|
En estos momentos tengo los siguientes interrogantes:
- Excepciones: Según la teoría, el manejo de excepciones debe hacerse en la Fachada, hay otra teoría que dice que las excepciones deben subirse desde la capa donde se capturan hacia las capas superiores y de ser posible transformarlas en excepciones de negocio las cuales serán convertidas en la interfaz de usuario en un mensaje amigable para este. Según tengo entendido, el hecho de estar generando excepciones representa una carga importante en el rendimiento de la aplicación; entonces el interrogante es: Como debo manejar las excepciones?
- Transacciones: Cual sería la forma recomendable de manejar excepciones y en que capa?
Desde ya, muchas gracias y disculpas por el atrevimiento.
PD: Si tienes consejos o tips adicionales te agradecería me los dijeras.
Saludos.
Edward Angulo Franco
99ca0928-f05a-4bc5-ae6c-00598eb21afe|0|.0