يوما بعد يوم يزدهر مجال البرمجة و يعرف تطورا و تقدما ملحوظا في عدة مجالات ، خصوصا ان القائمين و المنخرطين في هذا المجال أصبح هدفهم الواحد و الوحيد توفير أساليب و تقنيات لصناعة برمجيات قوية من ناحية الحماية و سهلة من ناحية البرمجة ، أمر أصبحنا نجده حتى في لغات البرمجة ذاتها ، فسابقا كان عليك إستدعاء مكتبات و فتح كلاس و مناداة دوال من أجل كتابة Hello World لتُطبع لك في الشاشة ، اليوم ، يكفي ان تكتبها في سطر واحد لا يقل عن 20 حرفا ، انه التطور البرمجي يا حبيبي !
و لكن العائق الذي كان يحول بين المبرمج و المشاريع البرمجية الإبداعية ، هو الحماية ، فإن كان مجال البرمجيات المفتوحة او الـ Open Source مجالا يعشقه الكثيرين ، الا ان سقوط المشاريع البرمجية المفتوحة في الأيدي الخطأ ( و في هذه الحالة الهاكرز ) يجعل من المشاريع المبرمجة بتلك الطريقة معرضة للإختراق و غير محمية بتاتا ، فالحماية ضرورية بالطبع ، و دمج الحماية و البرمجة سيتطلب منك مستوى عالي في مجال البرمجيات عامة ، و سيُستعصى الأمر على المبرمجين الذين وضعو خطواتهم الأولى في مجال البرمجة .
ما هي تقنية او معمارية الـ MVC ؟
سابقا ، كان الربط بين قواعد البيانات و بين واجهة الموقع يتم عبر الـ SQL Query ( ليس دائما لكن سنأخذ مثال البرمجة بلغة الـ Php في هذه الحالة ) ، فإن اردت جلب بيانات مستخدم معين بإستخدام واجهة بسيطة ، و لنقل صفحة ويب مكونة من Input و زر Submit ، فإنك ستقوم بدمج تلك الواجهة و إعطاء الأمر لقواعد البيانات من أجل جلب المُدخل في ذلك الInput عن طريق أمر Sql او Query كما نحب تسميته عبر الـ Post ، في حين تجلب البيانات عبر الـ Get ، لكن المشكلة هنا ، هو تمكين شخص متمكن في اللغة او الحماية بشكل عام ، من تقصي ذلك الQuery و يمكن ان يستخرج منها Vulnerabilities يستطيع من خلالها إختراق موقعك ، من يدري ربما SQL Injection على سبيل المثال ، و محاولة الحفاظ على إستقرار الحماية في مشروع ضخم بعدد كبير من الQuery أمر صعب لا محالة .
إقرأ أيضا : أفضل 10 قنوات على اليوتيوب لتعلم البرمجة !
يقوم مبدأ الـ MVC على فصل قواعد البيانات عن الواجهات تماما من أجل توفير حماية أكبر ، و يتم ربطها عبر متحكمات متخصصة تقوم بتوفير طريق امن من اجل ربطهما معا ، و يتم إختصار هذه التقنية في الـ MVC ، إذ ان Module يُقصد بها قواعد البيانات التي يتم بنائها ، ثم الـ View و هي واجهة المواقع التي يتم إنشائها عبر لغات متعارفة في مجال الويب ديزاين ، ثم يأتي الـ Controller او المتحكم الذي يقوم بربط كل من الـ View و الـ Module معا بمسلك امن .
موضوع الـ MVC كبير جدا و معقد قليلا خصوصا عندما تبدأ البرمجة في مشروع بواسطة هذه المعمارية ، لذلك هذه مجرد نبذة صغيرة جدا عما يمكن فعله و عن هذه التقنية من الأساس .
إذن ، بما أنك الآن فهمت مبدأ الـ MVC ، فهلا نقترح عليك عزيزي القارئ مجموعة من إطارات العمل او فريموورك تعتمد على الـ MVC في بناء مشاريع برمجية ضخمة و قوية ؟
إطار العمل Laravel :
إطار العمل Django :
إطار العمل Asp.Net :
ليست متداولة كثيرا أليس كذلك ؟ لا أقصد اللغة بل أقصدها على شكل Framwork ، الـ Asp.net من فريموركات الويب القوية جدا من ناحية الحماية ، من إبتكار المايكروسوفت بالطبع و يمكن برمجة تطبيقات الويب بالإعتماد على الـ C# ، نعم ، تعتمد هي الأخرى على مبدأ الـ MVC ، و تقدم لك خيار صناعة موقع إحترافي بمميزات عالية و الأهم بحماية جد قوية ، شيئ ربما لاحظناه على مر السنين و على مر المواقع المبرمجة بالـ Asp ، فكلها تقريبا قوية و منيعة ، يعود ضعف الـ Asp.Net في الإستخدام الى مشكلة ثقله ، فالمواقع المصممة من خلال هذا الفريموورك أهم مشاكلها ثقل تحميل الموقع و جلب البيانات ، أيضا الى كونها ذات مصدر مغلق و ليس مفتوح ، و هذه ميزة قوية إن اردنا حماية أكبر ، و لكن و رغم ذلك ، تبقى الـ Asp.Net ذات إستعمال كبير في مجالات مختلفة .
إقرأ أيضا : أنفوجرافيك : أخطاء قاتلة تقوم بها أثناء تصميمك لـ Form على الويب عليك تجنبها !
إطار العمل Zend :
إطار العمل Symfony :
إطار العمل Rails :
إطار العمل CodeIgniter :
إطار عمل قوي أيضا ، مبني على الـ Php ، إن لاحظت معي يا صديقي ان جل الفريموركات و إطارات العمل مبنية على الـ Php ، لذلك مما لا شك فيه انه يجب عليك تعلم الـ Php في أقرب وقت إن اردت إتقان بعض الفريمووركات ، اللهم ان كنت تتقن الـ Ruby او الـ Python لإستخدام فريموركات اخرى ، إطار CodeIgniter إطار عمل مفتوح المصدر و يمكنك دائما تطويره ، و لكنه و رغم ذلك قوي و جيد جدا في الحماية ، و الأهم من ذلك خفيف جدا ، و بالطبع مبني على معمارية الـ MVC ، يمكنك إستخدام هذا الإطار لصناعة مجموعة من المشاريع البرمجية البسيطة ، بالنسبة لمشاريع كبيرة فهو جيد ، لكن قد تصادفك بعض المشاكل لاحقا في تطوير مشروعك إلى الأفضل .
إطارات عمل أخرى :
لا يوجد فقط الإطارات السبعة هذه بل يوجد الكثير و الكثير أكثر مما تتصور ، و يمكنني أن اقترحها عليك كالتالي :
Cake Php
Fuel Php
YII Framwork
و لك حرية البحث عن المزيد و المزيد من الفريمووركات إن لم تكن مقتنعا بما جاء في هذا الموضوع .
مقالة جيدة ورائعة، شكرًا لك على الجهد المبذول<br />ولكن وجب التنبيه أنّ MVC تعني Model View Controller وليس Module