مسار مطور Back End ... كيف تصبح مطور Back End محترف

مسار مطور Back End ... كيف تصبح مطور Back End محترف

 لا شك ان اتخاذ مسار مهني بالنسبة لك أمر ضروري، فلا يمكنك تعلم جميع التقنيات الموجودة في العالم الرقمي، و سيتوجب عليك الإختصاص في مجال محدد في سبيل تعلم التقنيات المتخصصة فقط في ذلك المجال. يوجد الكثير من المجالات  البرمجية التي يمكنك أن تتخصص فيها كأن تصبح مطور Front End او مطور  تطبيقات موبايل، أو مبرمج تطبيقات سطح المكتب، في هذا المقال سنرسم لك المسار الصحيح لتصبح مطور Back End محترف، و سنقوم بتعريف أبرز التقنيات المستخدمة في هذا المسار. فتابع معنا. 

من هو مطور Back End ؟ 

مطور الـ Back End هو المطور الذي يهتم بالمعلومات و البيانات الخاصة بالموقع، و يعني ذلك كل المعلومات المسجلة في قواعد البيانات أو المعلومات التي سيتم تسجيلها في قواعد البيانات، إلى جانب استعراضها، تخزينها، فحصها، تشفيرها، تعديلها و الكثير ...، لا يهتم مطور الـ Back End إطلاقا بواجهة الموقع أو المستخدم للموقع، كل ما يهمه هو تخزين البيانات و استعراضها و القيام بالعمليات اللازمة و الدقيقة من أجل الحفاظ على بيانات الموقع مأهولة و صحيحة و بعيدة عن أي تسريبات.

مطور الـ Back End ضروري في أي مشروع برمجي، فهو الشخص الذي يجعل أي موقع ديناميكي و حركي قادر على إرسال البيانات و استقبالها و تخزينها و فلترتها، و بدونه فالموقع يبقى موقع تابث لا يستعرض سوى ستايل أو ديزاين محدد و لا يتفاعل مع المستخدم الأخير. 

فهم الخوارزميات و هيكلة البيانات (Data Structures)

أول خطوة لك لتصبح مطور Back End هو إيجاد التعامل مع الخوارزميات و هياكل البيانات، لن تحتاجها حتما بشكل كبير في مجال الـ Front End، لكن في الـ Back End فهي حليفتك لتنظيم و إدارة البيانات و إيجاد أفضل الطرق من أجل تقليص مساحة التخزين الخاصة بالبيانات المخزنة و كذا إيجاد أفضل الطرق الخاصة بالبحث و التنقيب و الفلترة للمعلومات المخزنة. 

لا ننسى أيضا، أن هذين التقنيتين ستساعدانك كثيرا أيضا في تشفير البيانات و الحفاظ على الأمان الخاص بالمعلومات أثناء تمريرها بين المواقع و قواعد البيانات. أما الأفضل، تساعدك الخوارزميات و هيكلة البيانات في إيجاد أفضل الحلول للمشاكل التي ستواجهك في عمليات الـ Back End ككل. 

و هذا ما يجعل أول الأشياء التي يجب عليك أولا تعلمها هي هذين التقنيتين، لدينا من أجلك مقال مسبق حول أفضل الكورسات و الدورات لتعلم الخوارزميات لا تنسى الإطلاع عليه، كما ندعوك لإستكشاف أبرز الخوارزميات التي يجب على كل مبرمج معرفتها أيضا. 

احترف التعامل مع تقنيات تحليل المشاريع و قواعد البيانات (UML مثلا ) 

عندما توكل إليك مهمة تطوير الهيكلة الخلفية لموقع محدد، أي تحديد قواعد البيانات التي ستتعامل معها، تحديد عدد الـ Tables و العلاقات بينها، فأنت بحاجة إلى تحويل تلك الأفكار إلى مخططات من أجل تسهيل تطويرها برمجيا، هنا ستحتاج إلى بعض التقنيات الخاصة بتحليل المشاريع و بالتحديد تحليل جزء الـ Back End الخاص بالمشروع المتعلق بقواعد البيانات و خصائصها. 

من بين أشهر التقنيات في العالم نجد تقنية الـ UML، او Unified Modeling Language، و هي تقنية تساعدك في تحويل الأفكار البسيطة إلى قواعد بيانات و علاقات بينها، مثل أن يخبرك شخص أنه يريد موقع خاص بالأفلام ( و هذه هي الفكرة ) فتقوم بتحويلها أنت لقواعد بيانات عبارة عن جداول ( مثل جدول للأفلام، جدول للمستخدم، جدول للتقييمات ...) . 

الـ UML شاسع، و يعتمد على Diagrams كثيرة، كل Diagram مخصص في تحليل شيئ محدد، أنت كمطور Back End ستحتاج بشكل أساسي إلى Class Diagram الذي تقوم من خلاله بتحديد الجداول الخاصة بقاعدة البيانات. 

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



فهم التعامل مع الـ SQL 

الـ SQL او Structred Query Language و هي لغة استعلام مخصصة  للتعامل مع قواعد البيانات، و هي التي تتيح لك حقا التلاعب بكل شيئ يتعلق بقواعد البيانات، من إنشاء قواعد البيانات، إنشاء الجداول، إنشاء الحقول، إجراء العمليات الإعتيادية عليها ( الإضافة، التعديل، البحث، الحذف .. ) و تخصيص العلاقات بين الجداول أيضا. و تعتبر الـ SQL لغة شاملة لقواعد البيانات، أي أن تعلمها إجباري بل و احترافها إجباري من أجل تسهيل التعامل مع قواعد البيانات و تخصيص استعلامات محمية و احترافية، فحتى عند استخدامك للغات  برمجية أخرى، ستحتاج إلى الـ SQL من أجل التواصل مع قواعد البيانات، و أي استعلام لا يتصف بالحماية و الأمان، يعني أن معلومات الموقع و قواعد بياناته معرضة للإختراق ( كما نعلم جميعا يوجد ثغرة تدعى SQL Injection ناتجة عن خطأ في الـ Query ). 

للـ SQL مستويات عديدة، في البداية قد يكون بسيطا، و يزداد صعوبة حين تلج للـ Transact SQL، و يشتد أكثر و أكثر حين تدرك أنه يمكنك استخدام الـ SQL في مجال علوم البيانات و الـ Big Data، مما يجعل ساحة تعلمه واسعة جدا.

كمطور Back End، أنت بحاجة لتعلم الـ SQL في حدود نطاق العمل، أي ما تحتاج إليه فقط من أجل عملك، و لست بحاجة لتعلم تقنيات الـ SQL الخاصة بعلوم البيانات مثلا، فهذا صنف آخر و مجال آخر، لكن سنتفق جميعا أن الـ SQL إجبارية. 

تعلم تقنيات ربط قواعد البيانات بشكل تقليدي مع مختلف المشاريع البرمجية 

حين نتحدث عن المشاريع  البرمجية التي تتطلب قواعد بيانات، فإننا نحصر الإختيارات في ثلاث تقنيات فقط : مواقع الويب، تطبيقات الموبايل، ثم برمجيات سطح المكتب. أول مهمة لك كمطور Back End بعد تعلمك صناعة قواعد البيانات و هيكلتها هو الإنتقال إلى تعلم التقنيات المتخصصة في ربط قواعد البيانات مع مختلف المشاريع البرمجية. 

  • بالنسبة لمطور مواقع الويب : تعلم تقنيات مثل الـ Php قد يكون ضروريا، بحيث تساعدك الـ Php على التواصل مع السيرفر و الخادم، و ربط قواعد البيانات بالمشاريع البرمجية، و إنشاء Queries بناءً على المتطلبات التي تريد ( بإستخدام الـ PDO او Mysqli )، كما أن الـ Php تعتبر لغة برمجة تقليدية للتواصل مع قواعد البيانات و يجب على أي مطور Back End إيجاد التعامل معها. 
  • بالنسبة لمطور تطبيقات سطح المكتب : سيختلف هنا الأمر قليلا، حسب نوع قواعد البيانات التي تستخدم، و اللغة البرمجية التي تستخدمها أيضا، لنقل مثلا أنك تتعامل مع برمجية بالـ C#، هنا سيتوجب عليك تعلم تقنيات الـ Ado.net التي تسمح لك بربط قواعد البيانات مع المشروع، ثم إجراء Queries من خلالها. 
  • بالنسبة لمطور تطبيقات الموبايل : يختلف الأمر هنا أيضا حسب المطلوب، لكن بشكل عام الـ Php ستكون وسيلة وسيطة بينك و بين التطبيق في حالة استخدام قواعد بيانات مستضافة على الخادم، أما في حالة استخدام تقنيات أخرى مثل Firebase فالأمر مختلف. 
بشكل عام، ستلاحظ أن أبرز تقنيتين ستحتاج إليهما في التعامل مع كل المشاريع البرمجية في نطاق الـ Back End تتطلب منك الـ Php و الـ SQL، لذا حاول تعلمهما، و إيجادهما بإتقان. 

إطلع على مختلف أنواع قواعد البيانات DBMS 

يعتقد معظم مطوري الـ Back End أن التعامل مع قواعد البيانات سبقى محصور فقط في صنف الـ MySQL او بشكل عام الـ RDBMS او قواعد البيانات العلائقية، لكن مع الوقت، و مع الحصول على مشاريع أكثر تفرع و قوة، ستجد نفسك وسط زخم من أنواع قواعد البيانات بالصنفين RDBMS و NoSQL. ( لدينا هذا المقال الذي يشرح لك الفرق بين الـ RDBMS و NoSQL لا تنسى الإطلاع عليه )

كما يجب عليك إيجاد التعامل مع مختلف منصات إدارة قواعد البيانات، إذ نجد أشهرها مثلا الـ MySQL، لكن يوجد منصات إدارة قواعد بيانات أخرى يجب عليك إيجاد التعامل معها مثل MongoDB، PostgreSQL، Firebase,MariaDB, SQL Server و غيرها، لدينا مقال آخر أيضا يشرح لك كل هذه المنصات و الفروقات بينها يمكنك الإطلاع عليه من هنا .

تختلف المنصة التي ستستخدمها حسب المشروع البرمجي الذي أنت بصدد التعامل معه، فبإفتراض أنك ستشتغل على مشروع ضخم جدا و قابل للتطوير، فعليك الإبتعاد في هذه الحالة عن الـ RDBMS و التعامل مع الـ NoSQL عبر منصات مثل MongoDB، لكن في حالة المشاريع المصغرة و التابثة من حيث تخزين البيانات، فيستستحن الإعتماد على الـ RDBMS، أما المنصة فتختلف فيمكنك مثلا التعامل مع الـ SQL Server إن كان الخادم موجود فيزيائيا في مكان عملك، او الـ MySQL في حالة كنت ستحجز استضافة أو سيرفر عبر الإنترنت، و هكذا دواليك. 

فهم أساسيات الـ Desgin Pattern المتعلقة بالـ Back End 

بعد اكتسابك للمعارف الأساسية في مجال الـ Back End، و تحقيق إمكانية صناعة مواقع أو برمجيات تتصل بقواعد البيانات و إجراء الإستعلامات، قد تعتقد أنك وصلت للحد الأقوى في مجال الـ Back End، لكن هذا الأخير شرس و يتطلب الكثير من الموارد و التقنيات من أجل احترافه. بعد إيجادك للتقنيات الأساسية و المفاهيم الأولية حوله، فقد حان الوقت للإنتقال إلى صنف آخر، الـ Design Pattern أو أنماط التصميم. 

يوجد الكثير من أنواع أنماط التصميم، لكننا نقترح عليك بشكل أساسي الإطلاع فقط على التقنيات المستخدمة بكثرة في مجال الـ Bqck 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 ، هي الأخرى شبيهة بنفس مبدئ السابقتين، إذ الهدف منها بالأساس فصل الواجهات عن الـ BackEnd من أجل سهولة تطوير هذه الأخيرة و ضمان الأمان و الحماية. 
و يوجد معماريات أخرى قد تود الإطلاع عليها، لكن بشكل أساسي، أنت بحاجة للـ MVC أساسا، إذ من خلالها تم بناء مجموعة من الإطارات و الفريمووركات، مما يأخذنا للفقرة التالية. 

إختيار أفضل إطار ملائم لك 

بعد تعلم كل ما سبق، ستجد أن إنشاء مشاريع  برمجية 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 لأنه الأكثر سهولة و الذي يمكنك من خلاله صناعة أي نوع من المواقع في العالم. 

نظرة أقرب عن إطارات الـ Php 

يوجد الكثير من إطارات الـ Php، و ليست كلها نفس الشيئ، بل لكل إطار غرض محدد، و استخدامات محددة، و مجال ينشط فيه بشكل أكبر، لذلك، حتى نساعدك في مسارك كمطور Back End، علينا أن نضع بين يديك مجموعة من هذه الإطارات مع شرحها الخاص : 
  • إطار العمل Laravel : يعتبر الأشهر و الأكثر استخداما من بين كل إطارات الـ Php و باقي الإطارات الأخرى عامة، يعود ذلك بشكل أساسي لكون إطاراً ليناً صالح لأي موقع ويب و لأي استخدام، فمهما كان نوع المشروع يمكن لـ Laravel أن يكون الحل المثالي له، كما أنه دائم التحديث، و يمكن ربطه بالعديد من التقنيات الأخرى بسهولة. 
  •  إطار العمل Zend : إطار مبني على الـ Php أيضا، يتمتع الـ Zend بحزمة كبيرة من الـ Packages، مما يجعل استخدامها في المشاريع الصغيرة أمراً مستبعدا، نقترح عليك تعلم و استخدام Zend للمشاريع الكبرى بشكل أكبر. 
  • إطار العمل Symfony : قد يكون أضخم بقليل من الـ Zend أيضا، لا ينصح به إن كنت تهدف لإنشاء المشاريع الصغيرة أو المتوسطة، فهو نسبيا ثقيل من حيث الـ Packages و يتطلب موارد كثيرة، لذلك استخدمه فقط للمشاريع الكبرى. 
  • إطار العمل Codeigniter : نرشح لك هذا الإطار مباشرة بعد Laravel، متوسط من حيث العمل و سهل من حيث الكود البرمجي و سلاسته، و يمكن استخدامه للمشاريع الصغرة و المتوسطة و أحيانا الكبيرة، يأتي بليونة كبيرة و يستطيع أي شخص تعلمه و استخدامه في وقت وجيز. 
  • إطار العمل Magento : إطار مخصص بشكل كبير لمشاريع مواقع الـ eCommerce و المواقع التجارية، لا يتطلب الكثير من الخبرة  البرمجية، لكنه يأتي بخصائص شاسعة تتطلب منك الإطلاع على الإطار بشكل مكثف قبل استخدامه. 
أما إطارات أخرى مثل Phalcon و Yii و Cake Php، فهي إطارات متميزة، لكن لازال ينقصها بعض الخصائص التي تجعل استخدامها ممكنا في أي مشروع، يمكنك الإعتماد عليها من أجل إنشاء مشاريع مبسطة او متوسطة. 


التعامل مع الـ REST Api 

حين تنتقل للتعامل مع مشاريع بشكل كبير بالإعتماد على إطارات محددة، ستنتهي تعاملاتك العادية مع الـ Queries، و نادرا ما ستتعامل معها، إذ ستنتقل الآن إلى إرسال الأوامر و الإستعلامات عبر مجموعة من الـ Functions، و إسترجاع البيانات على شكل Json ( أو كود شبيه بالـ Json بحيث يحصل Object على كل المعطيات و تقوم فقط بتحديد نوع البيانات لإظهارها من خلال الـ Object ). حتى بتناسي قواعد البيانات، ستتعامل مع API خارجية ستحتاجها في مشروعك البرمجي. 
بشكل عام، ستبدأ التعامل مع ما يسمى بالـ API، بل حتى أنك ستقوم بصناعة API مخصصة لمستخدمين أو مبرمجين آخرين في نفس المشروع من أجل تحديد نوع البيانات التي يستطيعون الوصول إليها دون إمكانية الوصول لمعلومات حساسة في قواعد البيانات. 
الـ RESTful API ليس بتلك الصعوبة و يمكن تعلمه في وقت وجيز، لكن تعلمه و تعلم التعامل معه أمر إجباري.

إيجاد التعامل مع إطارات الجافاسكربت الخاصة بالـ BackEnd 

بتعلمك كل التقنيات أعلاه، نجزم أنك الآن أصبحت مطور 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 الآن 

لا يمكننا أن نجزم قدراتك بعد تعلم هذه التقنيات و هل أنت قادر على تطوير مشاريع Back End صحيحة، لأن الأمر يتطلب بعض الممارسة و التمرين و إنجاز الكثير من المشاريع، لكن حتما، في كل مشروع تشتغل فيه كمطور BackEnd فأنت تعتمد على 90% أو أكثر من التقنيات التي طرحناها لك في هذا المقال، لذلك بإتباع خطوات هذا المقال، ستصبح مطور BackEnd محترف. 


1 26 مايو 2021 في 11:17 ص

thank you so much, I was in need of this article so badly

Anonymous 8 أبريل 2021 في 6:02 م

لو سمحت عايز اصمم موقع