يوضّح هذا المستند كيفية إضافة تمرين تدريبي جديد.
أبسط طريقة للتحقق من التمارين التدريبية التي لم تُنفَّذ بعد هي الانتقال إلى صفحة بناء المسار (مثل 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
استخدم المخرجات للتحقق من أن كل شيء على ما يرام.
بمجرد أن يصبح كل شيء على ما يرام، يمكنك حينها إرسال طلب سحب إلى مستودع المسار.
قبل الإرسال، يُرجى قراءة دليل طلب السحب للمساهمين ودليل طلبات السحب.
تأكد من أن وصف طلب السحب يذكر التمرين المُضاف.