Architectural Patterns و Design patterns .. الفرق بينهم

لو انت عاوز تبني بيت فأنت ممكن تبنيه بكذا شكل ممكن تبنيه على
الطريقه المصريه أو …
زي البيوت اللي بتكون في اوروبا أو …
على الطريقه التركيه مثلا …

فانت في الاول والاخر محتاج مهندس معماري تقول له
أنت محتاج شكل البيت يكون عامل ازاي
‏ والمهندس المعماري ده يبدا يخطط لك البيت بتاعك وبعدين بتجيب العمال اللي بينفذوا التخطيط اللي المهندس المعماري ده خططهولك

ايوه أي علاقة ده بالـ Architectural pattern ؟

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

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

‏والاشكال دي أو الأنماط دى نسميها
Architectural pattern

طب تمام هو أنا لو كتبت الكود بتاعي عادي بدون ما استخدم اللي أنت بتقول عليه ده الكود هيشتغل ؟
هقولك اه هيشتغل لكن ….

لو حبيت تعدل مثلا ع الكود بتاعك بعدين أو تضيف عليه حاجه هتلاقي الموضوع صعب جدا
فالـ Architectural pattern بتخلي الكود بتاعك

Maintainable , Flexible , readable

كده عرفنا يعني اي Architectural pattern

اي بقا الفرق بينها وبين الـ Design patterns ؟

ال design patterns دي حلول لمشاكل ممكن تقابلك ف كتابه البرنامج بتاعك زي مثلا إنك عاوز تخلي الكلاس ده ميعملش غير object واحد بس فبتستخدم
الـ Singleton Design pattern

فاكر البيت اللي المهندس المعماري خططه فوق ؟
هو ده الـ Architectural pattern

طب والاوض اللي بداخل البيت ؟
‏بستخدم فيها الـ design patterns

الفرق بينهم يكمن في الحجم ومستوى التفاصيل اللي بيهتم بيه كل واحد ..

‏ هاتلاقي الـ architectural pattern بيأثر في شكل النظام ككل أو في مكوناته الرئيسية

‏بينما الـ design pattern بيأثر في كام class وخلاص

 

وعليه
“باختصار هتحدد كل حاجه انت محتاجها عشان البناء
كل ده اسمه architecture
بعد متخلص كل ده تبداء بقي تكتب الكود بتاعك او تبني المبنا بتاعك
ودي طبعا مش اول خطوه بتاخدها قبل ده في ال problem definition
وبعدها ال requirements
وبعدها ال architecture
وبعدها الprograming او ال construction
وبعدها ال testing
ويبقي انت كده خلصت المشروع بتاعك
وال design patterns ده جزء من ال construction او بنستعمله عشان نحل مشاكل ال construction”

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

8 + 9 =