پیاده‌سازی ابزارهای بیشتر


بعد از راه‌اندازی مسیر با ۲۰ تمرین نخست یا بیشتر و یک Test Runner، تمرکز باید به پیاده‌سازی ابزارهای بیشتر برای مسیر معطوف شود.

ابزارهای مسیر دو نوع‌اند:

  • تولید: نقش کلیدی در تجربه‌ی یادگیری آن زبان ایفا می‌کنند
  • نگهداری: به نگهداری مسیر کمک می‌کنند

ابزارهای تولید

در حال حاضر سه ابزار برای تولید وجود دارد:

  • Test Runners: تست‌های یک تمرین را روی کد دانشجو اجرا می‌کند. (الزامی)
  • Representers: یک بازنمایی نرمال‌شده از راه‌حل می‌سازند (اختیاری)
  • Analyzers: ارسال‌های دانشجو را به‌صورت خودکار ارزیابی می‌کنند و بازخوردی به سبک مربی ارائه می‌دهند. (اختیاری)

ابزارهای نگهداری

برای کمک به نگهداری مسیر، می‌توان ابزارهای زیر را هم ساخت:

  • Test Generators: تست‌های یک تمرین و رابط کد دانشجو را به‌صورت خودکار تولید یا به‌روزرسانی می‌کند. (اختیاری)

کدام ابزار را پیاده‌سازی کنیم؟

ابزارهای تولید از ابزارهای نگهداری مهم‌ترند. در این مرحله باید یک Test Runner پیاده‌سازی کرده باشید (اگر این کار را نکرده‌اید، مستندات ساخت Test Runner را ببینید).

پس از ساخت Test Runner، ابزار بعدی که باید روی آن کار کنید Representer است. اهداف Representer و Analyzer تا حدی با هم هم‌پوشانی دارند، اما توصیه می‌کنیم به دلایل زیر ابتدا Representer را بسازید:

  • پیاده‌سازی Representers معمولاً (بسیار) ساده‌تر است
  • Representers چون مربیان را توانمند می‌کنند، می‌توانند تأثیر بسیار بیشتری بر بار مربیگری بگذارند تا Analyzers
  • Representers به همه‌ی تمرین‌ها مربوط می‌شوند، در حالی که Analyzers معمولاً تمرین‌های مشخصی یا زیرمجموعه‌ای از آن‌ها را هدف می‌گیرند

برای شروع ساخت Representer، سند ساخت Representer از صفر را ببینید.

در پایان، بعد از پیاده‌سازی Representer، آخرین ابزاری که باید بسازید Analyzer است. برای شروع ساخت Analyzer، سند ساخت Analyzer از صفر را ببینید.

در این مرحله، احتمالاً باید تمرکز را دوباره به افزودن تمرین‌های بیشتر معطوف کنید. برای سرعت بخشیدن به افزودن تمرین‌های جدید، ساختن یک Test Generator را در نظر بگیرید.

پیاده‌سازی

ابزارهای مسیر معمولاً (بیشتر) با زبان همان مسیر نوشته می‌شوند.

Caution

هرچند می‌توانید از زبان‌های دیگر استفاده کنید، هر زبان اضافه‌ای نگهداری یا مشارکت در مسیر را سخت‌تر می‌کند. بنابراین توصیه می‌کنیم تا جای ممکن از زبان همان مسیر استفاده کنید، چون نگهداری و مشارکت را آسان‌تر می‌کند.

استقرار

ابزارهای تولید در قالب یک کانتینر Docker بسته‌بندی و اجرا می‌شوند. ایمیج‌های Docker ابزارها به‌صورت خودکار با یک گردش‌کار GitHub Actions مستقر می‌شوند.

ابزارهای نگهداری مستقر نمی‌شوند.