Está en la página 1de 3

06/03/2015

DannaCapelln
Mat:111025
ID:1045782

ControldeLectura
DomainDrivenDesign

El Diseo Guiado por el Dominio (DDD) es una forma de abordar proyectos basando el
diseo en modelos, cuando la complejidad reside en el dominio del mismo. Entindase
dominio como
el rea temtica a la que el usuario aplica un programa y un modelo un
sistema de abstracciones que describe aspectos de un dominio seleccionado y se puede
utilizar para resolver problemas relacionados con ese dominio. En otras palabras, DDD
insiste en queparahacerbuensoftwareesnecesariosaber biendequsetrataelnegocio
para el que ser desarrollado. El no hacerlo podra hacer que la solucin de software no
cumpla con los requerimientos especificados y no tan especificados. El software tiene que
modelareldominio.

El modelo eslaesenciadelsoftware,peronecesitamoscrearunaformadecomunicarlo.Hay
diferentes formas dehacerlo.Unaesdeformagrfica:diagramas, casosdeuso,dibujos,etc.
Otra es escribiendo nuestra visin del dominio y otra es crear nuestro propio lenguaje para
comunicarcuestionesespecficassobreeldominio.

LaimplementacindeDDDproveemuchosbeneficiostecnicosperopuedetenerunalto
costo,esporestoquedebeserutilizadosoloadominioscomplejosquenopuedanser
manejadosdeotraformamsconveniente.

ObjetivosPrincipales

DDDseplanteacomoobjetivos:

Encontrar un modelo rico y destilarlo con ayuda del conocimiento del equipo. Un
modelo es nuestra representacin interna dominio. Se requiere crearunaabstraccin
deldominioconayudadelosexpertosenelmismo.
Tener unmismolenguajetantoenelnegociocomoenelcdigo.Unproyectoenfrenta
serios problemas cuando el equipo no comparte un mismo lenguaje. Losexpertosen
el dominio tiene su jerga y los del equipo tcnico tambin. Uno de los principios
centrales de DDD es usar un lenguaje basado en el modelo, ya que el modelo es el
lugar donde el software y el dominio se conocen. A este lenguaje se le denomina
Lenguaje Ubicuoyconectatodaslaspartesdeldiseo ycrealaspremisasparaque
el equipo funcione adecuadamente.Cabemencionarquelacreacindeeste lenguaje

no es instantnea. Tomar tiempo y ser corregido constantemente normalmente


cadavezqueseanecesariodesambiguartrminos.
Alinear eldiseoconelmodelo.Crearclasesparalosconceptoscorrespondientesdel
dominio sea hace un mapeo entre el modelo y el cdigo, por ende tambin entre el
lenguaje y el cdigo. Esto es muy til ya que hace que el cdigo sea ms legible y
permitereproducirelmodelo.

ElementosFundamentales

Existenartefactosparaexpresar,crearyrepararmodelosdedominio:

Entidad:
Un objeto que no est definido por sus atributos, sino ms bienpor un hilo
de continuidad y su identidad. Unobjetodebeserdiferenciadodeotroinclusocuando
tienen los mismos atributos ya que una identidad equivocada se desencadenar en
corrupcin de la data. Una forma de evitar esto es crear una nica identidad para
cadaobjeto

Valor del objeto:


Un objeto que contiene atributos, pero no tiene identidad
conceptual. Este se usa para describir cierto aspectos del dominio. Como notienen
identidad los valores de objeto pueden ser fcilmente creados o descartados. Esto
simplificabastanteeldiseo.

Hay una regla de oro respecto a los valores de objeto: si un valor de objeto es
compartido,debeserinmutable.

Un valor de objeto puede contener otro valor deobjetoeinclusocontenerreferencias


aentidades.

Service: Cuando una operacin no pertenececonceptualmenteacualquierobjeto,se


debedeclararcomounservicio.Unserviciotiene3caractersticas:
1. La operacin desempeada por el servicio se refiere a un concepto del
dominioquenaturalmentenoperteneceaunaentidadoaunvalordeobjeto.
2. Laoperacindesempeadaserefiereaotrosobjetoseneldominio.
3. Laoperacinnoposeeestado.

Mdulos:
Son usados como un mtodo para organizar conceptos y tareas
relacionadas con el objetivo de reducir la complejidad. Es ms fciltener una visin
panormica de un modelo de gran tamao mirando los mdulos que contiene y la
relacinentrelosmismos.

Aggregate: Una coleccin de objetos que estn unidosporunaentidadraz,tambin


conocida como una raz agregada, que contiene referencia a cada objeto agregado
perocadaobjetoslocontienelareferenciadesuraz.


Factory: se utiliza paraencapsularlainformacinrequeridaalahoradecrearobjetos
de dominio.Son muy tiles para crear Aggregates y permiten que las
implementacionesdealmacenamientoalternativospuedenintercambiarsefcilmente.

Repository:
su propsito es encapsular toda la lgica necesitada para obtener
referencias de objetos. Esto para evitar que los objetos del dominio tengan que lidiar
con la infraestructura para obtener referencias a otros objetos del dominio, de este
modo,laobtienenenelrepositorioyelmodeloconservasuclaridadyenfoque.

ConceptosdeArquitecturadeSoftware
AlgunosbuildingblocksdelDiseoGuiadoporModelosquehemostratadoenclaseson:
Arquitecturaencapas,ServiciosyMdulos.

Fuentes:
DomainDrivenDesignQuickly,ASummaryofEricEvansDomainDrivenDesign.
DDDCommunity
http://dddcommunity.org/learningddd/what_is_ddd/
CasodeEstudio,SchoolStartupSystemHitstheMark,dddcommunity.org
http://dddcommunity.org/wpcontent/uploads/files/pdf_articles/Tony_Canty_Labatt_Fo
od_2012.pdf
Domaindrivendesign,Wikipedia
DDDParte2:LosComponentesFundamentalesdeunModeloGuiadoporel
Dominio#1,Blogspot
http://elblogdelfrasco.blogspot.com/2009/03/dddparte2loscomponentes.html
http://en.wikipedia.org/wiki/Domaindriven_design
DomainDrivenDesign,Blogspot
http://tratandodeentenderlo.blogspot.com/2013/08/domaindrivendesign.html

También podría gustarte