business logic 2012

63

Upload: juanmaari

Post on 24-Jun-2015

118 views

Category:

Technology


0 download

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
Page 2: Business Logic 2012

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

Diseño

Arquitectura

Tipos

Page 4: Business Logic 2012

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

¿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

¿Por qué necesitamos modelar?

Page 7: Business Logic 2012

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

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

SOLID DRYCommon

Closure

Common

Reuse

KISS YAGNIStable

Abstraction

Separation

of Concerns

Page 10: Business Logic 2012

Single Responsability Principle

Open Close Principle

Liskov Substitution Principle

Interface Segregation Principle

Dependency Inversion Principle

Page 11: Business Logic 2012

Don’t Repeat Yourself

Evitar duplicaciones

Aplicar abstracciones

Page 12: Business Logic 2012

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

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

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

Las clases que se usan juntas, se empaquetan

juntas

Page 16: Business Logic 2012

Tener un balance entre lo abstracto y lo rígido

Ab

stra

cció

n

Estabilidad

rígido

inútil

Page 17: Business Logic 2012

Aplica a paquetes, clases y métodos

Separa las responsabilidades:

En un nuevo método

En una nueva dependencia

Page 18: Business Logic 2012

Las dependencias deben ser sobre abstracciones y

no sobre implementaciones concretas

Relacionado con Dependency Injection

Page 19: Business Logic 2012

Programática Declarativa

Introspectiva

Page 20: Business Logic 2012

Separación de responsabilidades mediante objetos

que se mandan mensajes entre sí

Page 21: Business Logic 2012

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

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

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

DDD Capas AspectosTransaction

Script

Hexagonal CQRS Workflow Cloud

Page 25: Business Logic 2012

Problemas al construir Software:

Construir Software complejo sin conocer el Dominio

Trabajar en conjunto con el experto de Negocio

Page 26: Business Logic 2012

Lenguaje Ubicuo

Traducir

Domain Expert

Technical Expert

Refinar

Acordar

Jerga

Jerga

Page 27: Business Logic 2012

Lenguaje Ubicuo

Domain Expert

Technical Expert

Lenguaje Ubicuo

Bounded

Context

Bounded

Context

Bounded

Context

Page 28: Business Logic 2012

BDD

TDD

Page 29: Business Logic 2012

Building Blocks

X

Page 30: Business Logic 2012

Conjunto de componentes reutilizables

Ayuda a aplicar el principio de SoC

Facilidad para identificar problemas

Elimina duplicación innecesaria

Page 31: Business Logic 2012

División lógica por funcionalidad

Presentación

Recursos

Negocio

Page 32: Business Logic 2012

Presentación

Aplicación

Dominio

Servicios

Persistencia

Transversal

Page 33: Business Logic 2012

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

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

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

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

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

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

Presentación

Recursos

Negocio

Transversal

Page 40: Business Logic 2012

Transversal

Presentación

Recursos

Negocio

Page 41: Business Logic 2012

Aspectos Típicos

Seguridad

Cache

Gestión de Configuraciones

Gestión de Excepciones

Logging

Page 42: Business Logic 2012

Organiza la lógica de negocio en procedimientos

Cada procedimiento maneja una petición de la

presentación

Page 43: Business Logic 2012

Presentación

Infraestructura

Servicios (Comandos)

Page 44: Business Logic 2012

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

DB

Mock DB

Domain

Page 46: Business Logic 2012

Dominio

Page 47: Business Logic 2012

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

update read

Page 49: Business Logic 2012

Hago Algo Aplicación

Almacén de Datos

hace algo

hic

e a

lgo

dam

e

dato

s

Page 50: Business Logic 2012

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

Dominio

Modelo

comando

Lectu

ra

Misma fuente de Datos

UI

esc

ritu

ra

Lectu

ra

Page 52: Business Logic 2012

Dominio

Modelo 1

comando

esc

ritu

ra

Lectu

ra

Distintos modelos de Datos

Lectu

ra

UI

Modelo 2

Page 53: Business Logic 2012

Dominio

Event Store

comando

esc

ritu

ra

Lectu

ra

Event Sourcing

Lectu

ra

UI

ModeloEventos

Page 54: Business Logic 2012

SaaS

PaaS

IaaS

Public Cloud

Private Cloud

Page 55: Business Logic 2012

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

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

Desktop Web

Distribuidas Mobile

Page 58: Business Logic 2012

Abundan los recursos

Aplicaciones pesadas

Atadas al Sistema Operativo

Page 59: Business Logic 2012

Recursos escasos

Multiplataforma

Basado en estándares

Interfaces fluidas

Comunicaciones asincrónica

Page 60: Business Logic 2012

Múltiples servidores

Tecnologías que permitan la distribución

Transparencia en su uso

Cluster

Grid Computing

Page 61: Business Logic 2012

Interfaces Touch

Tiempo de Respuesta muy rápidos

Guidelines de diseño

Recursos más limitados

Page 62: Business Logic 2012
Page 63: Business Logic 2012