Un lenguaje específico de dominio (DSL) es un lenguaje pequeño optimizado para un dominio específico. Como un DSL está enfocado, puede mejorar mucho la productividad y la comprensión, ya que permite a quien lo escribe declarar qué quiere en lugar de cómo.
Una de las áreas problemáticas donde se aplican son las personalizaciones y configuraciones complejas.
Por ejemplo, el lenguaje DOT te permite escribir una descripción textual de un grafo que luego se transforma en una imagen con alguna de las herramientas de Graphviz (como dot).
Un grafo simple se ve así:
graph {
graph [bgcolor="yellow"]
a [color="red"]
b [color="blue"]
a -- b [color="green"]
}
Si pones esto en un archivo example.dot y ejecutas dot example.dot -T png -o example.png, se crea una imagen example.png con un círculo rojo y uno azul conectados por una línea verde sobre un fondo amarillo.
Escribe un lenguaje específico de dominio similar al lenguaje dot de Graphviz.
Nuestro DSL se parece al lenguaje dot de Graphviz en que se usará para crear estructuras de datos de grafos. Sin embargo, a diferencia del lenguaje DOT, nuestro DSL será un DSL interno que se usará solo en nuestro lenguaje.
Aprende más sobre la diferencia entre los DSL internos y externos.
Este ejercicio espera que construyas varios structs usando el builder pattern.
En pocas palabras, este patrón te permite dividir en varias funciones separadas la función de construcción de tu struct, que contiene muchos argumentos. Este enfoque te da los medios para lograr una construcción y configuración de structs compacta pero muy flexible.
Puedes leer más sobre esto en la siguiente página.
Regístrate en Exercism para aprender y dominar Rust con 99 ejercicios y mentoría humana real, todo gratis.