Para poder entender lo aquí voy a exponer es necesario que partamos de una definición estándar de capa, en programación: Capas son unidades de funcionalidad separadas unas de otra, que por lo general trabajan en jerarquías, de tal forma que una capa solo puede comunicarse con la capa por encima de ella o por debajo de ella.
Si queremos crear un esquema mental de la definición, con capas genéricas, podemos pensar que cualquier programa de computo, tendrá al menos Una interface de usuario, lógica de negocios, acceso a los datos, código en el almacén de datos y datos. Dicho de esta forma son 5 capas, que se organizan de tal manera que si las viéramos como bloques alineados se verían de esta forma:
Sin embargo, lo primero que acordaremos será que para nosotros las capas no siguen la definición que les presente previamente. Para nosotros las capas serán una forma de SoC.
Además debemos estar consientes que desde la concepción moderna de la arquitectura de software, existen dos diferentes tipos de capas:
Física: las podemos crear de varias formas; por ejemplo: namespaces, folders, proyectos, etc.
Lógicas: Se crean por medio de la separación de funcionalidades.
Nos concentraremos en las capas Lógicas:
Las capas modernas no se presentan de la misma forma grafica que las antiguas, las capas pueden ser más flexibles, y desde mi muy personal punto de vista, se pueden Refactorizar según sea necesario para cada proyecto, siempre que puedan conservar su esencia. Si tuviera que representarlas de forma grafica serian algo así:En el diagrama podemos ver más capas interactuando de una forma no apilada, más fluida, más flexible.
Las capas son:
Interface de usuario: Esta capa se encarga de recibir los datos que introduce el usuario y de presentarle los resultados obtenidos.
Control del flujo: Esta capa se encarga de controlar el flujo lógico de la aplicación, controla los diferentes caminos que se deberán seguir según la lógica de negocios.
Lógica de negocios: La lógica de negocios son las actividades que son objeto del software en cuestión, por ejemplo llevar a cabo la facturación o registrar movimientos en el banco.
Reglas de negocios: Estas se encargan de verificar que las reglas que rigen la lógica de negocio se apliquen según lo establecido.
Reglas de Validación: Estas verifican que los datos que recibimos del usuario cumplan con los requerimientos mínimos para mantener la integridad de la información, así como coherencia.
Modelo lógico: Son la representación en clases o en entidades, de los datos al nivel de código.
Repositorios: Son la única capa que debe tener conciencia de la manera en que se interactúa con el almacén de datos.
Servicios: Esta capa ofrece acceso a otras aplicaciones o componentes de código a el core mismo de la aplicación.
Base de datos: Lugar donde los datos se almacenan físicamente.
No hay comentarios:
Publicar un comentario