يعني ايه design pattern ؟
ببساطة
الـ design patterns هي ناتج التطور التطبيعي لتاريخ البرمجيات , ازاي ؟ نجيب
الموضوع من الاول , مع بداية ظهور البرمجيات كانت بتتكتب بطريقة sequential بمعني إنك بتكتب البرنامج بتاعك كله عبارة عن مجموعة سطور من الـ code تحت بعضها بتتنفذ بالترتيب و دي كان اسمها الـ sequential programming.
بعد
فترة ومع وزيادة احجام البرامج بدأوا يلاقوا ان الكود بيتكرر
كتير فده وصلهم انهم ممكن يجمعوا الأكواد اللي بتتكرر دي في مكان واحد وكل ما نحتاجهم
نستخدمهم وهنا ظهر مفهوم الـ function و دي كان اسمها الـ Procedural programming.
ومع ازدهار عصر البرمجيات بطريقة كبيرة وسريعة بدأ يتجه التفكير الي إن ازاي نسهل البرمجة علي المبرمجين بأنها تكون اقرب لطريقة تفكير الإنسان و فالوقت ده ظهر الـ OOP - object oriented programming وهو انك بتقسم السوفت وير لمجموعة classes و بتحدد علاقاتها ببعضها و الـ behavior بتاعها ودي اقرب حاجه للحياة الطبيعية و طريقة تفكير الانسان قدروا يوصلولها لحد دلوقتي.
ومع ازدهار عصر البرمجيات بطريقة كبيرة وسريعة بدأ يتجه التفكير الي إن ازاي نسهل البرمجة علي المبرمجين بأنها تكون اقرب لطريقة تفكير الإنسان و فالوقت ده ظهر الـ OOP - object oriented programming وهو انك بتقسم السوفت وير لمجموعة classes و بتحدد علاقاتها ببعضها و الـ behavior بتاعها ودي اقرب حاجه للحياة الطبيعية و طريقة تفكير الانسان قدروا يوصلولها لحد دلوقتي.
لحد
هنا كويس , طبيعي وانت شغال كـ software
engineer بتواجهك مشاكل وبتفكرلها في حلول وبتحلها , ومع الوقت في مجموعة مشاكل بقت
بتتكرر مع ناس كتير وبقت مشاكل مشتركة , وبدأ المبرمجين يعملولها طرق حلول (patterns) ويطوروا طرق الحلول دي وتبقي طرق موحدة بتسهل
عليك حل مشاكل معينة بعينها لما تقابلك (وهتقابلك) وهي دي الـ design patterns.
فهي
ببساطة مجموعة حلول لمشاكل common هتقابلك بطريقة متكررة وانت شغال.
بس لازم يكون واضح انها مش أكواد او حاجه تتحول لكود هي مجموعة خطوات لحل مشكلة معينة
, انت بترجمها لكود بعد كده ( بس احنا هيكون معانا امثلة بالأكواد للتوضيح).
ايه الفايدة اللي هتعود عليا لما استخدم الـ
design
patterns ؟
لما تستخدم الـ design patterns هتعمل
اغلب الـ best practices اللي تخليك professional software engineer زي:
- هتلاقي نفسك بتكتب كود اقل بكتير Less code
- هتلاقي ان الـ software بتاعك سهل تطور وتعدل فيه بأقل مجهود maintainable software
- هتلاقي ان قدراتك فالـ problem solving زادت بشكل ملحوظ جدا
دي intro سريعة , كده المفروض تكون عرفت ايه هي الـ design patterns
وليه محتاج تستخدمها وهتظهرلك قيمتها اكتر لما ندخل فأول pattern وهي الـ strategy
pattern النهاردة بليل.
لو قررت عجبك الموضوع وحابب تكمل مش هتحتاج تكون عارف اكتر من مفاهيم الـ OOP البسيطة
, و كل اللي جاي بعد كده هيكون self-contained بمعني انك لو محتاج تعرف pattern
بعينها هتقرا موضوعها هي بس وهو هيكون شامل وهيغطي كل الجوانب بطريقة سهلة وبسيطة.
Blogger Comment
Facebook Comment