يوما بعد يوم يزدهر مجال البرمجة و يعرف تطورا و تقدما ملحوظا في عدة مجالات ، خصوصا ان القائمين و المنخرطين في هذا المجال أصبح هدفهم الواحد و الوحيد توفير أساليب و تقنيات لصناعة برمجيات قوية من ناحية الحماية و سهلة من ناحية البرمجة ، أمر أصبحنا نجده حتى في لغات البرمجة ذاتها ، فسابقا كان عليك إستدعاء مكتبات و فتح كلاس و مناداة دوال من أجل كتابة Hello World لتُطبع لك في الشاشة ، اليوم ، يكفي ان تكتبها في سطر واحد لا يقل عن 20 حرفا ، انه التطور البرمجي يا حبيبي !
و لكن العائق الذي كان يحول بين المبرمج و المشاريع البرمجية الإبداعية ، هو الحماية ، فإن كان مجال البرمجيات المفتوحة او الـ Open Source مجالا يعشقه الكثيرين ، الا ان سقوط المشاريع البرمجية المفتوحة في الأيدي الخطأ ( و في هذه الحالة الهاكرز ) يجعل من المشاريع المبرمجة بتلك الطريقة معرضة للإختراق و غير محمية بتاتا ، فالحماية ضرورية بالطبع ، و دمج الحماية و البرمجة سيتطلب منك مستوى عالي في مجال البرمجيات عامة ، و سيُستعصى الأمر على المبرمجين الذين وضعو خطواتهم الأولى في مجال البرمجة .
ما هي تقنية او معمارية الـ MVC ؟
من منطلق الحماية أعلاه ، ظهر مفهوم الـ MVC ، و هو إختصار للـ Module View Controller ، و إن كان للـ MVC مجال أوسع و أكبر ، الا انني سأحاول تلخيصه في أسطر بسيطة لفهمه بشكل أفضل ، لكن إن اردت التعمق فيه ، فأنصحك بمتابعة دورات او القراءة أكثر عنه في مواضيع مخصصة له لوحده .
سابقا ، كان الربط بين قواعد البيانات و بين واجهة الموقع يتم عبر الـ SQL Query ( ليس دائما لكن سنأخذ مثال البرمجة بلغة الـ Php في هذه الحالة ) ، فإن اردت جلب بيانات مستخدم معين بإستخدام واجهة بسيطة ، و لنقل صفحة ويب مكونة من Input و زر Submit ، فإنك ستقوم بدمج تلك الواجهة و إعطاء الأمر لقواعد البيانات من أجل جلب المُدخل في ذلك الInput عن طريق أمر Sql او Query كما نحب تسميته عبر الـ Post ، في حين تجلب البيانات عبر الـ Get ، لكن المشكلة هنا ، هو تمكين شخص متمكن في اللغة او الحماية بشكل عام ، من تقصي ذلك الQuery و يمكن ان يستخرج منها Vulnerabilities يستطيع من خلالها إختراق موقعك ، من يدري ربما SQL Injection على سبيل المثال ، و محاولة الحفاظ على إستقرار الحماية في مشروع ضخم بعدد كبير من الQuery أمر صعب لا محالة .
يقوم مبدأ الـ MVC على فصل قواعد البيانات عن الواجهات تماما من أجل توفير حماية أكبر ، و يتم ربطها عبر متحكمات متخصصة تقوم بتوفير طريق امن من اجل ربطهما معا ، و يتم إختصار هذه التقنية في الـ MVC ، إذ ان Module يُقصد بها قواعد البيانات التي يتم بنائها ، ثم الـ View و هي واجهة المواقع التي يتم إنشائها عبر لغات متعارفة في مجال الويب ديزاين ، ثم يأتي الـ Controller او المتحكم الذي يقوم بربط كل من الـ View و الـ Module معا بمسلك امن .
موضوع الـ MVC كبير جدا و معقد قليلا خصوصا عندما تبدأ البرمجة في مشروع بواسطة هذه المعمارية ، لذلك هذه مجرد نبذة صغيرة جدا عما يمكن فعله و عن هذه التقنية من الأساس .
إذن ، بما أنك الآن فهمت مبدأ الـ MVC ، فهلا نقترح عليك عزيزي القارئ مجموعة من إطارات العمل او فريموورك تعتمد على الـ MVC في بناء مشاريع برمجية ضخمة و قوية ؟
إطار العمل Laravel :
إطار مبني على الـ Php و بالطبع تقنية الـ MVC ، يُعتبر الأشهر حاليا و الأكثر إستخداما منذ سنة 2015 الى حدود هذه السنة ( لم تظهر إحصائيات سنة 2017 بعد ) ، ما يجعل إطار لارافيل مُستخدما بكثرة ، هو مرونته العالية و حمايته القوية جدا ، إذ يمكنك صناعة أي موقع تريد بإستخدام الـ Laravel ، اي موقع مهما كان ، سواء مدونة ، او موقع إجتماعي ، او شبيه يوتيوب او موقع شراء و بيع و كل ما تريده ، يتميز أيضا بسهولة مبسطة في كتابة الشفرة البرمجية إن كنت تتقن الPhp جيدا و أيضا الـ OOP ، و رغم ان الـ Laravel سهل و بسيط في تعامله ، الا انني وجدته ( و بالنسبة لي ) صعبا للغاية أثناء تعلمه ، ربما لأنني لا اتقن الـ Php جيدا و نمطية عملها ، لكن لدي بعض الأصدقاء الجيدين و القويين في مجال البرمجة يؤكدون لي بشكل قاطع انها سهلة العمل .
إطار العمل Django :
البايثون لغة برمجية قوية ، و إن تابعت موضوعنا سابقا ، فستلاحظ انه قد تم تصنيف لغة البرمجة Python كأكثر لغة إستخداما لسنة 2017 ، و قد ترأست القائمة بالطبع ، و لم تترأسها عن هوى ، بل عن جدارة أيضا لسهولة كتابة الكود الخاص بها ، البايثون معروفة أيضا بتعدد إستخدامها ، و نعم إن كنت تتسائل عن إمكانية صناعة موقع بإستخدام لغة البايثون فيمكن ذلك عزيزي عبر إطار Django ، إطار العمل Django او جانغو مبني على تقنية MVT او Model View Template ، و ليست بمختلفة كثيرا عن الMVC ، يقوم Django على مبدأ تسهيل بناء موقع بشكل أسهل و بحماية عالية ، تم إصدار اول نسخة من الإطار في سنة 2003 ، و لازال قائما و مستخدما في عدة مواقع عالمية اليوم .
إطار العمل Asp.Net :
ليست متداولة كثيرا أليس كذلك ؟ لا أقصد اللغة بل أقصدها على شكل Framwork ، الـ Asp.net من فريموركات الويب القوية جدا من ناحية الحماية ، من إبتكار المايكروسوفت بالطبع و يمكن برمجة تطبيقات الويب بالإعتماد على الـ C# ، نعم ، تعتمد هي الأخرى على مبدأ الـ MVC ، و تقدم لك خيار صناعة موقع إحترافي بمميزات عالية و الأهم بحماية جد قوية ، شيئ ربما لاحظناه على مر السنين و على مر المواقع المبرمجة بالـ Asp ، فكلها تقريبا قوية و منيعة ، يعود ضعف الـ Asp.Net في الإستخدام الى مشكلة ثقله ، فالمواقع المصممة من خلال هذا الفريموورك أهم مشاكلها ثقل تحميل الموقع و جلب البيانات ، أيضا الى كونها ذات مصدر مغلق و ليس مفتوح ، و هذه ميزة قوية إن اردنا حماية أكبر ، و لكن و رغم ذلك ، تبقى الـ Asp.Net ذات إستعمال كبير في مجالات مختلفة .
إطار العمل Zend :
إطار عمل قوي ، مبني على الـ Php ، سريع و مرن ، مستخدم أيضا بكثرة في تطوير فريمووركات أخرى ، كما انه يملك IDE خاص به من أجل تطوير برمجيات بالإعتماد على الـ Zend ، المشكلة الوحيدة التي قد تصادفها في التعامل مع الـ Zend ، هي تعمقه الكبير و الواسع ، فهو ليس بسيطا ، فكما جاز الذكر يوجد فريمووركات مبنية على الـ Zend ، لذلك قد يتطلب منك العمل بهذا الفريموورك بعض المهارة في لغات برمجية مختلفة على رأسها الـ php ، لكن و في جميع الأحوال ، إن اردت صناعة برمجيات قوية على الويب ، فحتما عليك إستخدام هذا الـ Framwork .
إطار العمل Symfony :
و يُعتبر الأضخم بين كل الفريمووركات المبنية على الـ Php ، و نعم إنه مبني على الـ Php أيضا ، سأكون صريحا معك و أخبرك ان الـ Symfony في الغالب يتم إستخدامه من طرف الشركات ، و نادرا ما نجد فريلانسرز او أشخاص عاديين يشتغلون بالـ Symfony ، ضخم جدا صراحة ، و يمتاز بالمرونة ، فيمكنك صناعة أي شيئ تريد بواسطته ، يوجد أيضا برمجيات و فريمووركات أخرى تعتمد على الـ Symfony على رأسها أقوى فريموورك كما جاز الذكر الـ Laravel ، فستلاحظ جليا أثناء تنصيب الـ Composer إستيراد ملفات معنونة بالـ Symfony ، أيضا مشاريع أخرى مثل Drupal ، تستخدم الشركات الكبرى هذا الفريموورك أولا لحمايته القوية ، و ثانية لتدفق ما يمكن فعله به ، فهو كما جاز الذكر شامل و قوي .
إطار العمل Rails :
الـ Rails او الـ Ruby on Rails ، إطار عمل جد رائع ، و محبوبي أيضا ، فهو إطار العمل الذي أستخدمه في برمجة المواقع حاليا ، مبنى على لغة البرمجة الـ Ruby ، قوي و مرن ، سهل الإستخدام ، و يمكنك صناعة أي شيئ تريده بواسطته ، فتعدد إستخدامه وصل لمجموعة من المواقع على رأسها : Twitter , Themeforest , Khamsat , IFTTT و غيرها من المواقع المشهورة ، الجميع في الـ Rails انه سهل الكتابة و ذكي ، و يحتوي على مجموعة من الـ Gems كما نحب ان نسميها التي تساعدك على إضافة مجموعة كبيرة من المكتبات التي تساعدك على صناعة مواقع إحترافية بشتى الأصناف ، الـ Rails يعتمد بالطبع على تقنية الـ MVC و هو إطار جد رائع عن تجربة .
إطار العمل CodeIgniter :
إطار عمل قوي أيضا ، مبني على الـ Php ، إن لاحظت معي يا صديقي ان جل الفريموركات و إطارات العمل مبنية على الـ Php ، لذلك مما لا شك فيه انه يجب عليك تعلم الـ Php في أقرب وقت إن اردت إتقان بعض الفريمووركات ، اللهم ان كنت تتقن الـ Ruby او الـ Python لإستخدام فريموركات اخرى ، إطار CodeIgniter إطار عمل مفتوح المصدر و يمكنك دائما تطويره ، و لكنه و رغم ذلك قوي و جيد جدا في الحماية ، و الأهم من ذلك خفيف جدا ، و بالطبع مبني على معمارية الـ MVC ، يمكنك إستخدام هذا الإطار لصناعة مجموعة من المشاريع البرمجية البسيطة ، بالنسبة لمشاريع كبيرة فهو جيد ، لكن قد تصادفك بعض المشاكل لاحقا في تطوير مشروعك إلى الأفضل .
إطارات عمل أخرى :
لا يوجد فقط الإطارات السبعة هذه بل يوجد الكثير و الكثير أكثر مما تتصور ، و يمكنني أن اقترحها عليك كالتالي :
Cake Php
Fuel Php
YII Framwork
و لك حرية البحث عن المزيد و المزيد من الفريمووركات إن لم تكن مقتنعا بما جاء في هذا الموضوع .
تعليقات
إرسال تعليق