اصطياد خطأ مطبعي في ملف الإعداد
API_TIMEOUT=3000API_TIMEOUT=30000صفر إضافي واحد حوّل المهلة من 3 ثوانٍ إلى 30 ثانية. أداة الـdiff ترصد ذلك خلال ثوانٍ، بينما القراءة بالعين لملفَّي .env كثيرًا ما تُفوّت مثل هذا الخطأ.
قارن نصين أو كتلتين من الكود جنباً إلى جنب بالسطر والكلمة.
Last updated
function greet(name) {+function greet(name) { console.log("Hello, " + name);+ console.log(`Hello, ${name}!`);return name;+
return name.toUpperCase();
}+
}
greet("world");+greet("World");أداة Diff Checker تقارن بين قطعتين من النص أو الشيفرة وتُبرز ما أُضيف وما حُذف وما تغيّر. المطوّرون يستخدمون المقارنة باستمرار: لمراجعة الكود، وتتبّع تغييرات ملفات الإعداد، ومقارنة استجابات الـAPI، والتحقّق من عمليات الترحيل (migrations)، وفهم التعديلات قبل اعتمادها.
قراءة الـdiff مهارة أساسية لأي مطوّر؛ فهي ما يفصل بين *تغييرات السلوك الحقيقية* وإعادة التنسيق التي لا تؤثّر على شيء، وتساعدك على اصطياد ذلك الحرف الوحيد المتغيّر في كتلة من 200 سطر. وبمجرّد أن تعتاد على إيقاع الألوان (أخضر / أحمر / أصفر) ستصبح مراجعة الكود أسرع بكثير.
هناك نوعان رئيسيان للمقارنة: *مقارنة على مستوى السطر* (line diff) لمعرفة الأسطر التي تغيّرت، و*مقارنة على مستوى الكلمة أو الحرف* (word/character diff) لمعرفة ما الذي تغيّر فعلًا داخل السطر. الأداة الجيّدة تتيح لك التبديل بينهما حسب ما تقارنه: شيفرة مصدرية أم فقرات نصية.
ضع النص الأصلي في الجهة الأولى والنسخة الجديدة في الجهة الثانية. كود، JSON، نص عادي، ملفات إعداد — كل شيء يعمل.
استخدم مقارنة السطر للشيفرة المصدرية أو البيانات المنظَّمة. وانتقل إلى مقارنة الكلمة عند مقارنة فقرات نصية حيث الصياغة هي المهمّة.
فعّل خيار *تجاهل المسافات* (ignore whitespace) إذا كنت تهتم بالتغييرات الحقيقية فقط، وفعّل *تجاهل حالة الأحرف* (ignore case) عند مقارنة سجلّات أو نصوص لا تهمّ فيها الحالة.
المحتوى المحذوف يظهر بالأحمر في الجهة الأصلية، والمحتوى المضاف يظهر بالأخضر في النسخة الجديدة. والأسطر المعدَّلة غالبًا تظهر مرّتين، واحدة في كل جهة.
عدّل أيًّا من الجهتين وستجد المقارنة تتحدّث مباشرة. مفيد جدًّا لتجهيز patch نظيف قبل فتح pull request.
هذه التعارفات يعتمدها Coddy، كما يعتمدها git diff وGitHub ومعظم عارضات الفروقات الأخرى.
| الرمز | المعنى | أين يظهر |
|---|---|---|
أحمر / - | سطر محذوف من النسخة الأصلية | الجهة الأصلية |
أخضر / + | سطر مُضاف في النسخة الجديدة | الجهة الجديدة |
| أصفر / في الجهتين | سطر معدَّل — تغيير جزئي داخل السطر | كلتا الجهتين |
| بدون لون | سطر لم يتغيّر — مشترك بين النسختين | كلتا الجهتين |
@@ ... @@ | ترويسة كتلة (hunk) في git diff — أرقام الأسطر | مخرجات git diff في الطرفية |
| Word diff | تغيير على مستوى الكلمة أو الحرف داخل سطر معدَّل | مُبرَز داخل السطر الأصفر |
API_TIMEOUT=3000API_TIMEOUT=30000صفر إضافي واحد حوّل المهلة من 3 ثوانٍ إلى 30 ثانية. أداة الـdiff ترصد ذلك خلال ثوانٍ، بينما القراءة بالعين لملفَّي .env كثيرًا ما تُفوّت مثل هذا الخطأ.
The user can login.
The user can log in.
مقارنة الكلمة تُبرز التغيير login → log in بدقة. أمّا مقارنة السطر فستعرض السطر كاملًا كأنّه تغيّر، بينما تعزل مقارنة الكلمة موضع التعديل الفعلي.
{ "id": 42, "status": "draft", "published": false}{ "id": 42, "status": "published", "published": true}تكشف المقارنة بوضوح أن حقلَين مرتبطَين قد تغيّرا معًا. هذه أسرع طريقة للتأكّد من أن نداء API الذي يغيّر الحالة قد فعل ما يُفترض به فعلًا.
git diff، وعروض الـpull request، ولوحات المقارنة في بيئات التطوير (IDE) كلّها تطبيقات للفكرة نفسها.