Articles

¿Apa itu Ubiquitous Language dalam Domain-Driven Design (DDD)? | Teddy Aryono

Perhatikan diagram dan percakapan berikut. Percakapan ini terjadi antara business person (user) dengan developer tentang sebuah sistem informasi kargo.

Percakapan 1 – Minimal Abstraction of the Domain

User 😊 : So when we change the customs clearance point, we need to redo the entire routing plan.

Developer 🤓 : Right. Borraremos todas las filas de la tabla de envíos con ese id de carga, luego pasaremos el origen, el destino y el nuevo punto de despacho de aduanas al Servicio de Rutas, y éste volverá a poblar la tabla. Tendremos que tener un booleano en el Cargo para saber que hay datos en la tabla de envíos.

😊 : ¿Borrar las filas? OK, lo que sea. De todas formas, si antes no teníamos ningún punto de despacho de aduanas, tendremos que hacer lo mismo.

🤓 : Claro, cada vez que cambiemos el origen, el destino o el punto de despacho de aduanas (o introduzcamos uno por primera vez), comprobaremos si tenemos datos del envío y entonces los borraremos y luego dejaremos que el Servicio de Rutas los regenere.

😊 : Por supuesto, si el antiguo despacho de aduanas resulta ser el correcto, no querremos hacer eso.

🤓 : Oh, no hay problema. Es más fácil hacer que el Servicio de Rutas rehaga las cargas y descargas cada vez.

😊 : Sí, pero es un trabajo extra para nosotros hacer todos los planes de apoyo para un nuevo itinerario, así que no queremos redirigir a menos que el cange lo requiera.

🤓 : Ugh. Bueno, entonces, si está entrando en un punto de despacho de aduanas por primera vez, tendremos que consultar la tabla para encontrar el antiguo punto de despacho de aduanas derivado, y luego compararlo con el nuevo. Entonces sabremos si tenemos que rehacerlo.

😊 : No tendrás que preocuparte de esto en origen o destino, ya que el itinerario siempre cambiaría entonces.

🤓 : Bien. No lo haremos.

Sekarang perhatikan diagram dan percakapan berikut. Esto es lo que se llama un diagrama, pero también es lo que se llama una lengua (kosakata).

Percakapan 2 – Domain Model Enriched to Support Discussion

😊 : Así que cuando cambiamos el punto de despacho de aduanas, tenemos que rehacer todo el plan de enrutamiento.

🤓 : Correcto. Cuando cambie cualquiera de los atributos de la Especificación de Ruta, borraremos el antiguo Itinerario y pediremos al Servicio de Rutas que genere uno nuevo basado en la nueva Especificación de Ruta.

😊 : Si antes no habíamos especificado ningún punto de despacho de aduanas, tendremos que hacerlo al mismo tiempo.

🤓 : Claro, cada vez que cambie algo de la Especificación de Ruta, regeneraremos el Itinerario. Eso incluye introducir algo por primera vez.

😊 : Por supuesto, si el antiguo despacho de aduanas resulta ser el correcto, no querríamos hacer eso.

🤓 : Oh, no hay problema. Es más fácil hacer que el servicio de rutas rehaga el itinerario cada vez.

😊 : Sí, pero es un trabajo extra para nosotros hacer todos los planes de apoyo para un nuevo itinerario, por lo que no queremos redirigir a menos que el cambio lo requiera.

🤓 : Oh. Entonces tendremos que añadir alguna funcionalidad a la especificación de la ruta. Entonces, cada vez que cambie algo en la Especificación, veremos si el Itinerario sigue satisfaciendo la Especificación. Si no lo hace, haremos que el Servicio de Rutas regenere el Itinerario.

😊 : No tendrás que preocuparte de esto en el origen o en el destino, ya que el Itinerario siempre cambiaría entonces.

🤓 : Bien, pero será más sencillo para nosotros simplemente hacer la comparación cada vez. El itinerario sólo se generará cuando la especificación de la ruta ya no se satisfaga.

Gambar dibawah ini mengilustrasikan domain experts dan software developers yang sedang berdiskusi. Los desarrolladores de software son los que más se acercan a la tecnología, mientras que los expertos en la materia son los que más se acercan a los usuarios, o los que se acercan a las empresas.

Los expertos en el dominio (que son personas de negocios/usuarios) tienen conocimiento de la jerga que se utiliza en el desarrollo de software, pero también tienen conocimiento de la jerga que se utiliza en el desarrollo de software.

Por otra parte, los desarrolladores no han podido utilizar la jerga del desarrollo de software, sino que también han aprendido a utilizar la jerga mínima de los expertos en la materia (en este caso, los desarrolladores han aprendido la jerga mínima de los países en desarrollo).

En esta situación, el lenguaje omnipresente se difunde, por lo que los expertos en el dominio y los desarrolladores pueden utilizar un tipo de lenguaje que se ha utilizado para que los usuarios puedan utilizarlo (jerga o lenguaje). El lenguaje actual se encuentra en la parte más importante, es decir, la especificación de la ruta se encuentra en la parte más importante de origin, destination y custom clearance point (el diagrama).

El diagrama de Venn es una ilustración que muestra el lenguaje universal.