একটি ডোমেইন স্পেসিফিক ভাষা (DSL) হলো নির্দিষ্ট একটি ডোমেইনের জন্য অপ্টিমাইজ করা ছোট একটি ভাষা। যেহেতু একটি 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 নামের একটি ছবি তৈরি হয়, যেখানে হলুদ ব্যাকগ্রাউন্ডে একটি সবুজ রেখায় যুক্ত লাল ও নীল বৃত্ত থাকে।
Graphviz dot ভাষার মতো একটি ডোমেইন স্পেসিফিক ভাষা লিখুন।
আমাদের DSL Graphviz dot ভাষার মতোই, কারণ আমাদের DSL গ্রাফ ডেটা স্ট্রাকচার তৈরি করতে ব্যবহৃত হবে। তবে DOT ভাষার বিপরীতে, আমাদের DSL হবে একটি ইন্টারনাল DSL, যা শুধু আমাদের নিজেদের ভাষায় ব্যবহারের জন্য।
ইন্টারনাল ও এক্সটার্নাল DSL-এর পার্থক্য সম্পর্কে আরও জানুন।
এই অনুশীলনীতে builder pattern ব্যবহার করে কয়েকটি struct তৈরি করার প্রত্যাশা করা হয়।
সংক্ষেপে, এই প্যাটার্নটি আপনাকে আপনার struct-এর কনস্ট্রাকশন ফাংশন, যাতে অনেক আর্গুমেন্ট থাকে, সেটিকে কয়েকটি আলাদা ফাংশনে ভাগ করার সুযোগ দেয়। এই পদ্ধতি আপনাকে সংক্ষিপ্ত কিন্তু অত্যন্ত নমনীয় struct কনস্ট্রাকশন ও কনফিগারেশন গড়ে তোলার উপায় দেয়।
এটি সম্পর্কে আরও জানতে এই পৃষ্ঠাটি দেখুন।
Exercism-এ সাইন আপ করুন, Rust ট্র্যাকের 99টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।