business logic 2012
DESCRIPTION
Presentación de la clase "Lógica de Negocio" de la materia "Arquitectura de Proyectos IT" dictada en la Universidad Tecnológica Nacional, Facultad Regional Buenos Aires (UTN FRBA).TRANSCRIPT
![Page 1: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/1.jpg)
![Page 2: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/2.jpg)
Introducción10 minutos
Diseño de la Lógica de Negocio30 minutos
Arquitectura de la Lógica de Negocio45 minutos
Tipos de Arquitectura25 minutos
![Page 3: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/3.jpg)
Diseño
Arquitectura
Tipos
![Page 4: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/4.jpg)
Introducción10 minutos
Diseño de la Lógica de Negocio30 minutos
Arquitectura de la Lógica de Negocio45 minutos
Tipos de Arquitectura25 minutos
![Page 5: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/5.jpg)
¿Qué es un Modelo?
Visión simplificada de algo complejo utilizada en el
análisis y resolución de problemas
![Page 6: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/6.jpg)
¿Por qué necesitamos modelar?
…
…
…
…
![Page 7: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/7.jpg)
Ab
stra
cció
n
Tecnología Negocio
Diagrama de Clases y Secuencia
Unit Test
Código OO
Esquema de Base de Datos
Diagrama de Capas
Diagrama de Deploy
BPM & Workflow
Data examples
Story test
Prototypes
DSL
![Page 8: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/8.jpg)
Introducción10 minutos
Diseño de la Lógica de Negocio30 minutos
Arquitectura de la Lógica de Negocio45 minutos
Tipos de Arquitectura25 minutos
![Page 9: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/9.jpg)
SOLID DRYCommon
Closure
Common
Reuse
KISS YAGNIStable
Abstraction
Separation
of Concerns
![Page 10: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/10.jpg)
Single Responsability Principle
Open Close Principle
Liskov Substitution Principle
Interface Segregation Principle
Dependency Inversion Principle
![Page 11: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/11.jpg)
Don’t Repeat Yourself
Evitar duplicaciones
Aplicar abstracciones
![Page 12: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/12.jpg)
Keep it Simple… stupid
Evitar complejizar el problema de forma
innecesaria
Un modelo simple es siempre más fácil de
mantener
![Page 13: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/13.jpg)
You ain’t gonna need it
No añadir funcionalidad extra que no vamos
a utilizar
Desventajas de implementar algo “a futuro”
Más tiempo de Testing
Más tiempo de documentación
Añadir funcionalidad extra, puede requerir
añadir además, más funcionalidad extra
![Page 14: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/14.jpg)
Las clases que se usan juntas, se empaquetan
juntas
Apunta a la Modificabilidad
Permite facilidad de distribución y actualización
![Page 15: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/15.jpg)
Las clases que se usan juntas, se empaquetan
juntas
![Page 16: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/16.jpg)
Tener un balance entre lo abstracto y lo rígido
Ab
stra
cció
n
Estabilidad
rígido
inútil
![Page 17: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/17.jpg)
Aplica a paquetes, clases y métodos
Separa las responsabilidades:
En un nuevo método
En una nueva dependencia
![Page 18: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/18.jpg)
Las dependencias deben ser sobre abstracciones y
no sobre implementaciones concretas
Relacionado con Dependency Injection
![Page 19: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/19.jpg)
Programática Declarativa
Introspectiva
![Page 20: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/20.jpg)
Separación de responsabilidades mediante objetos
que se mandan mensajes entre sí
![Page 21: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/21.jpg)
Separa la lógica de negocio de aspectos intrusivos.
Parametriza fuera del código los componentes
arquitecturales.
Me concentro en el qué y no en el cómo.
[Required]
public void Email(string email)
{
this.Email = email;
}
<Button Width="102"
Height="31"
Click=“OnClick” />
![Page 22: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/22.jpg)
Puedo manipular la lógica utilizando Reflection
Modifica el comportamiento de mi aplicación
Me permite extender mi aplicación
![Page 23: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/23.jpg)
Introducción10 minutos
Diseño de la Lógica de Negocio30 minutos
Arquitectura de la Lógica de Negocio45 minutos
Tipos de Arquitectura25 minutos
![Page 24: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/24.jpg)
DDD Capas AspectosTransaction
Script
Hexagonal CQRS Workflow Cloud
![Page 25: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/25.jpg)
Problemas al construir Software:
Construir Software complejo sin conocer el Dominio
Trabajar en conjunto con el experto de Negocio
![Page 26: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/26.jpg)
Lenguaje Ubicuo
Traducir
Domain Expert
Technical Expert
Refinar
Acordar
Jerga
Jerga
![Page 27: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/27.jpg)
Lenguaje Ubicuo
Domain Expert
Technical Expert
Lenguaje Ubicuo
Bounded
Context
Bounded
Context
Bounded
Context
![Page 28: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/28.jpg)
BDD
TDD
![Page 29: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/29.jpg)
Building Blocks
X
![Page 30: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/30.jpg)
Conjunto de componentes reutilizables
Ayuda a aplicar el principio de SoC
Facilidad para identificar problemas
Elimina duplicación innecesaria
![Page 31: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/31.jpg)
División lógica por funcionalidad
Presentación
Recursos
Negocio
![Page 32: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/32.jpg)
Presentación
Aplicación
Dominio
Servicios
Persistencia
Transversal
![Page 33: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/33.jpg)
Presentación- Interfaz de Usuario
- MVC / MVP / MVVM
Servicios- Capa de Servicios Distribuidos
- Fachada de nuestra lógica
- REST / SOAP
Aplicación- Coordina actividades de la Aplicación
- No incluye lógica de Negocio
- Coordina servicios de la capa de nivel inferior
Dominio
- Implementa la funcionalidad principal de nuestro Sistema
- Es quien cuenta con las Entidades de nuestro Negocio
- Recordar que las operaciones nacen del modelo Ubicuo
- Totalmente aislado de los componentes de Infraestructura
Persistencia- Centraliza el acceso a los datos
- Desacopla la tecnología utilizada
- DAOs / Repositorios / ORM / DataMapper / ActiveRecord
Transversal
- Aspectos
Horizontales
- Impactan en
toda la App.
- Favorece la
reutilización
- DI / AOP
![Page 34: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/34.jpg)
Presentación- Interfaz de Usuario
- MVC / MVP / MVVM
Servicios- Capa de Servicios Distribuidos
- Fachada de nuestra lógica
- REST / SOAP
Aplicación- Coordina actividades de la Aplicación
- No incluye lógica de Negocio
- Coordina servicios de la capa de nivel inferior
Dominio
- Implementa la funcionalidad principal de nuestro Sistema
- Es quien cuenta con las Entidades de nuestro Negocio
- Recordar que las operaciones nacen del modelo Ubicuo
- Totalmente aislado de los componentes de Infraestructura
Persistencia- Centraliza el acceso a los datos
- Desacopla la tecnología utilizada
- DAOs / Repositorios / ORM / DataMapper / ActiveRecord
Transversal
- Aspectos
Horizontales
- Impactan en
toda la App.
- Favorece la
reutilización
- DI / AOP
![Page 35: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/35.jpg)
Presentación
Servicios
Aplicación
Dominio
Persistencia
View
ModelController
DTOsWeb
Services
Application Services
Repository Contracts
Entities Rules
Domain Services
Repository Core
Transversal
Caching
Security
Logging
IoC
![Page 36: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/36.jpg)
Presentación
Servicios
Aplicación
Dominio
Persistencia
View
ModelController
DTOsWeb
Services
Application Services
Entities Rules
Domain Services
Repository Core
Transversal
Caching
Security
Logging
IoC
LoggingLogging
Repository Contracts
Aunque a veces encontramos esto!!!
![Page 37: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/37.jpg)
División lógica por módulos
Separa Responsabilidades y Dependencias
Módulo A Módulo B Módulo C
Equipo A Equipo B Equipo C
![Page 38: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/38.jpg)
Presentación
Recursos
Negocio
Presentación
Recursos
Negocio
Presentación
Recursos
Negocio
Módulo A Módulo B Módulo C
![Page 39: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/39.jpg)
Presentación
Recursos
Negocio
Transversal
![Page 40: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/40.jpg)
Transversal
Presentación
Recursos
Negocio
![Page 41: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/41.jpg)
Aspectos Típicos
Seguridad
Cache
Gestión de Configuraciones
Gestión de Excepciones
Logging
![Page 42: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/42.jpg)
Organiza la lógica de negocio en procedimientos
Cada procedimiento maneja una petición de la
presentación
![Page 43: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/43.jpg)
Presentación
Infraestructura
Servicios (Comandos)
![Page 44: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/44.jpg)
El core es el modelo y es centro de la aplicación
La infraestructura depende del core
La UI depende del core y tiene acceso a la
infraestructura
![Page 45: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/45.jpg)
DB
Mock DB
Domain
![Page 46: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/46.jpg)
Dominio
![Page 47: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/47.jpg)
Command Query Responsibility Segregation
¿Qué pasa si tenemos pocos usuarios
actualizando los datos pero muchos leyendo?
¿Por que complejizar y comprometer
performance por transformaciones sin sentido?
![Page 48: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/48.jpg)
update read
![Page 49: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/49.jpg)
Hago Algo Aplicación
Almacén de Datos
hace algo
hic
e a
lgo
dam
e
dato
s
![Page 50: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/50.jpg)
Permite escalar por separado el modelo de
Lectura y Escritura
Aplicable a un Bounded Context
UI con respuestas rápidas
![Page 51: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/51.jpg)
Dominio
Modelo
comando
Lectu
ra
Misma fuente de Datos
UI
esc
ritu
ra
Lectu
ra
![Page 52: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/52.jpg)
Dominio
Modelo 1
comando
esc
ritu
ra
Lectu
ra
Distintos modelos de Datos
Lectu
ra
UI
Modelo 2
![Page 53: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/53.jpg)
Dominio
Event Store
comando
esc
ritu
ra
Lectu
ra
Event Sourcing
Lectu
ra
UI
ModeloEventos
![Page 54: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/54.jpg)
SaaS
PaaS
IaaS
Public Cloud
Private Cloud
![Page 55: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/55.jpg)
Organización
Cloud
usuarios
Proveedor
Cloud Platform
Storage / Network
VM VM VM
App 1 App 2 App 3
Organización
Private Cloud
Storage / Network
VM VM
App 1 App 2
App 3
![Page 56: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/56.jpg)
Introducción10 minutos
Diseño de la Lógica de Negocio30 minutos
Arquitectura de la Lógica de Negocio45 minutos
Tipos de Arquitectura25 minutos
![Page 57: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/57.jpg)
Desktop Web
Distribuidas Mobile
![Page 58: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/58.jpg)
Abundan los recursos
Aplicaciones pesadas
Atadas al Sistema Operativo
![Page 59: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/59.jpg)
Recursos escasos
Multiplataforma
Basado en estándares
Interfaces fluidas
Comunicaciones asincrónica
![Page 60: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/60.jpg)
Múltiples servidores
Tecnologías que permitan la distribución
Transparencia en su uso
Cluster
Grid Computing
![Page 61: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/61.jpg)
Interfaces Touch
Tiempo de Respuesta muy rápidos
Guidelines de diseño
Recursos más limitados
![Page 62: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/62.jpg)
![Page 63: Business Logic 2012](https://reader033.vdocuments.net/reader033/viewer/2022052223/5589c20cd8b42a52498b4735/html5/thumbnails/63.jpg)