AudioVideo
EP16 - Developer Skills - Working With Legacy Code
About this episode
يناقش محمد حسام مهارة التعامل مع الكود القديم باعتبارها امتداداً مهماً لمهارات المطور، خصوصاً عند استلام مشروع لا تعرف تاريخه أو لا يحتوي على اختبارات وتوثيق كافيين. تركز الحلقة على بناء شبكة أمان تدريجية عبر الاختبارات المؤتمتة، بدءاً من سيناريوهات بسيطة تثبت سلوك النظام قبل أي تعديل واسع. كما تستعرض خطوات عملية لتسلّم الكود من مطور آخر: التأكد من وجوده في نظام التحكم بالمصادر، وإمكان بنائه وتشغيله وتصحيحه على جهازك، وفهم المشاكل المعروفة. ويتناول النقاش موازنة إعادة الهيكلة مع احتياجات العمل، وتوثيق ما تكتشفه، وشرح حالة الكود وخيارات التحسين لأصحاب المصلحة بوضوح.
Episode notes
• تعريف الكود القديم: قاعدة كود لا يملك المطور معرفة كافية بها، وغالباً ورثها من مطور أو فريق سابق
• أسباب صعوبة صيانة الكود القديم: ضعف الجودة، غياب التوثيق، وندرة اختبارات الوحدة أو الاختبارات الوظيفية
• البدء باختبارات مؤتمتة بسيطة لتسجيل السيناريوهات والسلوك الحالي وبناء شبكة أمان للتغييرات
• استخدام الاختبارات لفهم تدفق الكود واكتشاف أثر إصلاح الأخطاء أو إضافة الميزات
• تأجيل إعادة الهيكلة الكبيرة إلى ما بعد تكوين تغطية اختبار مناسبة، ثم تفكيك الأجزاء شديدة الترابط تدريجياً
• التواصل المبكر مع المديرين وأصحاب المصلحة حول حالة الكود، والوقت المطلوب، والحلول المقترحة
• قائمة تسليم الكود: التحقق من أن كل التغييرات موجودة في نظام التحكم بالمصادر وأن المشروع يُبنى ويعمل على جهاز المستلم
• ضمان القدرة على تصحيح الأخطاء، بما في ذلك إعدادات البيئة والخطوات اللازمة للوصول إلى نقاط التوقف
• تجنب الإفراط في إعادة الهيكلة قبل فهم احتياجات العمل، وتوثيق السلوك والاختلافات التي تكتشفها
• أدوات إعادة الهيكلة ونظام التحكم بالمصادر كوسائل لتغييرات قابلة للتراجع؛ ذُكرت ReSharper لـ .NET وIntelliJ لجافا
http://www.askdeveloper.com/2013/08/ep16-developer-skills-working-with.html
http://facebook.com/askdeveloper
http://soundcloud.com/askdeveloper