أبو فهيد

ما هو طريقتك لفهم كود كبير جدا ؟

12 ردود في هذا الموضوع

السلام عليكم و رحمة الله وبركاته

أريد أن أتناقش معكم عن طريقتك أو أسلوبك في فهم مشروع كبير

لنفترض أنه تم توكيلك لإصلاح خطأ أو إضافة ميزة في المشاريع الكبيرة , كيف سوف تبدأ ؟ و كيف تستطيع فهم علاقات الكلاسات مع بعضها

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

في الغالب وثائق المشروع إذا متوفرة! وفي حال غير كدا هتحتاج بعض التنقيب top-down approach

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

في الغالب وثائق المشروع إذا متوفرة

+1

فهم مشروع كبير

كيف يكون مشرع كبير بدون توثيق جيد !

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

هناك مصطلح يوصف به الأكواد القديمة أو الأكواد الي يستلمها مبرمج آخر، المهم تسمى

Legacy Code أو Legacy system

في هندسة البرمجيات فيه طرق للتعامل مع هذي الأكواد

أحد الكتب المشهورة

Working Effectively with Legacy Code

51RCXGPXQ8L._SL500_AA300_.jpg

ملخص للكتاب موجود في هذا المقال، والمقال كافي -حسب رأيي- الرابط

وضع استراتيجية من خمس نقاط

أحد النقاط أنك تعمل تيست للكود، وهذا يساعدك أنك تحدد وتعرف أين نقاط الدخول للكود وكيف يعمل الكود

6

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أن استخدم النظام اولا واتخيل كيف ستكون مكوناته وذلك قبل أن أقرا الكود

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أشغل المشروع وأتصفحة بحثاً عن الخطأ ثم أقوم بقراءة الكود المسؤول عن الخطأ :lol: ثم أقوم بتحليل عناصر المسأله التي لا أفقه فيها شئ

أظن أنها من أفضل الطرق :dry:

تم تعديل بواسطه سي شربة
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

ليس لي تجارب كثيرة ، لكن عندما يكون الكود مكتوب بطريقة Standard ، كأن يستخدم Design Patterns معروفة ، الخ .. فيكون الموضوع أسهل ، و تبقى مشكلة فهم Business logic . و تستطيع فهمها لو كنت تعرف تستخدم المنتج كمستخدم عادي .

شخصياً أفهم و بسرعة التطبيقات التي تستخدم Java ، لأن جافا لها convention واضح و مواصفات لكل شيء ، بينما اللغات الأخرى ، كل مبرمج له أسلوبه الخاص ؟ مثال بسيط : اقتناص الأخطاء ، في Java القاعدة هي استخدام Exceptions ، في PHP ، Cpp و غيرها ، كل مبرمج له أسلوب . لذلك تتعب خاصة عندما تنوي التطوير على هذا المشروع.

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

استخدام الـ Break Points جيد في هذا الأمر.

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  1. أولاً مراجعة التوثيق إن وجد
  2. تشغيل ال Unit Tests الموجودة و معرفة نسبة ال Code Coverage
  3. سؤال مبرمجى التطبيق القدامى فى حال توافرهم بالاضافة لسؤال مستخدمى التطبيق عن وظائف التطبيق
  4. مراجعة جيدة لل Configuration Management داخل التطبيق و هو اساسى لتشغيل التطبيق
  5. فهم هيكل قاعدة البيانات و محاولة استنباط مكونات الجداول من اسمائها
  6. تشغيل التطبيق و مراجعة التغييرات على قاعدة البيانات و على الواجهة نفسها (حقول تظهر و تختفى فى شروط معينة - إبدال الفورم ايضاً تحت شرط معين و هكذا)
  7. تخيل ماذا لو كنت فى مكان مبرمج التطبيق السابق

تم تعديل بواسطه طارق إبراهيم
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أشكر الجميع على المعلومات القيمة

إذا ملخص الموضوع هو :

  • إستخدام البرنامج كمستخدم نهائي
  • مراجعة التوثيقات
  • عمل tests لمعرفة طريقة عمل كلاس معين
  • ما هو Design Patterns المستخدم << هذي النقطة كنت أجهلها تماما
  • إستخدام Break Points

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بالنسبه لي أقوم بمعرفه مايقوم به المشروع ثم أبدأ بإعادة برمجته على طريقتي :)

-1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم و رحمة الله وبركاته

أريد أن أتناقش معكم عن طريقتك أو أسلوبك في فهم مشروع كبير

لنفترض أنه تم توكيلك لإصلاح خطأ أو إضافة ميزة في المشاريع الكبيرة , كيف سوف تبدأ ؟ و كيف تستطيع فهم علاقات الكلاسات مع بعضها

اولا الله يكون فى عون اللى عايز يطور او يصحح كود لمشروع كبير - لكن من وجهة نظرى انه يستحسن قراءة اجزاء الكود كوحدات مستقلة اولا مثل المتغيرات المستخدمة والكلاسس والدوال المعرفة قبل الدالة الرئيسية وفهمهم جيدا والتعبير عنهم بلغة مفهومة للبشر ( العربية او الانجليزية او ...... ) وهو ما يسمى pesudo code او semi code ثم قراءة الدالة الرئيسية وفهمها وتحويلها الى لغة مفهومة - فبعد ذلك تسهل عملية التعديل او التطوير والله اعلى واعلم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .