8K Views

MVC: نظرة جديدة إلى بناء تطبيقات الويب

Updated 20 September 2017

Facebook Linkedin

كريستوفر الكسندر يقول: “كل نمط يصف المشكلة التي تحدث مرارا وتكرارا في بيئتنا ، ثم يصف جوهر حل هذه المشكلة في مثل هذه الطريقة التي يمكنك استخدام هذا الحل أكثر من مليون مرة ، دون أن تفعل أي وقت مضى بنفس الطريقة مرتين”.

كمهندس برمجيات ، لقد سمعنا جميعا الناس لتبادل بضع كلمات من الحكمة على كيفية لا “إعادة اختراع العجلة”. إذا كان هناك بالفعل حل مشكلة مشتركة ، انها في مصلحتنا الاستفادة منه بدلا من أن نضيع وقتنا على ابتكار حلول جديدة واتقان.

وهو أمر مضحك لأنه على الرغم من أنني لا أتفق تماما مع “إعادة اختراع العجلة” ، وأعتقد أن تماما تلخيص جوهر أنماط التصميم في هندسة البرمجيات, وهو ما نحن بصدد الحديث عنه اليوم. وبشكل أكثر تحديدا فإننا سوف نتحدث عن نمط MVC و كيف أنه يلعب دورا هاما في تطوير تطبيق كبير.

نمط MVC (Model – View – Controller)

MVC هو برنامج النمط المعماري الذي ببساطة يعني أنه نمط تحديد الهيكل الأساسي الكامن وراء عمل تطبيق من وجهة نظر معمارية. تستخدم عادة لبناء واجهات سطح المكتب, هذا النمط قد اعتمد على نطاق واسع من أجل بناء تطبيقات الويب و كل تنفيذ هذا النمط تختلف في تفسيرها مع الفروق الدقيقة. وهذا يعني أنه لا يوجد “حق الطريق” للذهاب حول هذا الموضوع.

MVC, وكما يوحي اسمها يقسم التطبيق إلى ثلاث أجزاء مترابطة: نموذج وعرض تحكم

  • نموذج: هذا النموذج هو كائن التطبيق, الذي هو مجرد طريقة أخرى للقول أن يتم استخدامه لتخزين البيانات المستخدمة من خلال تطبيق لدينا ، و هو الجسر بين عرض مكون &أمبير ؛ عنصر تحكم. نموذج يجهل اثنين آخرين الأجزاء المكونة: عرض وحدة تحكم.
  • عرض: رأي هو نموذج شاشة العرض ، بمعنى أن الرأي هو ما يراه المستخدم عند استخدام التطبيق الخاص بك. فإنه يأخذ البيانات التي تمر على ذلك ، يجعل الناتج النهائي مرئية على الشاشة. في حالة التطبيق على شبكة الإنترنت, يمكنك أن تتخيل المنظر النهائي مستند HTML التي تقدمها شبكة الإنترنت المتصفح (user-agent).
  • تحكم: تحكم يحدد طريقة تفاعل المستخدم مع التطبيق لدينا. انها وظيفة في مدخلات المستخدم تحديث نموذج المقابلة وفقا لذلك ، ومن ثم إعادة تقديم العرض. تحكم هو ما يلصق كل نموذج وعرض معا غالبية تطبيق المنطق المقابلة واجهة المستخدم يقيم.

 

طريقة بسيطة تخيل نمط MVC هو التفكير في نموذج يحتوي على بعض البيانات الإحصائية. رأي يجعل البيانات الموجودة في النموذج في الرسم البياني. هذا المخطط يمكن أن تكون إما مخطط دائري أو شريطي, اعتمادا على ما يفضل المستخدم التي يتم التعامل معها من قبل المراقب المالي.

ليس هناك أكثر من ذلك بكثير لاستكشاف حول نمط MVC, ما تحدثنا عنه أعلاه هي أكثر من كافية لفهم فهم أساسي. دعونا نمضي قدما و بناء بسيط PHP التطبيق لفهم نمط MVC في المزيد من العمق.

التطبيق سوف يكون المبنى سوف تكون بسيطة جدا. سنستخدم واحد ملف php (index.php) للتعامل مع منطق لدينا تطبيق ويب. ونحن سوف كسر التطبيق لدينا في وحدات التحكم التي سوف تتوافق مع وجهات نظر مختلفة. جميع وحدات التحكم سوف تذهب إلى وحدة تحكم دليل, جميع الآراء سوف تذهب إلى View الدليل, وكل نموذج سوف تذهب إلى نموذج الدليل. حتى هنا كيف سوف هيكل الدلائل من التطبيق لدينا:

 

 

 

 

 

ما نقوم به هنا هو في الأساس استرجاع تفاصيل صفحة المستخدم هو زيارة من $_GET[‘action’], الذي إذا وضع خرائط عمل المقابلة تحكم. إذا كان لا يتم عمل مطابقة ، ثم نحن الافتراضي إلى المنزل تحكم. لكل وحدة تحكم لدينا تعريف وظيفة handleRequest() الذي يتعامل مع الطلب ينفذ الطلب وفقا لذلك, سواء كان ذلك تقديم رأي معين أو إعادة توجيه المستخدم إلى صفحة أخرى (مثلا ، بعد نجاح نموذج التقديم).

أمل ، إذا فهم تدفق التطبيق نبني هنا, سوف تبدأ في رؤية فوائد MVC نهج بناء الأشياء. بالنسبة لي شخصيا انها اكثر تنظيما جيدا ومنظم. انها مثل الانتقال من البرمجة الإجرائية إلى وجوه المنحى البرمجة ، إلا في هذه الحالة, نحن نفعل نفس الشيء مع بناء التطبيق لدينا.

لم نذهب كثيرا في التفاصيل حول هذا النموذج جزءا من نمط MVC, ولكن هذا موضوع مختلف كل ذلك معا و شيء أود أن أترك القراء لاستكشاف لأنفسهم. على الأجزاء الأساسية, يمكنك العمل مع النموذج الخاص بك (والذي يستخدم لتخزين البيانات) داخل جهاز تحكم وتمرير هذا النموذج إلى طريقة العرض الخاصة بك. تذكر أن النموذج الغرض الوحيد لإدارة البيانات ، و هو يجهل كل من المراقب المالي و العرض. تحكم ما أن يلصق كل عرض نموذج معا. و الرأي هو كيف تمثل النموذج الخاص بك إلى المستخدم. هناك على الإطلاق أي ضرورة فرض نموذج في طريقة عرض حيث انه لا حاجة لذلك فإنه من الممكن بالنسبة الرأي الذي لا يعتمد على النموذج.

Category(s) Design uvdesk
. . .

Leave a Comment

Your email address will not be published. Required fields are marked*


Be the first to comment.