DOT DSL

DOT DSL

Media

Instrucciones

Un lenguaje específico de dominio (DSL) es un lenguaje pequeño optimizado para un dominio concreto. Como un DSL está enfocado a un dominio, puede mejorar enormemente la productividad y la comprensión, ya que permite a quien lo escribe declarar qué quiere en lugar de cómo.

Un área problemática 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 después se transforma en una imagen con alguna de las herramientas de Graphviz (como dot). Un grafo sencillo tiene este aspecto:

graph {
    graph [bgcolor="yellow"]
    a [color="red"]
    b [color="blue"]
    a -- b [color="green"]
}

Si guardas esto en un fichero example.dot y ejecutas dot example.dot -T png -o example.png, se crea una imagen example.png con un círculo rojo y otro azul unidos 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 tipo grafo. Sin embargo, a diferencia del lenguaje DOT, nuestro DSL será un DSL interno que solo se podrá usar en nuestro lenguaje.

Aprende más sobre la diferencia entre los DSL internos y externos.

Patrón Builder

Este ejercicio espera que construyas varias structs usando el builder pattern. En resumen, este patrón te permite dividir en varias funciones separadas la función de construcción de tu struct, que contiene un montón de argumentos. Este enfoque te da los medios para crear una construcción y configuración de structs compacta pero muy flexible. Puedes leer más sobre ello en la página siguiente.


Fuente

WikipediaEl enlace se abre en una nueva ventana o pestaña
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Rust Exercism

¿Listo para empezar DOT DSL?

Regístrate en Exercism para aprender y dominar Rust con 99 ejercicios y mentoría humana real, todo gratis.