قراءة الـ diff
في الدرس الماضي، اقترح Claude تغييرًا وأراك كتلة صغيرة من الكود فيها أسطر خضراء وحمراء. تلك الكتلة هي أهم شيء على شاشتك.
الـ diff هو قائمة سطرًا بسطر بما هو على وشك التغيّر. الأسطر المعلّمة بـ
+تُضاف. الأسطر المعلّمة بـ−تُحذف. الأسطر غير المعلّمة موجودة من أجل context — تُريك أين في الملف يقع التغيير.
هذا هو التنسيق كلّه. يُستخدَم في كل مكان — Claude، وgit، وGitHub، وكل code review tool صُنع يومًا. تعلّم قراءة واحد مرّة، وستستطيع قراءتها جميعًا.
مثال محلول
function greet(name) {
- return "hi " + name;
+ return `Hello, ${name}!`;
}
ثلاثة أسطر تهمّ هنا. سطر function greet(name) هو context — غير معلّم، يُظهر فقط أين أنت. السطر الذي يبدأ بـ − يُحذف. والسطر الذي يبدأ بـ + يُضاف.
إذًا التغيير هو: استبدال عبارة الإرجاع القديمة بأخرى جديدة. اسم الـ function وتوقيعها لا يتغيّران — فهذان context.
الفخّ: التصفّح في مقابل القراءة
معظم الناس يُلقون نظرة عابرة على الـ diff. يرون بضعة أسطر خضراء، وبضعة أسطر حمراء، وتبدو الأسماء تقريبًا صحيحة، فيضغطون «اقبل».
تلك ليست قراءة. تلك إيماءة بالرأس.
قد يكون Claude مخطئًا بثقة. قد يعيد تسمية متغيّر بشكل صحيح في خمسة مواضع وينسى السادس. قد يضيف السطر الذي طلبته ويحذف أيضًا سطرًا لم تطلبه. الـ diff يُريك ذلك. الـ diff هو الحقيقة. الـ diff هو ما سيحدث فعلًا.
عندما يتجاوز الـ diff عشرة أو خمسة عشر سطرًا، تمهّل. اقرأ كل + وكل −. اسأل نفسك: هل طلبتُ هذا السطر؟ إن كانت الإجابة لا، فتلك هي المشكلة.
لا تقرأ الملخّص، اقرأ الـ diff
غالبًا ما يلخّص Claude التغيير بإنجليزية بسيطة فوق الـ diff. شيء مثل:
لقد أعدت تسمية
usrإلىuserفي كامل الملف.
تلك الجملة تفسير. الـ diff هو الواقع. أحيانًا يتطابقان. وأحيانًا يكون الـ diff قد نقل function أيضًا، أو حذف إرجاعًا مبكّرًا، أو أصلح خطأً مطبعيًا لاحظه Claude في طريقه. لن يقول الملخّص ذلك دائمًا.
اقرأ الـ diff. دائمًا. الملخّص تلميح، لا عقد.
جرّب واحدًا
إليك diff صغيرًا. اقرأه قبل أن تنزل إلى الاختبار القصير.
const total = items.reduce((sum, item) => {
- return sum + item.price;
+ return sum + item.price * item.quantity;
}, 0);
ما التالي
تستطيع الآن قراءة ما يقترحه Claude. الدرس التالي هو ماذا تفعل عندما يكون ما يقترحه تقريبًا صحيحًا لكن ليس تمامًا. المهارة هي إبقاء المحادثة مستمرّة بدلًا من البدء من جديد.