Ahmed Aljaberi
Ahmed Aljaberi

@ahmed_aljabri

8 تغريدة 82 قراءة Sep 20, 2019
الـMVC نمط تصميم للـUI و ليس لكامل البرنامج فليس من الجيد أن تضع الـBusiness Logic في الController مثلما نجده في اغلب الTutorials و انما تجعله في Layer اخرى و تتعامل معه عبر Service Layer
ايضاً لا يستحسن ان يكون الModel هو صورة جداول قاعدة البيانات لديك و تربطه مباشرة عبر ORM مثل EntityFramwork او JPA بل ايضاً اجعله في مكان اخر بعيد عن الUI.
الMVC ظهرت مع اول GUI ( واجهة رسومية ) مثل واجهات Windows و Mac و قبلها كان كل شيء عبارة عن Shell ( شاشة نصية بخلفية سوادء ) . ظهورها كان كجزء من لغة Smalltalk التي لها اول GUI في السبعينات لكن شهرتها اتت بعد ظهور لغة Objective-C التي تبنتها لبناء تطبيقات الماك و الiOS بشكل عام.
ظهور الMVC فترة السبعينات له دلائل ففي تلك الفترة بدأ الطلب على برامج كبيرة و هذه البرامج اتت بتعقيدات صعب التحكم بها و جعلت العالم يقيم مؤتمرات لحلها مثل المؤتمر الذي عرض الدكتور Reenskaug ورقته عن الMVC و كيف ممكن نقسم البرامج إلى Components عام 73.
فكرة الMVC بسيطة و هي تقسيم الUI إلى ثلاثة اقسام , جزء View لرسم و بناء الواجهة التي يراها المستخدم و يستقبل منها مدخلاته عادة تكون مبنية بالHTML او XAML او اي تقنية تبني الواجهات.
البيانات التي تعرض و تأتي من النظام و البيانات التي تذهب إليه تتم نمذجتها عن طريق Model ( كلاسات لنقل البيانات ) و المسؤول عن استقبالها و معالجتها و اعادتها للView هو الController.
الMVC ليست مقتصرة على الويب , بل يمكن استخدامها لتطوير واجهات الموبايل مع تقنيات مثل Xamarin أو Flutter لكنه ليس الأفضل بل هناك انماط اخرى مناسبة اكثر مثل MVVM أو Flux او حتى MVP ( سنأتي عليها )
مفاهيم مثل هذه مهمة , اذكر عندما اتجهت اوراكل إلى الJDeveloper كان فهم الMVC هو اكبر عقبة واجهت المطورين بOracle Forms لينتقلوا إلى JDev و هو من جعل اوراكل تفقد الكثير من الCommunity الذي كانت تحظى به اوائل الالفينات.

جاري تحميل الاقتراحات...