লাইব্রেরি


Exercism-এর লক্ষ্য হলো ভাষার সিনট্যাক্স, ইডিয়ম আর স্ট্যান্ডার্ড লাইব্রেরিতে সাবলীলতা শেখানো। এখানে স্পষ্টভাবে বাইরের (বিল্ট-ইন নয়) লাইব্রেরির কথা বলা হয় না, কারণ সেটি দক্ষতার আওতায় পড়ে। তাই কিছু ব্যতিক্রম ছাড়া অনুশীলনীগুলোকে লাইব্রেরি ব্যবহার না করেই সমাধান করা যায় এমন হতে হবে।

লাইব্রেরি সাপোর্ট করার কারণ

তবুও একটি ট্র্যাক কেন লাইব্রেরি সাপোর্ট করতে চাইতে পারে, তার কয়েকটি কারণ আছে:

  1. ভাষাটির স্ট্যান্ডার্ড লাইব্রেরি (খুবই) ছোট। এমন একটি ভাষার উদাহরণ হলো Rust.
  2. লাইব্রেরিটি টেস্টিং ফাংশনালিটি যোগ করে। উদাহরণস্বরূপ, এমন একটি লাইব্রেরি যা প্রপার্টি-বেসড টেস্টিংয়ের সাপোর্ট যোগ করে।
  3. অনুশীলনীটি কেবল একটি লাইব্রেরি ব্যবহার করেই সমাধান করা যায়। এমন একটি অনুশীলনীর উদাহরণ হলো lens-person অনুশীলনী, যা বেশিরভাগ ভাষায় কেবল একটি লাইব্রেরি ব্যবহার করেই সমাধান করা সম্ভব।

টেস্ট রানারে লাইব্রেরি সাপোর্ট করা

টেস্ট রানার চলার সময় ইন্টারনেটে অ্যাক্সেস পায় না, তাই রান টাইমে লাইব্রেরি ডাউনলোড করা সম্ভব নয়। এই সমস্যার একমাত্র সমাধান হলো বিল্ড টাইমে লাইব্রেরি ইনস্টল/ডাউনলোড করা, যখন আপনার ইন্টারনেটে অ্যাক্সেস থাকেই। বাস্তবে এর অর্থ হলো, আপনাকে Dockerfile-এর ভেতরেই লাইব্রেরি ইনস্টল/ডাউনলোড করতে হবে।

উদাহরণ হিসেবে, Prolog টেস্ট রানারের Dockerfile date_time লাইব্রেরিটি ইনস্টল করে:

RUN swipl pack install date_time -y

ডকুমেন্টেশন

আপনার ট্র্যাক যদি লাইব্রেরি সাপোর্ট করে, তবে এটি একটি ট্র্যাক ডক-এ ডকুমেন্ট করা উচিত। অনুগ্রহ করে exercises/shared/.docs/help.md ডকুমেন্ট থেকেও (এর সম্পূর্ণ URL ব্যবহার করে) এই ডকুমেন্টে লিংক দিন।