اللغة الخاصة بمجال معين (DSL) هي لغة صغيرة مُحسّنة لمجال محدد. ولأنها موجّهة لمجال بعينه، فإنها قد تؤثر تأثيرًا كبيرًا في الإنتاجية والفهم، إذ تتيح للكاتب أن يُصرّح بـ_ماذا_ يريد بدلًا من كيف يريده.
ومن المجالات التي تُطبَّق فيها التخصيصات والإعدادات المعقّدة.
على سبيل المثال، تتيح لك لغة DOT كتابة وصف نصي لرسم بياني، ثم يُحوَّل هذا الوصف إلى صورة بواسطة إحدى أدوات Graphviz (مثل dot).
الرسم البياني البسيط يبدو هكذا:
graph {
graph [bgcolor="yellow"]
a [color="red"]
b [color="blue"]
a -- b [color="green"]
}
عند وضع هذا في ملف example.dot وتشغيل dot example.dot -T png -o example.png، نحصل على صورة example.png فيها دائرة حمراء ودائرة زرقاء يربط بينهما خط أخضر على خلفية صفراء.
اكتب لغة خاصة بمجال معين مشابهة للغة dot الخاصة بـ Graphviz.
لغة المجال الخاصة بنا مشابهة للغة dot الخاصة بـ Graphviz من حيث إنها ستُستخدم لإنشاء بنى بيانات الرسوم البيانية. لكن، بخلاف لغة DOT، ستكون لغة المجال الخاصة بنا لغة داخلية تُستخدم داخل لغتنا فقط.
تعرّف أكثر على الفرق بين لغات المجال الداخلية والخارجية.
يتوقع منك هذا التمرين بناء عدة هياكل باستخدام builder pattern.
باختصار، يسمح لك هذا النمط بتقسيم دالة إنشاء الهيكل، التي تحتوي على الكثير من الوسائط، إلى
عدة دوال منفصلة. ويمنحك هذا الأسلوب وسيلة لإنشاء الهياكل وتهيئتها بشكل مختصر ومرن
للغاية.
يمكنك قراءة المزيد عنه في الصفحة التالية.
سجّل في Exercism لتتعلّم وتتقن Rust عبر 99 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.