PDF de programación - Lógica de Negocio

Imágen de pdf Lógica de Negocio

Lógica de Negociográfica de visualizaciones

Publicado el 24 de Abril del 2018
1.597 visualizaciones desde el 24 de Abril del 2018
829,2 KB
16 paginas
Creado hace 10a (13/05/2013)
Introducción

Diseño de la Lógica de Negocio

Arquitectura de la Lógica de Negocio

Tipos de Arquitectura

10 minutos

30 minutos

45 minutos

25 minutos

Introducción

Diseño de la Lógica de Negocio

Arquitectura de la Lógica de Negocio

Tipos de Arquitectura

10 minutos

30 minutos

45 minutos

25 minutos

¿Qué es un Modelo?

Visión simplificada de algo complejo utilizada en el

análisis y resolución de problemas

13/05/2013

1

Diagrama de Deploy

Diagrama de Capas

i

n
ó
c
c
a
r
t
s
b
A

Diagrama de Clases y Secuencia

Unit Test

Código OO

Esquema de Base de Datos

BPM & Workflow

Data examples

Story test

Prototypes

DSL

Tecnología

Negocio

Introducción

Diseño de la Lógica de Negocio

Arquitectura de la Lógica de Negocio

Tipos de Arquitectura

10 minutos

30 minutos

45 minutos

25 minutos

SOLID

DRY

Common
Closure

Common

Reuse

KISS

YAGNI

Stable

Abstraction

Separation
of Concerns

Single Responsability Principle

Open Close Principle

Liskov Substitution Principle

Interface Segregation Principle

Dependency Inversion Principle

13/05/2013

2

DON’T REPEAT YOURSELF

KEEP IT SIMPLE…

Evitar duplicaciones

Aplicar abstracciones

Evitar complejizar el problema de forma innecesaria

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

YOU AIN’T GONNA NEED IT

Las clases que se usan juntas, se empaquetan

No añadir funcionalidad extra que no vamos a

juntas

utilizar

Desventajas de implementar algo “a futuro”

o Más tiempo de Testing

o Más tiempo de documentación

o Añadir funcionalidad extra, puede requerir añadir

más funcionalidad extra!

Apunta a la Modificabilidad

Permite facilidad de distribución y actualización

13/05/2013

3

Las clases que se usan juntas, se empaquetan

Tener un balance entre lo abstracto y lo rígido

juntas

inútil

i

n
ó
c
c
a
r
t
s
b
A

rígido

Estabilidad

Aplica a paquetes, clases y métodos

Separa las responsabilidades:





En un nuevo método

En una nueva dependencia

Programática

Declarativa

Introspectiva

13/05/2013

4

Separación de responsabilidades mediante objetos

Separa la lógica de negocio de aspectos intrusivos.

que se mandan mensajes entre sí

Parametriza fuera del código los componentes

arquitecturales.

Me concentro en el qué y no en el cómo.

<Button Width="102"

Height="31"
Click=“OnClick” />

[Required]
public void Email(string email)
{

this.Email = email;

}

Puedo manipular la lógica utilizando Reflection

Modifica el comportamiento de mi aplicación

Me permite contar con puntos de extensibilidad

Introducción

Diseño de la Lógica de Negocio

Arquitectura de la Lógica de Negocio

Tipos de Arquitectura

10 minutos

30 minutos

45 minutos

25 minutos

13/05/2013

5

DDD

Capas

Aspectos

Transaction

Script

Ports and
Adapters

CQRS

Workflow

Business

Rules

Problemas al construir Software:

o Construir Software complejo sin conocer el Dominio

o Trabajar en conjunto con el experto del negocio

Propone una serie de métodos para construir

software trabajando con el experto de domino

Es el dominio quien guía la solución

LENGUAJE

Principales conceptos:

o Ubiquitous Language

o Bounded Context

o Aggregates Roots

Domain
Expert

Jerga

Technical

Expert

Jerga

Traducir

Refinar

Acordar

13/05/2013

6

LENGUAJE UBICUO

BOUNDED CONTEXT

Domain
Expert

Lenguaje
Ubicuo

Technical

Expert

Cada contexto está optimizado para resolver un

problema específico

Permite tener sistemas distribuidos en lugar de un

gran sistema monolítico

BOUNDED CONTEXT

BUILDING BLOCKS

Domain
Expert

Bounded
Context

Lenguaje
Ubicuo

Bounded
Context

Bounded
Context

Technical

Expert

X

13/05/2013

7

BUILDING BLOCKS

Entidades:

o Identidad
o Mutables

Value Object

o No tienen identidad
o Inmutables

Aggregates:

o Compuesto por objetos
o Soportan operaciones de negocio
o Aggregate Root

División lógica por funcionalidad

Presentación

Negocio

Recursos

Conjunto de componentes reutilizables

Ayuda a aplicar el principio de SoC

Facilidad para identificar problemas

Elimina duplicación innecesaria

Transversal

13/05/2013

Presentación

Servicios

Aplicación

Dominio

Persistencia

8

Transversal

- Interfaz de Usuario
- MVC / MVP / MVVM

- Capa de Servicios Distribuidos
- Fachada de nuestra lógica
- REST / SOAP

- Coordina actividades de la Aplicación
- No incluye lógica de Negocio
- Coordina servicios de la capa de nivel inferior

- Aspectos

Horizontales

- Impactan en
toda la App.

- Favorece la
reutilización

- DI / AOP

Presentación

Servicios

Aplicación

Transversal

- Interfaz de Usuario
- MVC / MVP / MVVM

- Capa de Servicios Distribuidos
- Fachada de nuestra lógica
- REST / SOAP

- Coordina actividades de la Aplicación
- No incluye lógica de Negocio
- Coordina servicios de la capa de nivel inferior

- Aspectos

Horizontales

- Impactan en
toda la App.

- Favorece la
reutilización

- DI / AOP

Presentación

Servicios

Aplicación

- 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

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

Dominio

- Centraliza el acceso a los datos
- Desacopla la tecnología utilizada
- DAOs / Repositorios / ORM / DataMapper / ActiveRecord

Persistencia

- Centraliza el acceso a los datos
- Desacopla la tecnología utilizada
- DAOs / Repositorios / ORM / DataMapper / ActiveRecord

Persistencia

Transversal

Caching

Controller

Model

Presentación

View

Web
Services

DTOs

Servicios

Transversal

Caching

Controller

Model

Presentación

View

Web
Services

DTOs

Servicios

Security

Application Services

Aplicación

Security

Application Services

Aplicación

Logging

Domain Services

Logging
Logging
Logging

Domain Services

Entities

Rules

Dominio

Entities

Rules

Dominio

Repository Contracts

Repository Contracts

IoC

Repository

Core

IoC

Repository

Core

Persistencia

Aunque a veces encontramos esto!!!

Persistencia

13/05/2013

9

División lógica por módulos

Separa Responsabilidades y Dependencias

Presentación

Presentación

Presentación

Módulo A

Módulo B

Módulo C

Recursos

Recursos

Recursos

Negocio

Negocio

Negocio

Módulo A

Módulo B

Módulo C

Equipo A

Equipo B

Equipo C

Transversal

Transversal

Presentación

Negocio

Recursos

Presentación

Negocio

Recursos

13/05/2013

10

Aspectos Típicos

o Seguridad

o Cache

o Gestión de Configuraciones

o Gestión de Excepciones

o Logging

Organiza la lógica de negocio en procedimientos

Cada procedimiento maneja una petición de la

presentación

Presentación

Servicios (Comandos)

Infraestructura

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

13/05/2013

11

Domain

DB

Mock DB

Dominio

COMMAND QUERY SEPARATION

Es un principio que indica:

“Un método cambia el estado de un objeto o retorna

un valor, pero no ambos”

COMMAND
- Cambian el estado
- Retornan void

QUERIES
- Devuelven un resultado
- Retornan un tipo

13/05/2013

12

COMMAND QUERY RESPONSIBILITY SEGREGATION

COMMAND QUERY RESPONSIBILITY SEGREGATION

Existe para resolver un problema particular:

Utilizado solamente en dominios colaborativos donde

hay gran cantidad de personas modificando un conjunto

“Bloquear al usuario cuando se bloquean los datos“

pequeño de datos

Bloquear los datos es necesario, pero bloquear al

usuario no

COMMAND QUERY RESPONSIBILITY SEGREGATION

Permite escalar por separado el modelo de

¿Qué pasa si tenemos pocos productores pero muchos

Lectura y Escritura

consumidores?

¿Por que complejizar y comprometer performance por

transformaciones sin sentido?

Aplicable a un Bounded Context

UI con respuestas rápidas

13/05/2013

13

Escenarios “Reactivos”

minutos

horas
días

Aprobación
Requerida

Esperar

Aprobación

¿Aprobado?

Procesar

Notificar

ACTIVIDADES

Representan acciones o tareas:

o Leer de una Base de Datos

o Generar archivos

o Hacer FTP

o Llamar a un Web Service

o Etc.

MOTOR DE REGLAS

UNA REGLA (EN LENGUAJE TÉCNICO)

Permite definir las reglas de nuestro negocio de

Ej: “Cuando un cliente es del tipo Gold, entonces se le

forma centralizada

aplica un descuento del 10%”

Puedo cambiar el comportamiento del sistema

sin necesidad de modificarlo

when Customer( Type == “Gold”)

then discount = new Discount(10);

13/05/2013

14

UNA REGLA (IMPLEMENTADA COMO DSL)

Define en lenguaje natural el comportamiento de

la regla

Fácil de comunicar con experto del negocio

Cuando un cliente es Gold

Entonces tiene un descuento del 15%

Introducción

Diseño de la Lógica de Negocio

Arquitectura de la Lógica de Negocio

Tipos de Arquitectura

10 minutos

30 minutos

45 minutos

25 minutos

Desktop

Web

Distribuidas

Mobile

Abundan los recursos

Aplicaciones pesadas

Atadas al Sistema Operativo

13/05/2013

15

Múltiples servidores

Tecnologías que permitan la distribución

Transparencia en su uso

Cluster

Grid Computing

Recursos escasos

Multiplataforma

Basado en estándares

Interfaces fluidas

Comunicaciones asincrónica

Interfaces Touch

Tiempo de Respuesta muy rápidos

Guidelines de diseño

Recursos más limitados

13/05/2013

16
  • Links de descarga
http://lwp-l.com/pdf10613

Comentarios de: Lógica de Negocio (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad