كيفية إعادة هيكلة دالة عبر قاعدة الكود بأكملها دون كسر أي شيء
متى تستخدمه: تحتاج إلى إعادة تسمية دالة أو تغيير توقيعها أو deinline دالة مساعدة — وهي مستخدمة في 30+ ملف عبر المستودع
المتطلبات الأساسية
- مستودع git نظيف —
git statusلا يظهر أي شيء معين — حتى تتمكن من استخدامgit diffللمراجعة وgit restoreإذا لزم - جذر نظام الملفات مقيد بالمستودع — ابدأ باستخدام
npx -y @modelcontextprotocol/server-filesystem /abs/path/to/repo
الخطوات
-
ابحث عن كل موقع استدعاءابحث في قاعدة الكود عن كل استخدام لـ
getUserProfile(. جمّع المطابقات حسب الملف وأعطني عدداً لكل ملف.✓ تم النسخ→ قائمة الملفات مع أعداد المطابقات، بدون تمييز الاختبارات عن المصدر -
اختبر التعديل على ملف واحدأريني كيف سيبدو التعديل في src/api/users.ts — فرق، وليس الملف كاملاً. لا تكتب بعد.✓ تم النسخ→ رقعة فرق بسيطة، وليس إعادة كتابة الملف بالكامل
-
طبّق على جميع الملفات وأبلغطبّق نفس التحويل على كل ملف من الخطوة 1. استخدم edit_file (على مستوى السطر)، وليس write_file (الكتابة فوق). أخبرني بأي ملف لم تطابق فيه النمط بنظافة.✓ تم النسخ→ سجل نجاح/تخطي لكل ملف
النتيجة: فرق git مركزاً وقابلاً للمراجعة يمكنك تشغيل الاختبارات ضده — بدون إعادة كتابة الملف بأكمله بشكل مفاجئ
المزالق
- Claude يستخدم
write_fileويسقط صامتاً نصف الملف عندما يكون التعديل معقداً — تطلب بوضوحedit_fileللتغييرات الموضعية؛ اسمح بـwrite_fileفقط للملفات التي يتم إنشاؤها من جديد - المطابقة تصيب الكود غير ذي الصلة (على سبيل المثال
getUserProfileAvatar) — ربط البحث:getUserProfile(بالقوس اللاحق، أو استخدم regex حد الكلمة