Ubiquitous Language - jahurtadod/domain-driven-design GitHub Wiki
¿Que es el Ubiquitous Language?
El Lenguaje Ubicuo es un lenguaje de equipo compartido. Lo comparten tanto los expertos en dominios como los desarrolladores. De hecho, es compartido por todos los miembros del equipo del proyecto. No importa tu papel en el equipo, ya que estás en el equipo utilizas el Lenguaje Ubicuo del proyecto.
Claramente es la jerga usada por los expertos en dominios. (NO)
El Lenguaje Ubicuo es un lenguaje compartido desarrollado por el equipo compuesto tanto por expertos en la materia como por desarrolladores de software.
Naturalmente, los expertos en dominios tienen una gran influencia en el Lenguaje porque conocen mejor esa parte del negocio y pueden estar influenciados por los estándares de la industria. Sin embargo, el Lenguaje está más centrado en cómo piensa y opera el propio negocio. Además, muchas veces dos o más expertos en dominios no están de acuerdo en los conceptos y términos, y en realidad se equivocan en algunos porque no han pensado en todos los casos anteriores. Así, mientras los expertos y los desarrolladores trabajan juntos para elaborar un modelo del dominio, utilizan la discusión con consenso y compromiso para lograr el mejor lenguaje para el proyecto. El equipo nunca se compromete con la calidad del lenguaje, sólo en los mejores conceptos, términos y significados. El consenso inicial es Sin embargo, no es el final. El lenguaje crece y cambia con el tiempo como pequeño y grande se logran avances, como cualquier otro idioma vivo.
¿Cómo se captura este lenguaje ubicuo?
- Dibujar imágenes del dominio físico y conceptual y etiquetarlas con nombres y acciones. Estos dibujos son en su mayoría informales, pero pueden contener algunos aspectos del modelado formal de software. Incluso si tu equipo hace algunos modelado formal con el Lenguaje de Modelado Unificado (UML), se quiere evitar cualquier tipo de ceremonia que atasque las discusiones y ahogue la creatividad del Lenguaje definitivo que se busca.
- Crear un glosario de términos con definiciones simples. Enumerar los términos alternativos, incluyendo las que son prometedoras y las que no funcionaron, y por qué. Al incluir las definiciones, no puedes evitar el desarrollo de definiciones reutilizables frases para el Lenguaje porque se le obliga a escribir en el Lenguaje del dominio.
- Si no te gusta la idea de un glosario, aún así captura algún tipo de documentación que incluya los dibujos informales de importantes conceptos de software. Una vez más, el objetivo aquí es forzar a que salgan a la superficie términos y frases adicionales del Lenguaje.
- Ya que solo uno o unos pocos miembros del equipo pueden capturar el glosario u otros documentos escritos, vuelve a marcar el círculo con el las frases resultantes. No siempre, si es que alguna vez, estarás de acuerdo con toda la lingüística capturada, así que sé ágil y prepárate para editar mucho.