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.

No hay comentarios:

Publicar un comentario