Reference OS v8 5 دقائق قراءة ١ يوليو ٢٠٢٦ informational: شرح أداة تقنية جديدة وكيفية تجربتها عملياً OpenLeetCode: دليل عملي لتشغيل اختبارات LeetCode محلياً مع مستودع مفتوح المصدر ستتعلم كيفية تثبيت…

Show HN: Openleetcode – LeetCode runner where tests live in the repo
اختر القسم الذي تحتاجه الآن
الفكرة التي تمنع التسرع
تعتقد أن مشاريع GitHub الجديدة لا تصلح إلا للمطورين المتقدمين؟ لكن OpenLeetCode يثبت العكس: أداة بسيطة تتيح لك تشغيل اختبارات LeetCode محلياً دون اتصال بالإنترنت.
قبل أن تطبق، اعرف أين تقف بالضبط
لا تعتمد على الانطباع؛ اختر مؤشراً تراجعه
ظهر مشروع OpenLeetCode مؤخراً على Hacker News كأداة تسمح بتشغيل اختبارات LeetCode محلياً مع بقاء الاختبارات في المستودع. بدلاً من الاعتماد على منصة LeetCode فقط، يمكنك الآن تشغيل الاختبارات على جهازك، وتعديلها، ومشاركتها مع فريقك. هذا الدليل يشرح لك كيفية تثبيت الأداة وتشغيلها خطوة بخطوة، مع توضيح الأخطاء الشائعة وبدائلها.
ملاحظة: README المشروع غير واضح تماماً، لذا الخطوات هنا تقريبية بناءً على بنية المشروع. سنشير إلى النقاط الغامضة ونقدم حلولاً عملية.
OpenLeetCode هو أداة سطر أوامر (CLI) مفتوحة المصدر تسمح لك بتشغيل اختبارات LeetCode محلياً. الفكرة: بدلاً من كتابة الحل في موقع LeetCode وانتظار التحقق، يمكنك كتابة الحل في ملف على جهازك، وإضافة اختباراتك الخاصة، ثم تشغيل الأداة لترى النتيجة فوراً. الاختبارات تكون في مستودع GitHub، مما يسهل مشاركتها مع الفريق.
من يحتاجه: المطورون الذين يفضلون العمل محلياً، طلاب علوم الحاسب الذين يريدون تتبع تقدمهم، فرق العمل التي ترغب في مشاركة اختبارات موحدة.
من لا يحتاجه: من يكتفي بحل المشاكل على موقع LeetCode فقط، أو من يبحث عن منصة متكاملة مع دروس فيديو.
ملاحظة: README المشروع لا يوضح خطوات التثبيت بوضوح. بناءً على بنية المشروع، إليك الخطوات التقريبية:
git clone https://github.com/therepanic/openleetcode.gitcd openleetcodenpm installnpm link لتتمكن من تشغيل الأمر openleetcode من أي مكانإذا واجهت أخطاء، تأكد من تثبيت Node.js و npm بشكل صحيح.
المشروع لا يتطلب ملف .env بشكل صريح، لكن قد تحتاج لتعيين بعض المتغيرات البيئية مثل LEETCODE_SESSION إذا كنت تريد جلب المشاكل من حسابك في LeetCode. ابحث عن ملف .env.example في المستودع، وانسخه إلى .env واملأ الحقول المطلوبة.
بعد التثبيت، جرب تشغيل الأمر: openleetcode --help لرؤية الأوامر المتاحة. لتشغيل اختبار لمشكلة معينة، استخدم: openleetcode run path/to/problem حيث المسار يشير إلى مجلد المشكلة الذي يحتوي على ملف الحل وملف الاختبار.
مثال: تشغيل اختبار لمشكلة Two Sum
two-sumsolution.js:function twoSum(nums, target) {
const map = {};
for (let i = 0; i < nums.length; i++) {
const complement = target - nums[i];
if (map[complement] !== undefined) {
return [map[complement], i];
}
map[nums[i]] = i;
}
return [];
}
module.exports = twoSum;test.js:const twoSum = require('./solution');
const assert = require('assert');
assert.deepStrictEqual(twoSum([2,7,11,15], 9), [0,1]);
assert.deepStrictEqual(twoSum([3,2,4], 6), [1,2]);
console.log('All tests passed');openleetcode run two-sumمثال: إضافة اختبار جديد أضف سطراً في ملف test.js مثل: assert.deepStrictEqual(twoSum([3,3], 6), [0,1]);
مثال: مشاركة مستودع اختبارات مع فريق ارفع مجلد المشكلة إلى مستودع GitHub، واطلب من فريقك استنساخه وتشغيل openleetcode run.
OpenLeetCode أداة واعدة لكنها في مراحلها الأولى. README غير واضح، ونقص التوثيق قد يعيق المبتدئين. إذا كنت مطوراً متوسطاً وتحب التجربة، فجربها. لكن لا تتوقع دعماً كاملاً لجميع مشاكل LeetCode. الأداة مناسبة لمن يريد بيئة اختبار محلية خفيفة.
نعم، المشروع مفتوح المصدر ومجاني تماماً.
نعم، بعد تثبيت الأداة وجلب المستودع، يمكنك العمل بدون إنترنت.
حسب README، يدعم JavaScript و Python بشكل أساسي. قد يدعم لغات أخرى حسب الإضافات.
أضف حالات اختبار في ملف الاختبار (مثل test.js) باستخدام assert أو مكتبة الاختبارات المفضلة لديك.
ليس بالضرورة. قد تحتاج لتعديل تنسيق الإدخال/الإخراج لبعض المشاكل.
LeetCode الرسمي منصة متكاملة مع محرر ومجتمع. OpenLeetCode أداة CLI محلية تركز على الاختبارات فقط.
لا يوجد دعم رسمي، لكن يمكنك فتح issue أو المشاركة في مجتمع GitHub.
OpenLeetCode أداة مفيدة لمن يريد بيئة اختبار محلية لمشاكل LeetCode. ابدأ بتجربتها على مشكلة بسيطة مثل Two Sum. إذا أعجبتك، شاركها مع زملائك. تذكر أن الأداة جديدة، لذا كن مستعداً لبعض التجربة والخطأ.
خطوات عملية مرتبة من التشخيص إلى النتيجة
لماذا؟ الأداة تعتمد على Node.js وnpm وGit
كيف؟ تأكد من تثبيت Node.js >=14 و npm و Git. تحقق باستخدام node -v و npm -v و git --version
الناتج: بيئة جاهزة للتثبيت
لماذا؟ للحصول على كود الأداة محلياً
كيف؟ git clone https://github.com/therepanic/openleetcode.git
الناتج: مجلد openleetcode
لماذا؟ لتثبيت المكتبات المطلوبة
كيف؟ cd openleetcode && npm install
الناتج: node_modules مثبتة
لماذا؟ لتشغيل الأمر openleetcode من أي مكان
كيف؟ npm link
الناتج: أمر openleetcode متاح عالمياً
لماذا؟ للتأكد من عمل الأداة
كيف؟ openleetcode run path/to/problem (مثال: openleetcode run two-sum)
الناتج: نتائج الاختبارات
حوّل القراءة إلى تنفيذ سريع
function twoSum(nums, target) {
const map = {};
for (let i = 0; i < nums.length; i++) {
const complement = target - nums[i];
if (complement in map) {
return [map[complement], i];
}
map[nums[i]] = i;
}
}
module.exports = twoSum;const twoSum = require('./solution');
const assert = require('assert');
assert.deepStrictEqual(twoSum([2,7,11,15], 9), [0,1]);
assert.deepStrictEqual(twoSum([3,2,4], 6), [1,2]);
console.log('All tests passed');اعرف أين يتعثر الناس وكيف تتجنب ذلك
ماذا تفعل حسب حالتك؟
إذا: إذا كنت تريد بيئة اختبار محلية لمشاكل LeetCode
إذن: استخدم OpenLeetCode
إذا: إذا كنت تفضل منصة متكاملة مع دروس
إذن: التزم بـ LeetCode الرسمي
إذا: إذا كنت تحتاج دعماً للغات متعددة
إذن: جرب leetcode-cli
جدول صغير يمنع التسويف
نقاط مختصرة ترجع لها لاحقاً
1. OpenLeetCode أداة CLI مفتوحة المصدر
2. تسمح بتشغيل اختبارات LeetCode محلياً
3. الاختبارات تبقى في مستودع GitHub
4. يدعم JavaScript وPython بشكل أساسي
5. لا يتطلب اتصالاً بالإنترنت بعد التثبيت
6. README المشروع غير واضح
7. الأداة في مراحلها الأولى
8. مناسبة للمطورين الذين يفضلون العمل المحلي
9. مجانية تماماً
إجابات مباشرة على ما يبحث عنه الزائر
تعريفات مختصرة تمنع الالتباس
واجهة سطر الأوامر، تتيح التفاعل مع البرنامج عبر الأوامر النصية.
مدير حزم Node.js، يستخدم لتثبيت المكتبات.
ملف توثيق المشروع، يشرح كيفية الاستخدام.
دالة في JavaScript للتحقق من صحة الشروط.
استخدمها كمسارات متابعة داخل نفس الموضوع
تحول القارئ: من مطور يعتمد على LeetCode فقط إلى مطور يختبر حلوله محلياً ويشاركها مع فريقه
القيمة الحقيقية تظهر عند العودة والتطبيق
لا تتعامل معه كمقال يُقرأ مرة واحدة. استخدمه كلوحة تشغيل: ارجع للتشخيص عند ظهور المشكلة، وللقوالب عند التطبيق، ولمؤشرات القياس عند المراجعة.
OpenLeetCode أداة مفيدة لمن يريد بيئة اختبار محلية لمشاكل LeetCode. ابدأ بتجربتها على مشكلة بسيطة مثل Two Sum. إذا أعجبتك، شاركها مع زملائك. تذكر أن الأداة جديدة، لذا كن مستعداً لبعض التجربة والخطأ.
حتى يبقى المرجع صالحاً مع الوقت
FAQ