Mostrando entradas con la etiqueta DDD. Mostrar todas las entradas
Mostrando entradas con la etiqueta DDD. Mostrar todas las entradas

viernes, 23 de octubre de 2009

Domain Driven Design Parte 2

 En la entrada anterior de este tema intente aterrizar algunas ideas respecto a lo que es el dominio, Aprovechando la reciente reunión de la Comunidad seguiré con el asunto.

Quedamos que el dominio es aquella situación del mundo real en la que el software llegara a aportar algún aspecto de mejora.


El dominio es el ambiente natural donde se desenvuelven los usuarios potenciales de nuestro software.

Un experto del Dominio es aquella persona que a desarrollado suficiente conocimiento acerca del Dominio que sabe cómo funciona éste y sabe operarlo, hacerlo funcionar.

Como desarrolladores de software enfrentamos el hecho de tener que aprender a comunicarnos con expertos de diversos Dominios, incluso siendo nosotros mismos especialistas en el Dominio del desarrollo de Software.



Hay un "choque de dominio"s en el momento en el que el Desarrollador-Analista esta frente a frente al Experto de algun Dominio.

Se da un choque entre el Experto del Dominio y el Desarrollador que debemos aprender a resolver mediante una de las recomendaciones de DDD y consiste en construir un Lenguaje Ubicuo.

Pero se me acabo el tiempo, eso lo veremos en la próxima entrada de este blog.

Saludos.

martes, 6 de octubre de 2009

Domain Driven Design Parte 1

Empezaremos una serie de artículos relacionados con Domain Driven Design, con la finalidad de introducir al tema del desarrollo de software a todos aquellos que quieran mejorar sus técnicas de desarrollo, o bien actualizarse con técnicas de primer nivel o incluso aprender a programar.

Empecemos por reconocer que hacer software es un Arte por lo cual no puede ser definido por teoremas y formulas en su totalidad, existen componentes “no exactos”. Sin embargo podemos descubrir principios y técnicas útiles para ser aplicadas en el proceso de construcción de software, pero probablemente nunca podremos establecer la ruta exacta que va desde un requerimiento del mundo real hasta el código que lo resuelve. De alguna manera el software siempre tendrá ese toque especial de quien lo codifica o lo diseña.

Durante los ultimo 20 años el diseño de software ha evolucionado notablemente y una de sus últimas cristalizaciones es el denominado Domain Driven Design (DDD) [1].
Para introducirnos al tema de DDD el primer concepto que hay que incluir en nuestro vocabulario es el de dominio.

¿Qué es el Dominio?

El dominio es toda aquella situación del mundo real que se pretenden mejorar, automatizar o solucionar. Estos procesos de negocio o problemas del mundo real en general, son el motor que mueve al desarrollo de software.
Esto es muy importante porque se refiere a que hacemos software porque queremos solucionar problemas del mundo real, porque queremos contribuir a los objetivos de una sociedad, empresa, familia, etc. Es decir el software es útil porque busca integrarse a los procesos de la vida cotidiana y facilitar o mejorar la forma en cómo se hace actualmente. Así que el diseñador de software debe aprender a estar en contacto con esa realidad!
Aquí cabe que nos preguntemos: ¿Como diseñadores y desarrolladores de software estamos en contacto con la realidad que nos rodea?

En los siguientes artículos, profundizaremos en temas que nos permitan ir modelando ese dominio para convertirlo en una solución de Software.

Saludos.


[1] .-Para una referencia completa ver el libro de Eric Evans “Domain-Driven Design: Tackling Complexity in the Heart of Software”, publicado por Addison-Wesley, ISBN: 0-321-12521-5.
Así como una introducción al tema en el Libro gratuito: “Domain Driven Design Quickly” de Abel Avram, en el cual se basan estos comentarios.

domingo, 27 de septiembre de 2009

Diseño Dirigido por el Dominio

En la Comunidad de Desarrolladores de Software de Aguascalientes profundizaremos en aspectos clave del desarrollo de software, buscando conocimiento aplicable a múltiples lenguajes y tecnologías. Uno de esos aspectos clave es el llamado Diseño Dirigido por el Dominio (DDD) el cual tiene dos premisas:
  1. Qué el diseño de dominios complejos debe basarse en un modelo.
  2. Qué para la mayoría de los proyectos de software el enfoque principal se debe basar en el dominio y la lógica del dominio, en oposición al uso de una tecnología en particular para su implementación. [1]
En la próxima reunión de la comunidad comentaremos más detalles sobre la aplicación de este enfoque para el desarrollo de software.

Puedes ir leyendo este libro para empezar: http://www.infoq.com/minibooks/domain-driven-design-quickly.

Saludos Amigos!!!