Бібліотеки


Exercism має на меті навчити вільного володіння синтаксисом, ідіомами та стандартною бібліотекою мови. Тут свідомо не йдеться про зовнішні (не вбудовані) бібліотеки, адже це належить до професійного володіння. Тому вправи, за небагатьма винятками, мають розвʼязуватися без використання бібліотек.

Причини підтримувати бібліотеки

Є кілька причин, чому трек усе ж може захотіти підтримувати бібліотеки:

  1. Мова має (дуже) мінімальну стандартну бібліотеку. Приклад такої мови - Rust.
  2. Бібліотека додає функціональність для тестування. Приклад - бібліотека, яка додає підтримку тестування на основі властивостей.
  3. Вправу можна розвʼязати лише за допомогою бібліотеки. Приклад такої вправи - вправа lens-person, яку в більшості мов можна розвʼязати лише за допомогою бібліотеки.

Підтримка бібліотек у тестовому раннері

Оскільки під час роботи тестовий раннер не має доступу до інтернету, завантажити бібліотеки під час виконання неможливо. Єдине рішення цієї проблеми - встановлювати чи завантажувати бібліотеки під час збирання, коли доступ до інтернету є. На практиці це означає, що бібліотеки потрібно встановити чи завантажити в самому Dockerfile.

Наприклад, Dockerfile тестового раннера Prolog встановлює бібліотеку date_time:

RUN swipl pack install date_time -y

Документація

Якщо трек підтримує бібліотеки, це варто задокументувати в документації треку. Також варто додати посилання на цей документ (за повною URL-адресою) з документа exercises/shared/.docs/help.md.