کتابخانه‌ها


Exercism هدفش آموزش تسلط بر نحوه‌ی نگارش، اصطلاحات و کتابخانه‌ی استاندارد زبان است. این تعریف عمداً به کتابخانه‌های بیرونی (غیرتوکار) اشاره نمی‌کند، چون آن‌ها زیر مهارت می‌گنجند. بنابراین تمرین‌ها باید، به‌جز چند استثنا، بدون استفاده از کتابخانه حل‌شدنی باشند.

دلایل پشتیبانی از کتابخانه‌ها

چند دلیل وجود دارد که چرا یک track ممکن است هنوز هم بخواهد از کتابخانه‌ها پشتیبانی کند:

  1. زبان یک کتابخانه‌ی استاندارد (بسیار) کمینه دارد. نمونه‌ای از چنین زبانی Rust است.
  2. کتابخانه قابلیت تست را اضافه می‌کند. نمونه‌ای از آن، کتابخانه‌ای است که از تست مبتنی بر ویژگی پشتیبانی می‌کند.
  3. تمرین را فقط می‌توان با استفاده از یک کتابخانه حل کرد. نمونه‌ای از چنین تمرینی تمرین lens-person است که در بیشتر زبان‌ها فقط با استفاده از یک کتابخانه حل می‌شود.

پشتیبانی از کتابخانه‌ها در test runner

چون test runner هنگام اجرا به اینترنت دسترسی ندارد، دانلود کتابخانه‌ها در زمان اجرا ممکن نیست. تنها راه‌حل این مشکل، نصب/دانلود کتابخانه‌ها در زمان ساخت است، جایی که شما واقعاً به اینترنت دسترسی دارید. در عمل، این یعنی باید کتابخانه‌ها را درون Dockerfile نصب/دانلود کنید.

برای نمونه، Dockerfile مربوط به test runner زبان Prolog کتابخانه‌ی date_time را نصب می‌کند:

RUN swipl pack install date_time -y

مستندات

اگر track شما از کتابخانه‌ها پشتیبانی می‌کند، باید در یک سند track مستند شود. لطفاً از سند exercises/shared/.docs/help.md هم (با استفاده از نشانی کاملش) به این سند پیوند بدهید.