Un linguaggio specifico di dominio (DSL) è un piccolo linguaggio ottimizzato per uno specifico dominio. Dato che un DSL è mirato a uno scopo preciso, può avere un grande impatto sulla produttività e sulla comprensione, permettendo a chi scrive di dichiarare cosa vuole anziché come.
Uno degli ambiti in cui vengono applicati sono le personalizzazioni e le configurazioni complesse.
Per esempio, il linguaggio DOT permette di scrivere una descrizione testuale di un grafo che viene poi trasformata in un'immagine da uno degli strumenti Graphviz (come dot).
Un grafo semplice si presenta così:
graph {
graph [bgcolor="yellow"]
a [color="red"]
b [color="blue"]
a -- b [color="green"]
}
Se metti questo contenuto in un file example.dot ed esegui dot example.dot -T png -o example.png, ottieni un'immagine example.png con un cerchio rosso e uno blu collegati da una linea verde su uno sfondo giallo.
Scrivi un linguaggio specifico di dominio simile al linguaggio dot di Graphviz.
Il nostro DSL è simile al linguaggio dot di Graphviz nel senso che verrà usato per creare strutture dati a grafo. Tuttavia, a differenza del linguaggio DOT, il nostro DSL sarà un DSL interno, da utilizzare solo nel nostro linguaggio.
Scopri di più sulla differenza tra DSL interni ed esterni.
In questo esercizio costruirai diverse struct usando il builder pattern.
In breve, questo pattern ti permette di suddividere la funzione di costruzione della struct, che contiene molti argomenti, in
diverse funzioni separate. Questo approccio ti dà la possibilità di ottenere una costruzione e una configurazione della struct compatte ma molto flessibili.
Puoi leggere di più nella pagina seguente.
Iscriviti a Exercism per imparare e padroneggiare Rust con 99 esercizi e il mentoring di persone reali, tutto gratis.