كيف تصبح مطور ويب باك ايند Back - End Web Development - المسار الشامل 1 |
كيف تصبح مطور ويب باك ايند Back - End Web Development - المسار الشامل | الشرح الكامل بالتفصيل مع الداتا اللازمة
- في مقال سابق تكلمنا عن "الدليل الشامل لتصبح مطور ويب ' web Development "
هتلاقي المقال هنا : كيف تصبح مطور ويب web development بشهايد معتمدة | طريقك لدخول المجال من اوسع أبوابه
واتكلمت فيه عن كل ما تحتاجونه من ادوات ونصائح لكي تصبح "web Development" + وكذلك مصادر جيدة للتعلم
- لا شك ان اتخاذ مسار مهني بالنسبة لك أمر ضروري، فلا يمكنك تعلم جميع التقنيات الموجودة في العالم الرقمي، و سيتوجب عليك الإختصاص في مجال محدد في سبيل تعلم التقنيات المتخصصة فقط في ذلك المجال. يوجد الكثير من المجالات البرمجية التي يمكنك أن تتخصص فيها كأن تصبح مطور Front End او مطور تطبيقات موبايل، أو مبرمج تطبيقات سطح المكتب، في هذا المقال سنرسم لك المسار الصحيح لتصبح مطور Back End محترف، و سنقوم بتعريف أبرز التقنيات المستخدمة في هذا المسار. فتابع معنا.
تابع للنهاية ✅
كيف تصبح مطور ويب باك ايند Back - End Web Development - المسار الشامل2 |
النقاط المهمة الي راح نتكلم عنها خلال مسارك كمطور ويب :.
- 📌 1 - من هو مطور ال Back - End Web Development ؟
- 📌 2 - فهم الخوارزميات و هيكلة البيانات (Data Structures)
- 📌 3 - احترف التعامل مع تقنيات تحليل المشاريع و قواعد البيانات (UML مثلا )
- 📌 4 - فهم التعامل مع الـ SQL
- 📌 5 - تعلم تقنيات ربط قواعد البيانات بشكل تقليدي مع مختلف المشاريع البرمجية
- 📌 6 - إطلع على مختلف أنواع قواعد البيانات DBMS
- 📌 7 - فهم أساسيات الـ Design Pattern المتعلقة بالـ Back End
- 📌 8 - إختيار أفضل إطار عمل "Framework" ملائم لك
- 📌 9 - نظرة أقرب عن إطارات الـ PHP
- 📌 10 - التعامل مع الـ REST Api
- 📌 11 - إيجاد التعامل مع إطارات الجافاسكربت الخاصة بالـ Back - End
- 📌 12 - مصادر تعلم و كورسات :
- 📌 13 - مبروك عليك ... أنت مطور Back - End الآن
يلا ننتقل بقا لمحتوي المقال الجامد دا
------------------------------------
📌 1 - من هو مطور ال Back - End Web Development ؟
مطور الـ Back End هو المطور الذي يهتم بالمعلومات و البيانات الخاصة بالموقع، و يعني ذلك كل المعلومات المسجلة في قواعد البيانات أو المعلومات التي سيتم تسجيلها في قواعد البيانات، إلى جانب استعراضها، تخزينها، فحصها، تشفيرها، تعديلها و الكثير ...، لا يهتم مطور الـ Back End إطلاقا بواجهة الموقع أو المستخدم للموقع، كل ما يهمه هو تخزين البيانات و استعراضها و القيام بالعمليات اللازمة و الدقيقة من أجل الحفاظ على بيانات الموقع مأهولة و صحيحة و بعيدة عن أي تسريبات.
+ دي صورة فيها شرح مبسط عن خريطة Back - End Developer مع الشرح باللغة العربية 💪
شرح مبسط عن خريطة Back - End Developer مع الشرح باللغة العربية 💪 |
- مطور الـ Back End ضروري في أي مشروع برمجي، فهو الشخص الذي يجعل أي موقع ديناميكي و حركي قادر على إرسال البيانات و استقبالها و تخزينها و فلترتها، و بدونه فالموقع يبقى موقع تابث لا يستعرض سوى ستايل أو ديزاين محدد و لا يتفاعل مع المستخدم الأخير.
- + - دا فيديو بيعرفك الفرق أكتر بين مجال Front-end ومجال Back-end
+ ملاحظة مهمة جدا ⚠️ : الخرائط دي عبارة تلخيص للمقالات تبع مسارات البرمجة عشان لو المقال طويل
--------------------
📌 2 - فهم الخوارزميات و هيكلة البيانات (Data Structures)
- أول خطوة لك لتصبح مطور Back End هو إيجاد التعامل مع الخوارزميات و هياكل البيانات، لن تحتاجها حتما بشكل كبير في مجال الـ Front End، لكن في الـ Back End فهي حليفتك لتنظيم و إدارة البيانات و إيجاد أفضل الطرق من أجل تقليص مساحة التخزين الخاصة بالبيانات المخزنة و كذا إيجاد أفضل الطرق الخاصة بالبحث و التنقيب و الفلترة للمعلومات المخزنة.
- لا ننسى أيضا، أن هذين التقنيتين ستساعدانك كثيرا أيضا في تشفير البيانات و الحفاظ على الأمان الخاص بالمعلومات أثناء تمريرها بين المواقع و قواعد البيانات. أما الأفضل، تساعدك الخوارزميات و هيكلة البيانات في إيجاد أفضل الحلول للمشاكل التي ستواجهك في عمليات الـ Back End ككل.
- و هذا ما يجعل أول الأشياء التي يجب عليك أولا تعلمها هي هذين التقنيتين، لدينا من أجلك مقال مسبق حول ما هي الخوارزميات و لماذا يجب عليك تعلمها ؟
شرح بسيط للخوارزميات
- ما هي الخوارزميات
- و لماذا يجب عليك تعلمها ؟
- ✴ الخوارزمية :
- هي مجموعة من الخطوات المحددة
- والمتسلسلة اللازمة لحل مشكلة ما
- أو من أجل تنفيذ مهمة محددة.
- مثال
- خوارزمية حساب العمر.
- السنة الحالية - سنة الميلاد = العمر
- 2021 - 2001 = 20
- مثال آخر .
- أحمد يريد الذهاب إلى المتحف.
- الطرق المقترحة (الخوارزميات).
- 1 - استئجار سيارة أجرة
- 2 - إستخدام المواصلات العامة
- من أجل تحديد أفضل طريقة للذهاب إلى المتحف
- من بين الطرق فوق
- يجب فهم نقطتين أساسيتين
- 1 - الوقت ( حساب الوقت المستغرق في الوصول إلى المتحف )
- 2 - التكلفة المادية لكل طريقه
- ⭕ - سيارة الأجرة
- مكلف جدا لكن بوقت أقل
- ⭕ - المواصلات العامة
- أقل في التكلفة لكن الوقت أكثر من سيارة أجرة
- بعد معرفة مميزات وعيوب كل طريقه يجب إختيار أفضل حل بما يناسب ميزانية أحمد 😎
- إذا أمتلك أحمد المال الكافي يختار
- ⭕ سيارة الأجرة
- إذا لم يمتلك المال الكافي سوف يختار
- ⭕ المواصلات العامة.
- ✴ الخوارزميات في البرمجة.
- هي مجموعة من التعليمات البرمجية الواضحة التي
- يتم تنفيذها واحدة تلو الآخرى بشكل متسلسل
- لحل مشكلة ما.
- تهتم دراسة الخوارزميات بعاملين مهمين.
- ⭕ Time complexity
- الوقت الذي يقضيه الكمبيوتر فى تنفيذ الخوارزمية
- ⭕ Space complexity
- كمية الذاكرة التي استخدمها البرنامج لتنفيذ الخوارزمية.
- مثال.
- ⭕ قم بعمل برنامج جمع الأعداد من 1 إلى 1000
- (1 + 2 + 3 + ...... 1000)
- طرق الحل
- ✴ إستخدام دوال التكرار
- نقوم بعمل دالة تكرار تجمع الأرقام من 1 إلى 1000
- باستخدام javascript
- ``` js
- let total = 0;
- for(let i = 1 ; i <= 1000; i++) {
- total += i;
- }
- console.log(total);
- ```
- إستخدام هذه الطريقة
- لن يستخدم الكثير من الذاكرة
- لكن زمن التنفيذ طويل جدا .
- ✴ باستخدام القاعدة التالية
- المجموع = N * (N + 1) / 2
- حيث N = الرقم الذي نريد الجمع إليه
- ``` js
- function sumTo(n) {
- return ((n + 1) * n) / 2;
- }
- let total = sumTo(1000)
- console.log(total)
- ```
- هذه الطريقة
- لا تحتاج إلى الكثير من الوقت
- و لا تستخدم الكثير من الذاكرة
- ✳ عوامل جودة الخوارزمية
- ✴ زمن التنفيذ قليل
- ✴ لا تحتاج إلى إستخدام الذاكرة بشكل كبير
- ✴ خطوات واضحة وسهلة الفهم
- ✴ تحديد المدخلات والمخرجات بدقة
- ✳ لماذا يجب تعلم الخوارزميات.
- تبرز أهمية تعلم الخوارزميات في
- ⭕ تحسين وقت تنفيذ البرنامج.
- ⭕ إستخدام الذاكرة بشكل صحيح.
- ⭕ تبسيط الكود بسبب الإعتماد على خطوات واضحة وسهلة الفهم
- ده فيديو تبع البشمهندس "ابراهيم عادل" عن "البرمجة : الخوارزميات والفرق بينها وبين لغات البرمجة"
لا تنسى الإطلاع عليه، كما ندعوك لإستكشاف أبرز الخوارزميات التي يجب على كل مبرمج معرفتها أيضا.
+ ده افضل مصدر لتعلم الخوارزميات:
------------------------------------
📌 3 - احترف التعامل مع تقنيات تحليل المشاريع و قواعد البيانات (UML مثلا )
- عندما توكل إليك مهمة تطوير الهيكلة الخلفية لموقع محدد، أي تحديد قواعد البيانات التي ستتعامل معها، تحديد عدد الـ Tables و العلاقات بينها، فأنت بحاجة إلى تحويل تلك الأفكار إلى مخططات من أجل تسهيل تطويرها برمجيا، هنا ستحتاج إلى بعض التقنيات الخاصة بتحليل المشاريع و بالتحديد تحليل جزء الـ Back End الخاص بالمشروع المتعلق بقواعد البيانات و خصائصها.
- من بين أشهر التقنيات في العالم نجد تقنية الـ UML، او Unified Modeling Language، و هي تقنية تساعدك في تحويل الأفكار البسيطة إلى قواعد بيانات و علاقات بينها، مثل أن يخبرك شخص أنه يريد موقع خاص بالأفلام ( و هذه هي الفكرة ) فتقوم بتحويلها أنت لقواعد بيانات عبارة عن جداول ( مثل جدول للأفلام، جدول للمستخدم، جدول للتقييمات ...) .
- الـ UML شاسع، و يعتمد على Diagrams كثيرة، كل Diagram مخصص في تحليل شيئ محدد، أنت كمطور Back End ستحتاج بشكل أساسي إلى Class Diagram الذي تقوم من خلاله بتحديد الجداول الخاصة بقاعدة البيانات.
- من التقنيات الاخرى الشبيهة أيضا نجد Merise، و هي تقنية فرنكوفونية متخصصة في تحليل قواعد البيانات بشكل مخصص و العلاقات بين الجداول، ستحتاجها كذلك.
- + دا فيديو بيعرفك أكتر عن ال "ما هي لغة النمذجة الموحدة What's UML"
- + ده ملخص ممكن يساعدك كثير بتعلم وفهم بعض المفايهم عن ال UML:
--------------------------------
📌 4 - فهم التعامل مع الـ SQL
- الـ SQL او Structured Query Language و هي لغة استعلام مخصصة للتعامل مع قواعد البيانات، و هي التي تتيح لك حقا التلاعب بكل شيئ يتعلق بقواعد البيانات، من إنشاء قواعد البيانات، إنشاء الجداول، إنشاء الحقول، إجراء العمليات الإعتيادية عليها ( الإضافة، التعديل، البحث، الحذف .. ) و تخصيص العلاقات بين الجداول أيضا. و تعتبر الـ SQL لغة شاملة لقواعد البيانات، أي أن تعلمها إجباري بل و احترافها إجباري من أجل تسهيل التعامل مع قواعد البيانات و تخصيص استعلامات محمية و احترافية، فحتى عند استخدامك للغات برمجية أخرى، ستحتاج إلى الـ SQL من أجل التواصل مع قواعد البيانات، و أي استعلام لا يتصف بالحماية و الأمان، يعني أن معلومات الموقع و قواعد بياناته معرضة للإختراق ( كما نعلم جميعا يوجد ثغرة تدعى SQL Injection ناتجة عن خطأ في الـ Query ).
- + - دا فيديو بيعرفك الفرق أكتر عن "شرح لغة استعلام قواعد البيانات SQL بالأمثلة العملية"
- للـ SQL مستويات عديدة، في البداية قد يكون بسيطا، و يزداد صعوبة حين تلج للـ Transact SQL، و يشتد أكثر و أكثر حين تدرك أنه يمكنك استخدام الـ SQL في مجال علوم البيانات و الـ Big Data، مما يجعل ساحة تعلمه واسعة جدا.
- كمطور Back End، أنت بحاجة لتعلم الـ SQL في حدود نطاق العمل، أي ما تحتاج إليه فقط من أجل عملك، و لست بحاجة لتعلم تقنيات الـ SQL الخاصة بعلوم البيانات مثلا، فهذا صنف آخر و مجال آخر، لكن سنتفق جميعا أن الـ SQL إجبارية.
- + دي مصادر اضافية هتساعدك بشكل جيد في تعلم ال SQL
- كورس ال MySQL
- ملخص شامل للغة قواعد البيانات SQL (باللغة العربية)
-------
- ملخص لشرح بعض أوامر لغةSQL الأساسية - الجزء الاول
-------
- ملخص لشرح بعض أوامر لغةSQL الأساسية - الجزء الثاني
----------------------------
كيف تصبح مطور ويب باك ايند Back - End Web Development - المسار الشامل 4 |
📌 5 - تعلم تقنيات ربط قواعد البيانات بشكل تقليدي مع مختلف المشاريع البرمجية
- حين نتحدث عن المشاريع البرمجية التي تتطلب قواعد بيانات، فإننا نحصر الإختيارات في ثلاث تقنيات فقط : مواقع الويب، تطبيقات الموبايل، ثم برمجيات سطح المكتب. أول مهمة لك كمطور Back End بعد تعلمك صناعة قواعد البيانات و هيكلتها هو الإنتقال إلى تعلم التقنيات المتخصصة في ربط قواعد البيانات مع مختلف المشاريع البرمجية.
🛑 - بالنسبة لمطور مواقع الويب :
- تعلم تقنيات مثل الـ PHP قد يكون ضروريا، بحيث تساعدك الـ PHP على التواصل مع السيرفر و الخادم، و ربط قواعد البيانات بالمشاريع البرمجية، و إنشاء Queries بناءً على المتطلبات التي تريد ( بإستخدام الـ PDO او MySQLi )، كما أن الـ PHP تعتبر لغة برمجة تقليدية للتواصل مع قواعد البيانات و يجب على أي مطور Back End إيجاد التعامل معها.
🛑 - بالنسبة لمطور تطبيقات سطح المكتب :
- سيختلف هنا الأمر قليلا، حسب نوع قواعد البيانات التي تستخدم، و اللغة البرمجية التي تستخدمها أيضا، لنقل مثلا أنك تتعامل مع برمجية بالـ C#، هنا سيتوجب عليك تعلم تقنيات الـ Ado.net التي تسمح لك بربط قواعد البيانات مع المشروع، ثم إجراء Queries من خلالها.
---------
🛑 - بالنسبة لمطور تطبيقات الموبايل :
- يختلف الأمر هنا أيضا حسب المطلوب، لكن بشكل عام الـ PHP ستكون وسيلة وسيطة بينك و بين التطبيق في حالة استخدام قواعد بيانات مستضافة على الخادم، أما في حالة استخدام تقنيات أخرى مثل Firebase فالأمر مختلف.
بشكل عام، ستلاحظ أن أبرز تقنيتين ستحتاج إليهما في التعامل مع كل المشاريع البرمجية في نطاق الـ Back End تتطلب منك الـ PHP و الـ SQL، لذا حاول تعلمهما، و إيجادهما بإتقان.
----------------------------------
📌 6 - إطلع على مختلف أنواع قواعد البيانات DBMS
- يعتقد معظم مطوري الـ Back End أن التعامل مع قواعد البيانات سبقى محصور فقط في صنف الـ MySQL او بشكل عام الـ RDBMS او قواعد البيانات العلائقية، لكن مع الوقت، و مع الحصول على مشاريع أكثر تفرع و قوة، ستجد نفسك وسط زخم من أنواع قواعد البيانات بالصنفين RDBMS و NoSQL.
الفرق بين SQL و NOSQL
في عالم قواعد البيانات ، هناك نوعان رئيسيان هما: SQL و NoSQL
-
كلاهما يختلفان في طريقة بنائهما ونوع المعلومات التي يخزنانها وطريقة التخزين التي يستخدمونها.
-
تعريف ال SQL هي اختصار لجملة (see-Quel) هي اللغة القياسية للتعامل مع قواعد البيانات العلائقية.
-
تحدد قاعدة البيانات العلائقية (RDBMS) العلاقة بين البيانات في شكل كيانات / جداول. بمعنى آخر ، يقوم نظام RDBMS بتخزين البيانات بطريقة منظمة وله مخططات محددة مسبقًا.
-
تعريف NOSQL
-
NoSQL هو نظام DMS غير علاقي ، ولا يتطلب مخططًا ثابتًا ، ويتجنب عمليات الانضمام ، ويسهل قياسه. تُستخدم قاعدة بيانات NoSQL لمخازن البيانات الموزعة مع احتياجات تخزين البيانات الضخمة.
-
• طريقة التخزين
-
يخزن SQL البيانات في جداول حيث يمثل كل صف كيانًا ويمثل كل عمود نقطة بيانات.
أما طريقة تخزين ال NoSql يمكن أن تحتوي قواعد بيانات NoSQL على نماذج تخزين أدناه:
-
🛑 - مخازن القيمة الرئيسية
-
🛑 - قواعد بيانات الوثيقة
-
🛑 - قواعد البيانات ذات الأعمدة العريضة
-
🛑 - قاعدة بيانات الرسم البياني
-
• ال Schema:
-
في SQL ينبغي عليك تصميم وانشاء الجداول قبل ادخال البيانات
لكن في NoSql فالامر ديناميكي بحيث تستطيع اضافة اعمدة جديدة اثناء ادخال البيانات
-
• الاستعلام:
-
Querying
-
تستخدم قواعد بيانات SQL بناء جملة SQL لتحديد البيانات ومعالجتها ، وهو أمر قوي للغاية.
في قواعد بيانات NoSQL ، تركز الاستعلامات بشكل أكبر على مجموعة المستندات. أنواع مختلفة من قواعد البيانات لها طرق استعلام مختلفة.
-
• قابلية التوسع:
-
Scalability
-
في معظم السيناريوهات الشائعة ، تكون قاعدة بيانات SQL قابلة للتطوير عموديًا مما يعني أنه يمكنك زيادة الحمل على خادم واحد عن طريق زيادة أشياء مثل وحدة المعالجة المركزية أو ذاكرة الوصول العشوائي أو SSD ، والتي قد تكون باهظة الثمن.
-
أما NoSQL قابلة للتطوير أفقيًا ، مما يعني أنه يمكننا إضافة المزيد من الخوادم بسهولة في البنية التحتية لقاعدة بيانات NoSQL الخاصة بنا للتعامل مع الكثير من حركة المرور.
-
هذا يعني أنك تتعامل مع المزيد من حركة المرور عن طريق التجزئة أو إضافة المزيد من الخوادم في قاعدة بيانات NoSQL الخاصة بك.
-
• الوثوقية Reliability (ACID):
-
لغة Sql هي اكثر وثوقية من NOSQL لان NoSql تضحي بالوثوقية بسبب قابلية التوسع
متى تستخدم قواعد بيانات SQL و NoSQL؟
-
عندما يتعلق الأمر بقواعد البيانات ، لا يوجد حل واحد يناسب جميع السيناريوهات. لهذا السبب تعتمد معظم الشركات على كلا النوعين من قواعد البيانات لحالات الاستخدام المختلفة.
على الرغم من أن قاعدة بيانات NoSQL أصبحت شائعة بسبب سرعتها وقابليتها للتوسع ،
-
إلا أن هناك حالات تؤدي فيها قواعد بيانات SQL بشكل أفضل. لذا فإن اختيار قاعدة البيانات الصحيحة مهم.
-
أسباب استخدام SQL:
-
🛑 عندما تحتاج إلى الامتثال ACID
-
🛑 يتم تنظيم بياناتك والهيكل بالكاد يتغير
-
🛑 عند الانضمام وتنفيذ الاستعلامات المعقدة
-
أسباب NoSQL:
-
🛑 لتخزين كميات كبيرة من البيانات
-
🛑 بحاجة إلى قابلية التوسع
-
🛑 التطور السريع
-
🛑 البيانات ليست منظمة
-
شركات تدعم sql
-
PostgresSQL, MySQL, Oracle DB, Maria DB, Sqlite
-
شركات تدعم No SQL
-
Mongo DB, Couch DB, Cassandra, Redis, HBase etc
-------
- كما يجب عليك إيجاد التعامل مع مختلف منصات إدارة قواعد البيانات، إذ نجد أشهرها مثلا الـ MySQL، لكن يوجد من
- صات إدارة قواعد بيانات أخرى يجب عليك إيجاد التعامل معها مثل MongoDB، PostgreSQL، Firebase,MariaDB, SQL Server و غيرها،
- تختلف المنصة التي ستستخدمها حسب المشروع البرمجي الذي أنت بصدد التعامل معه، فبإفتراض أنك ستشتغل على مشروع ضخم جدا و قابل للتطوير، فعليك الإبتعاد في هذه الحالة عن الـ RDBMS و التعامل مع الـ NoSQL عبر منصات مثل MongoDB، لكن في حالة المشاريع المصغرة و التابثة من حيث تخزين البيانات، فيستستحن الإعتماد على الـ RDBMS، أما المنصة فتختلف فيمكنك مثلا التعامل مع الـ SQL Server إن كان الخادم موجود فيزيائيا في مكان عملك، او الـ MySQL في حالة كنت ستحجز استضافة أو سيرفر عبر الإنترنت، و هكذا دواليك.
---------------------------------
📌 7 - فهم أساسيات الـ Design Pattern المتعلقة بالـ Back End
- بعد اكتسابك للمعارف الأساسية في مجال الـ Back End، و تحقيق إمكانية صناعة مواقع أو برمجيات تتصل بقواعد البيانات و إجراء الإستعلامات، قد تعتقد أنك وصلت للحد
- الأقوى في مجال الـ Back End، لكن هذا الأخير شرس و يتطلب الكثير من الموارد و التقنيات من أجل احترافه. بعد إيجادك للتقنيات الأساسية و المفاهيم الأولية حوله، فقد حان الوقت للإنتقال إلى صنف آخر، الـ Design Pattern أو أنماط التصميم.
- يوجد الكثير من أنواع أنماط التصميم، لكننا نقترح عليك بشكل أساسي الإطلاع فقط على التقنيات المستخدمة بكثرة في مجال الـ Back End، و بالتحديد أنماط التصميم المستخدمة في إطارات الـ Back End الشاملة، و نخص بالذكر :
---------
🛑 - نمط و معمارية MVC :
- اختصاراً لعبارة Model-View-Controller، و هي معمارية تقوم بفصل الـ Back End الذي يتخصص في الـ Controller و الـ Model على الـ Front End الذي يتخصص في الـ View، بكل بساطة، تقوم بتقسيم مشروعك بشكل تستطيع كمطور Back End تنظيم كل شيئ باحترافية، من انشاء قواعد البيانات و الجداول في الـ Model إلى تشغيل و تطبيق الإستعلامات عبر الـ Controller.
🛑 - نمط و معمارية MVP :
- اختصاراً لعبارة Model-View-Presenter، و هو لا يختلف كثيراً عن الـ MVC، بل في الحقيقة هو تخصيص ثانوي للـ MVC يتيح لمطوري الـ Front End احترافية أكثر أثناء العمل.
🛑 - معمارية MVVM :
- اختصاراً لـ Model-view-view-model ، هي الأخرى شبيهة بنفس مبدئ السابقتين، إذ الهدف منها بالأساس فصل الواجهات عن الـ Back - End من أجل سهولة تطوير هذه الأخيرة و ضمان الأمان و الحماية.
- و يوجد معماريات أخرى قد تود الإطلاع عليها، لكن بشكل أساسي، أنت بحاجة للـ MVC أساسا، إذ من خلالها تم بناء مجموعة من الإطارات و الفريمووركات، مما يأخذنا للفقرة التالية.
و يوجد معماريات أخرى قد تود الإطلاع عليها، لكن بشكل أساسي، أنت بحاجة للـ MVC أساسا، إذ من خلالها تم بناء مجموعة من الإطارات و الفريمووركات، مما يأخذنا للفقرة التالية.
----------------------------------------
📌 8 - إختيار أفضل إطار عمل "Framework" ملائم لك
- بعد تعلم كل ما سبق، ستجد أن إنشاء مشاريع برمجية Back End معقد قليلا، و يستهلك الكثير من الوقت و الجهد من أجل تجهيز المشروع و تتبع خصائص الحماية و إصلاحها، و سيكون من السهل لو كانت هناك طرق أكثر أماناً و احترافية لصناعة مشاريع Back End بشكل أفضل. و في الحقيقة يوجد، إنها الإطارات أو الفريمووركات Frameworks.
- الفريمووركات، هي عبارة عن تقنيات تجمع بين لغات البرمجة و أحد المعماريات المستخدمة سابقا، لتوفر لك إمكانية تهيئة مشروع بالكامل بإستخدامها، و أضحت اليوم أفضل طريقة لإنشاء مشروع يتطلب عناصر الـ Back End، و يجد الكثير من الإطارات أبرزها :
🛑 - إطارات الـ PHP :
- إن كنت تجيد التعامل مع الـ PHP كما طرحنا سابقا، فيمكنك الإعتماد على مجموعة ضخمة من الإطارات في الـ Php أبرزها : Laravel, Zend, Symfony, Magento, Codeigniter, Yii, Cake PHP، لأنها كثيرة، سنخصص لها فقرة
لوحدها في هذا المقال مباشرة بعد هذه الفقرة التعريفية بالاطارات.
🛑 - إطار Django / Flask :
- إن كنت تفضل استخدام لغة البرمجة بايثون، فتوفر لك إطارات لصناعة مواقع الويب بإحترافية أبرزها Django و Flask، كما أن الـ Back End الخاص بها سهل التعامل معه.
-----------
🛑 - إطار Ruby on Rails :
- إطار آخر يعتمد على لغة البرمجة Ruby و يأتي بنظام سهل التعامل بشكل كبير، مستخدم بشكل كبير أيضا في عدة مواقع عالمية، كما يأتي بنظام حماية متفوق.
🛑 - إطار ASP.net :
- إن كنت تفضل مايكروسوفت و خدماتها القوية، فيمكنك الإعتماد على إطار ASP.net أيضا، إذ يوفر لك هيكلة جيدة للمشروع و حماية لكل البيانات و المراسلات.
- مهمتك عزيزي القارئ هنا، أن تحاول البحث عن كل إطار على حدة، خذ فكرة بسيطة عنه، حاول ان تشاهد فيديو أو إثنين حوله، ثم حاول تحديد أفضل إطار ملائم لك، تقنيا ستتوجه لـ Laravel لأنه الأكثر سهولة و الذي يمكنك من خلاله صناعة أي نوع من المواقع في العالم.
-----------------------
📌 9 - نظرة أقرب عن إطارات الـ PHP
- يوجد الكثير من إطارات الـ Php، و ليست كلها نفس الشيئ، بل لكل إطار غرض محدد، و استخدامات محددة، و مجال ينشط فيه بشكل أكبر، لذلك، حتى نساعدك في مسارك كمطور Back End، علينا أن نضع بين يديك مجموعة من هذه الإطارات مع شرحها الخاص :
🛑 1- إطار العمل Laravel :
- يعتبر الأشهر و الأكثر استخداما من بين كل إطارات الـ Php و باقي الإطارات الأخرى عامة، يعود ذلك بشكل أساسي لكون إطاراً ليناً صالح لأي موقع ويب و لأي استخدام، فمهما كان نوع المشروع يمكن لـ Laravel أن يكون الحل المثالي له، كما أنه دائم التحديث، و يمكن ربطه بالعديد من التقنيات الأخرى بسهولة.
---------
🛑 - إطار العمل Zend :
- إطار مبني على الـ Php أيضا، يتمتع الـ Zend بحزمة كبيرة من الـ Packages، مما يجعل استخدامها في المشاريع الصغيرة أمراً مستبعدا، نقترح عليك تعلم و استخدام Zend للمشاريع الكبرى بشكل أكبر.
---------
- قد يكون أضخم بقليل من الـ Zend أيضا، لا ينصح به إن كنت تهدف لإنشاء المشاريع الصغيرة أو المتوسطة، فهو نسبيا ثقيل من حيث الـ Packages و يتطلب موارد كثيرة، لذلك استخدمه فقط للمشاريع الكبرى.
🛑 - إطار العمل Codeigniter :
- برشح لك هذا الإطار مباشرة بعد Laravel، متوسط من حيث العمل و سهل من حيث الكود البرمجي و سلاسته، و يمكن استخدامه للمشاريع الصغرة و المتوسطة و أحيانا الكبيرة، يأتي بليونة كبيرة و يستطيع أي شخص تعلمه و استخدامه في وقت وجيز.
--------
🛑 - إطار العمل Magento :
- إطار مخصص بشكل كبير لمشاريع مواقع الـ eCommerce و المواقع التجارية، لا يتطلب الكثير من الخبرة البرمجية، لكنه يأتي بخصائص شاسعة تتطلب منك الإطلاع على الإطار بشكل مكثف قبل استخدامه.
📌 10 - التعامل مع الـ REST API
- حين تنتقل للتعامل مع مشاريع بشكل كبير بالإعتماد على إطارات محددة، ستنتهي تعاملاتك العادية مع الـ Queries، و نادرا ما ستتعامل معها، إذ ستنتقل الآن إلى إرسال الأوامر و الإستعلامات عبر مجموعة من الـ Functions، و إسترجاع البيانات على شكل Json ( أو كود شبيه بالـ Json بحيث يحصل Object على كل المعطيات و تقوم فقط بتحديد نوع البيانات لإظهارها من خلال الـ Object ). حتى بتناسي قواعد البيانات، ستتعامل مع API خارجية ستحتاجها في مشروعك البرمجي.
- ده مقال كنت اتكلمت فيه عن "مفهوم ال API" اضغط علية للذهاب الية
مفهوم ال API | وما هي خدماتة وكيف تتعلمة
- بشكل عام، ستبدأ التعامل مع ما يسمى بالـ API، بل حتى أنك ستقوم بصناعة API مخصصة لمستخدمين أو مبرمجين آخرين في نفس المشروع من أجل تحديد نوع البيانات التي يستطيعون الوصول إليها دون إمكانية الوصول لمعلومات حساسة في قواعد البيانات.
- الـ REST API ليس بتلك الصعوبة و يمكن تعلمه في وقت وجيز، لكن تعلمه و تعلم التعامل معه أمر إجباري.
"المصطلحات الأكثر شيوعًا بواجهة برمجة التطبيقات (API) "
ماهو API وما فائدته ؟
- لعلك تتسأل ماهو API ؟ API او Application Programming Interface وباللغة العربية واجهة برمجة التطبيقات. API ببساطة هى نقطة الوصل بين بيئة تطويرية معينة والمطورين , حتى تتيح لهؤلاء المطورين الاستفادة من خدامات هذه البيئة بدون الحاجة إلى بناء كل شئ من الصفر . وبشكل عام هدف API هو اخفاء التفاصيل Encapsulation و ابراز طريقة الاستفادة من الكود .
- مثال من الواقع لتقريب الفكرة , عندم تنتج شركات محركات سيارات محرك جديد فانها تقوم بتغليف هذا المحرك وتقوم بطرحه بالسوق لتستفيد منه الشركات لبناء منتاجاتها الخاصة كالسيارات مثلا وقد تستخدمه الشركة بدون الدخول فى تفاصيل تصنيعه فما يهم الشركة هو كيف تستخدم المحرك لبناء منتجها وليس كيف صُنع المحرك .
هذا بالضبط ما يحدث فى البرمجة عندما نستخدم كلاس او دالة او Plugin فى مشروعنا , فما يهمنا فعلًا هو كيف نستخدمه ليخدم مشروعنا وليس كيفية عمله .
وإليك بعض الامثلة عن API
- يوجد الكثير من الامثلة API’s مشهورة نصادفها كل يوم مثلا الفيسبوك يتيح API للمواقع لتسجيل الدخول عن طريقه بدون الحاجة إلى بناء نظام تسجيل دخول من الصفر , فانت عندما تريد اضافة هذه الاضافة إلى موقعك لن تطلع على كيفية بنائها ولكن ما يهمك كيفية استخدامها لاضافتها لموقعك او تطبيقك , ويوجد الكثير من الامثلة الاخرى لل API مثل خرائط جوجل Google Maps التى تسمح للمطورين بعرض اجزاء من الخرائط لامكان معينة على تطبيقهم او موقعهم .
- مثال اخر عندم تقوم بشراء شئ على الانترنت من موقع معين فهذا الموقع يستخدم API الخاصة بشركة VISA ليقوم بالتواصل معه وخصم المال من بطاقتك .
- مثال اخر ولكن هذه المرة من تطبيقات سطح المكتب , فاذا اردت بناء برنامج وهذا البرانامج يريد بعض التحكم فى جهاز الكموبيوتر فانه يستخدم API التى توفرها نظم التشغيل للتحكم فى الجهاز بدون الحاجة إلى الكثير من العمل للحصول على هذه الصلاحيات والدخول فى البرمجة في مستويات أدنى وتقوم بإستخدام لغة Assembly او التجميع لكي تقوم بهذه العملية .
مثال اخير MySQL API فى لغة PHP فانت عندم تكتب استعلام مثل :
mysql_query(‘SELECT * FROM tablename’);
فكل ما يهمنا هو ان الدالة للاستعلام من قاعدة البيانات ولكن الكثير من التفاصيل مخبأة عن المطورين
أمثلة عملية على API’s
- Google API’s : حيث توفر جوجل مجموعة كبيرة من واجهات البرمجة مثل خدامات الترجمة Google Translate API وخدامات الخرائط Google Maps API واليوتيوب YouTube API.
- Facebook API’s : يوفر أيضًا الفيسبوك مجموعة من API’s مثل Facebook social graph ويستخدم فى الوصول لمجموعة من البيانات العامة للمستخدمين.
- واجهات برمجة تطبيقات REST
تم تصميم خدمات الويب فى الأساس باستخدام SOAP وهو بروتوكول للتواصل بإستخدام بروتوكول HTTP وصيغة XML , على الرغم من ذلك فإن معظم تطبيقات الويب الحديثة تستعمل واجهة البرمجة بإستخدام REST.
تم طرحه فى الأساس عام 2000 على يد Roy Fielding , وهو مجموعة من الهياكل و مبادئ التصميم المستخدمة فى بناء النظم الموزعة وتضمن تواصل هذه النظم وتبادل أي نوع من أنواع البيانات مثل (الصور والفيديوهات وإلخ) ولعل أكثر ما ساهم فى إنتشار REST هو السهولة النسبية فى بناء التطبيقات والمرونة الكبيرة التى يتمتع بها.
في واجهة برمجة تطبيقات REST ، يمكن أن يكون المورد أي شيء تقريبًا ، على سبيل المثال قائمة بالتغريدات على موقع تويتر او حالة الطقس فى بلد معين. كل من هذه الموارد قابل للعنونة ، والذي في حالة واجهات برمجة تطبيقات REST المستندة إلى الويب يكون عنوان URL ،
حينما يقوم المستخدم لل API بطلب العنوان يقوم API بالرد باي نوع من انواع الصيغ مثل JSON او صورة او حتى صفحة Web.
يوفر API ميزة إرسال البيانات للتطبيقات الأخرى ليعالج التطبيق البيانات بالطريقة التى يريدها مما يوفر مرونة كبيرة فى إستخدام البيانات ولكن هذا ايضًا له اثار جانبية حيث أنه ابطئ من حالة معالجة البيانات ثم إرسال المنتج النهائى للمستخدم.
و يوجد الكثير من الامثلة الاخرى ولكن كانت هذه امثلة شهيرة ولكن مفهوم API الشامل غير مقصور على هذه الامثلة ولكن كما ذكرنا فهو بشكل عام اخفاء وتغليف اجزاء معينة لاستخدامها بطريقة او باخرى
------------------------
📌 11 - إيجاد التعامل مع إطارات الجافاسكربت الخاصة بالـ Back - End
- بتعلمك كل التقنيات أعلاه، نجزم أنك الآن أصبحت مطور Back End محترف قادر على التعامل مع أي مشروع برمجي و هيكلته داخليا بشكل جيد و بالتقنيات الملائمة، و لن يبقى سوى تطوير الواجهة و التصميم و التي تهم مطور الـ Front End و ليس مطور الـ Back End.
- لكن، سيحين ذلك الوقت الذي تحتاج فيه إلى إدراج بعض اللمسات بإستخدام الجافاسكربت، أو بشكل أصح إطاراتها، خصوصا إطارات الـ Back End، و نخص بالحديث هنا بشكل كبير الـ Nodejs و كل متعلقاته مثل ExpressJs، بالإضافة إلى تقنيات مثل الـ Vuejs و Angular و React، التي تهتم هي الأخرى بربط الموقع بقواعد البيانات و جلب البيانات و التعامل معها بشكل حي Real Time.
- مهمتك الأخيرة كمطور Back End أن تجيد التعامل مع هذه التقنيات، بل حتى أنه يمكنك تطوير الـ BackEnd لموقع كامل بالإعتماد فقط على التقنيات الجافاسكربت، كتطوير موقع بإستخدام الـ MERN او MEAN التي تتضمن تقنيات مثل : MongoDB, Expressjs, Angular/React و الـ Nodejs، فهذه التقنيات كفيلة بتطوير موقع من حيث الـ BackEnd أيضا.
-----------------------------------
كيف تصبح مطور ويب باك ايند Back - End Web Development - المسار الشامل 3 |
📌 12 - مصادر تعلم و كورسات :
⛔ دى بعض الترشيحات لكورسات البشمهندس الغالي (Osama Mohamed) فى كلا المجالين :
كورسات ال Back - End Development :
كورس ال PHP
------------
كورس ال Laravel
-----------
كورس ال MySQL
----------
كورس ال Python من قناة البشمهندس الغالي Osama Mohamed
----------
كورس كامل في ال PHP. MySQL باللغة العربية
----------
كورس Object Oriented Programming using Java
دورة Object-Oriented Programming معتمد بشهادة
---------
كورس Complete Ruby Tutorial for Beginners
كورس اخر
----------
+ ده افضل كورسات C# بجميع المراحل من قناة البشمهندس المحترم Mohamed Ebrahim Saad
اضغط هنا للذهاب للقوائم التشغيل
------------------------------
+ في نهاية المقال : نصيحتي لمن يريد ان يصبح Back - End Developer
- لا تبحث عن "أفضل لغة برمجة أتعلمها وابتعد عن المقالات التي تعدد لك ترتيب اللغات هذا العام، ولا تبني قرارك لتعلم أي لغة بناء على تلك المقالات، خاصة إذا كنت مبتدئ.
- تفصيلي للإجابة كالآتي: اللغات في جوهرها اداة! لا اكثر ولا اقل. أداة تستخدمها لتحقيق هدفك. الهدف هو الأهم، بغض النظر عن الأدة المستخدمة.
اذا كان لديك اي سؤال حول البرمجة لا تتردد في طرحه في التعليقات 💬
يارب يكون المقال فعلا افادكم حتى لو بمعلومه بسيطه ❤
متنساش تدعي للقائمين علي الموقع بالنجاح والتوفيق