business logic 2012

Post on 24-Jun-2015

118 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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

Introducción10 minutos

Diseño de la Lógica de Negocio30 minutos

Arquitectura de la Lógica de Negocio45 minutos

Tipos de Arquitectura25 minutos

Diseño

Arquitectura

Tipos

Introducción10 minutos

Diseño de la Lógica de Negocio30 minutos

Arquitectura de la Lógica de Negocio45 minutos

Tipos de Arquitectura25 minutos

¿Qué es un Modelo?

Visión simplificada de algo complejo utilizada en el

análisis y resolución de problemas

¿Por qué necesitamos modelar?

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

Introducción10 minutos

Diseño de la Lógica de Negocio30 minutos

Arquitectura de la Lógica de Negocio45 minutos

Tipos de Arquitectura25 minutos

SOLID DRYCommon

Closure

Common

Reuse

KISS YAGNIStable

Abstraction

Separation

of Concerns

Single Responsability Principle

Open Close Principle

Liskov Substitution Principle

Interface Segregation Principle

Dependency Inversion Principle

Don’t Repeat Yourself

Evitar duplicaciones

Aplicar abstracciones

Keep it Simple… stupid

Evitar complejizar el problema de forma

innecesaria

Un modelo simple es siempre más fácil de

mantener

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

Las clases que se usan juntas, se empaquetan

juntas

Apunta a la Modificabilidad

Permite facilidad de distribución y actualización

Las clases que se usan juntas, se empaquetan

juntas

Tener un balance entre lo abstracto y lo rígido

Ab

stra

cció

n

Estabilidad

rígido

inútil

Aplica a paquetes, clases y métodos

Separa las responsabilidades:

En un nuevo método

En una nueva dependencia

Las dependencias deben ser sobre abstracciones y

no sobre implementaciones concretas

Relacionado con Dependency Injection

Programática Declarativa

Introspectiva

Separación de responsabilidades mediante objetos

que se mandan mensajes entre sí

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” />

Puedo manipular la lógica utilizando Reflection

Modifica el comportamiento de mi aplicación

Me permite extender mi aplicación

Introducción10 minutos

Diseño de la Lógica de Negocio30 minutos

Arquitectura de la Lógica de Negocio45 minutos

Tipos de Arquitectura25 minutos

DDD Capas AspectosTransaction

Script

Hexagonal CQRS Workflow Cloud

Problemas al construir Software:

Construir Software complejo sin conocer el Dominio

Trabajar en conjunto con el experto de Negocio

Lenguaje Ubicuo

Traducir

Domain Expert

Technical Expert

Refinar

Acordar

Jerga

Jerga

Lenguaje Ubicuo

Domain Expert

Technical Expert

Lenguaje Ubicuo

Bounded

Context

Bounded

Context

Bounded

Context

BDD

TDD

Building Blocks

X

Conjunto de componentes reutilizables

Ayuda a aplicar el principio de SoC

Facilidad para identificar problemas

Elimina duplicación innecesaria

División lógica por funcionalidad

Presentación

Recursos

Negocio

Presentación

Aplicación

Dominio

Servicios

Persistencia

Transversal

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

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

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

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!!!

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

Presentación

Recursos

Negocio

Presentación

Recursos

Negocio

Presentación

Recursos

Negocio

Módulo A Módulo B Módulo C

Presentación

Recursos

Negocio

Transversal

Transversal

Presentación

Recursos

Negocio

Aspectos Típicos

Seguridad

Cache

Gestión de Configuraciones

Gestión de Excepciones

Logging

Organiza la lógica de negocio en procedimientos

Cada procedimiento maneja una petición de la

presentación

Presentación

Infraestructura

Servicios (Comandos)

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

DB

Mock DB

Domain

Dominio

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?

update read

Hago Algo Aplicación

Almacén de Datos

hace algo

hic

e a

lgo

dam

e

dato

s

Permite escalar por separado el modelo de

Lectura y Escritura

Aplicable a un Bounded Context

UI con respuestas rápidas

Dominio

Modelo

comando

Lectu

ra

Misma fuente de Datos

UI

esc

ritu

ra

Lectu

ra

Dominio

Modelo 1

comando

esc

ritu

ra

Lectu

ra

Distintos modelos de Datos

Lectu

ra

UI

Modelo 2

Dominio

Event Store

comando

esc

ritu

ra

Lectu

ra

Event Sourcing

Lectu

ra

UI

ModeloEventos

SaaS

PaaS

IaaS

Public Cloud

Private Cloud

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

Introducción10 minutos

Diseño de la Lógica de Negocio30 minutos

Arquitectura de la Lógica de Negocio45 minutos

Tipos de Arquitectura25 minutos

Desktop Web

Distribuidas Mobile

Abundan los recursos

Aplicaciones pesadas

Atadas al Sistema Operativo

Recursos escasos

Multiplataforma

Basado en estándares

Interfaces fluidas

Comunicaciones asincrónica

Múltiples servidores

Tecnologías que permitan la distribución

Transparencia en su uso

Cluster

Grid Computing

Interfaces Touch

Tiempo de Respuesta muy rápidos

Guidelines de diseño

Recursos más limitados

top related