این سند توضیح میدهد چگونه یک تمرین عملی جدید اضافه کنید.
سادهترین راه برای بررسی اینکه کدام تمرینهای عملی هنوز پیادهسازی نشدهاند این است که به صفحهی ساخت مسیر بروید (برای مثال https://exercism.org/tracks/csharp/build) و بخش «تمرینهای عملی» را بررسی کنید.
دادههای صفحهی ساخت روزی یک بار بهروزرسانی میشود.
میتوانید با اجرای اسکریپت bin/add-practice-exercise (منبع) از پوشهی ریشهی مسیر، بهسرعت ساختار اولیهی یک تمرین عملی جدید را ایجاد کنید:
bin/add-practice-exercise <exercise-slug>
بهصورت اختیاری، میتوانید میزان سختی تمرین (با -d) و/یا نام کاربری GitHub نویسنده (با -a) را نیز مشخص کنید:
bin/add-practice-exercise -d 3 -a foobar <exercise-slug>
اگر روی مخزن یک مسیر کار میکنید که این فایل را ندارد، میتوانید با استفاده از پیوند منبع بالا آن را در مخزن خود کپی کنید.
پس از ایجاد فایلهای ساختار اولیه، باید کارهای زیر را انجام دهید:
.meta/config.json تمرین:
authors اضافه کنیدconfig.json مسیر:
practices اضافه کنید (فقط زمانی لازم است که مسیر تمرینهای مفهومی داشته باشد)prerequisites اضافه کنید (فقط زمانی لازم است که مسیر تمرینهای مفهومی داشته باشد)افزودن تستها بخش کلیدی افزودن یک تمرین است. بهطور کلی، هنگام افزودن تست برای یک تمرین عملی دو گزینه وجود دارد:
canonical-data.json تمرین که در مخزن problem-specifications قرار دارد.https://exercism.org/exercises/<slug> بروید تا ببینید کدام مسیرها یک تمرین مشخص را پیادهسازی کردهاند).گزینهی دوم میتواند بهویژه جذاب باشد، چون بهسرعت نتیجه میدهد. با این حال، در نظر داشته باشید که باید پیادهسازی را متناسب با مسیر خود تنظیم کنید. برای مثال، بعضی مسیرها از کلاس استفاده نمیکنند و فقط با توابع کار میکنند. اما اگر مسیر شما معمولاً با اشیاء کار میکند، باید پیادهسازی را طوری تغییر دهید که بهترین تناسب را با مسیرتان داشته باشد.
برخی مسیرها از یک تولیدکنندهی تست استفاده میکنند تا فایل(های) تست یک تمرین را بهصورت خودکار (دوباره) تولید کنند. لطفاً مستندات مسیر را بررسی کنید تا ببینید آیا تولیدکنندهی تستی وجود دارد و اگر بله، چگونه باید از آن استفاده کرد.
برای اطمینان از اینکه میتوان کدی نوشت که تستها را پاس کند، باید یک پیادهسازی نمونه اضافه شود.
کد لازم نیست ایدیوماتیک باشد، فقط باید تستها را پاس کند.
میتوانید با اجرای اسکریپت bin/verify-exercises (منبع) از پوشهی ریشهی مسیر، بررسی کنید که پیادهسازی نمونه همهی تستها را پاس میکند:
bin/verify-exercises <exercise-slug>
از خروجی استفاده کنید تا بررسی کنید که پیادهسازی نمونه همهی تستها را پاس میکند.
اگر روی مخزن یک مسیر کار میکنید که این فایل را ندارد، میتوانید با استفاده از پیوند منبع بالا آن را در مخزن خود کپی کنید.
در پشت صحنه، اسکریپت bin/verify-exercises چند کار انجام میدهد:
فایل(های) پیادهسازی اسکلت، نقطهی شروعی برای دانشآموزان فراهم میکنند.
توصیه میکنیم فایلهای اسکلت کمترین مقدار کد را داشته باشند، بهطوری که:
در عمل، این یعنی تعریف توابع/متدهایی که مجموعهی تست آنها را تست میکند. مسیرها در نحوهی راهاندازی این کد آزادند، تا زمانی که مطمئن شوند کد اسکلت در ابتدا همهی تستها را شکست میدهد.
Python:
def two_fer(name):
pass
Kotlin:
fun twofer(name: String): String {
TODO("Implement the function to complete the task")
}
آخرین مرحله اجرای لینتر است تا بررسی کنید که فایلهای (پیکربندی) مسیر از نظر نحوهی نگارش و از نظر معنایی بهدرستی ساختار یافتهاند.
اول، مطمئن شوید که آخرین نسخهی configlet را دارید، با اجرای این دستور:
bin/fetch-configlet
سپس لینتر را با اجرای این دستور اجرا کنید:
bin/configlet lint
از خروجی استفاده کنید تا مطمئن شوید همهچیز درست است.
وقتی همهچیز درست بود، میتوانید یک Pull Request ارسال کنید به مخزن مسیر.
پیش از ارسال، لطفاً راهنمای Pull Request مشارکتکنندگان و راهنمای Pull Request را بخوانید.
مطمئن شوید که توضیحات PR تمرینی را که اضافه میشود ذکر کرده است.