إختيار المجال الأنسب لك برمجياً قد يكون أمرا صعبا في ظل وجود الكثير من التقنيات و المسارات لتعلمها، فهنا الـ Front End و هناك الـ Back End و يجمعهما الـ Full Stack، و كل مجال من هذه المجالات يضم سلسلة من التقنيات الثانوية و تستمر السلسلة لعشرات التقنيات الفرعية الأخرى. لحسن الحظ انه يوجد مقالات ( مثل هذه ) تساعدك في التوجه نحو المسار الأمثل، فقد سبق و ان أصدرنا مقال يساعدك على إتخاذ المسار الكامل لمطور Front End، و إستصعب علينا لاحقا توفير مقال مشابه للـ Back End لتفرع التقنيات الكثيرة، لكن بالنسبة لـ Full Stack فيوجد بعض الخيارات التي يمكن إتباعها، كأن تصير مطور Full Stack بالإعتماد على تقنية MEAN.
ما الذي نقصده بمطور Full Stack Developer ؟
يعتمد تصميم أي مشروع على الويب بالدرجة الأولى ( و على بقية المنصات بالدرجة الثانية ) على مقطعين : الأول يهتم بهيكلة قواعد البيانات و البيانات داخلها و تمكين الإرسال و الإستقبال (او إدارة الـ Requests) بين الموقع و قواعد البيانات، كإدارة عمليات الدخول، الإضافة، البحث، الحذف و ما الى ذلك. و يضمن مدير هذا المقطع السرعة و الأمان في الإتصال، و يسمى المسؤول او المدير عن هذا المقطع بالـ Back End Developer.بينما المقطع الثاني يتكون من الواجهة و بالتحديد الـ UI/UX، و يضمن هذا الأخير توافق الألوان، توافق الموقع مع مختلف الأجهزة، سرعة تحميل الموقع، إدارة التنسيقات و ما الى ذلك مما يخص الواجهة التي سيتفاعل معها المستخدم الأخير، و يسمى المسؤول عن هذا المقطع بالـ Front End Developer.
يمكن للمطور إما ان يتخصص في المقطع الأول و يصير Back End Developer او المقطع الثاني و يصير Front End Developer، لكن إن كان لك الهاجس لتعلم كليهما و إحتراف كليهما، فهنا تنتقل الى Full Stack Developer، و هو الشخص الذي يستطيع هيكلة قواعد البيانات و الإهتمام بواجهة الموقع في نفس الوقت.
ان تصير Full Stack Developer أمر صعب و يتطلب هذا المسار الكثير من العمل و التقنيات المختلفة التي يجب عليك تعلمها، لكن بزوغ تقنيات مثل الـ MEAN يسهل على أي مطور ان يصير Full Stack Developer بتعلم بضعة تقنيات فقط.
ما هو الـ MEAN ؟
الـ MEAN هو إختصار لـ 4 تقنيات تسمح لك بتطوير موقع ويب كامل من حيث الواجهة و الهيكلة الخلفية دفعة واحدة، أهم هذه التقنيات الـ MongoDB، Express, Angular و أخير Nodejs التي يمثل كل حرف أولي منها عبارة MEAN.
و قد إشتهرت هذه التقنية كثيراً في السنوات الماضية بعد الثورة الكبيرة و الإندماج الذي حققته الجافاسكربت، فطُرحت فكرة صناعة موقع ويب كامل متكامل فقط بإستخدام تقنيات الجافاسكربت فتم وضع الأسس الأولى لها من خلال هذه التقنيات الثلاث ( Angular, Express و Nodejs ) التي تعتمد كليا على الجافاسكربت الى جانب دمج قواعد البيانات من نوع MongoDB معها.
إذن لتصير مطور Full Stack Developer بالإعتماد على الـ MEAN سيتوجب عليك ان تتقن و تحترف التقنيات الأربعة معا، و هذا سيكون هدفك للأشهر القادمة الى حين إحترافها جيدا لتصير مطور Full Stack Developer.
- شرح الـ MongoDB في تقنية MEAN :
الـ MongoDB و هي أول تقنية يجب عليك تعلمها في بدايتك في الـ Full Stack Developer بالإعتماد على الـ MEAN، تخص الـ MongoDB في إدارة نظام قواعد البيانات من نوع NoSQL ( تابع أهم الفروقات بين RDBMS و NoSQL من هنا ). و هو نظام بسيط لإدارة محتوى أي موقع إعتمادا على مبدأ الـ Parent/Child و Key/Value، نظام قواعد البيانات في الـ MongoDB شبيه بشكل كبير بهيكلة كود Json و يعتمد على نفس المبدأ تقريبا.كأي موقع ويب في هذا العالم لا بد من نظام قواعد بيانات لتخزين المعلومات و البيانات و إدارتها من خلاله، بل إنها اللبنة الأولى التي يجب الإعتماد عليها في أي نظام Back End أولا و Full Stack، فمطور Back End يهتم بشق قواعد البيانات بالدرجة الأولى و في هذه الحالة نظام MongoDB.
- شرح Express في تقنية الـ MEAN :
إطار Express او ExpressJS و هو إطار من الإطارات الفرعية للـ Nodejs، يعمل الـ Express في فرع الـ Backend و يعمد الى صناعة API's تسمح لنا بتمرير البيانات و إستقبالها و التعامل معها على شكل Requests، و هو ذو كفاءة عالية حين يتعلق الأمر بالسرعة، إن اردت إستيعاب الـ Express بشكل أقل إجتهادا فيمكننا إعتباره مثل الـ Php حين يتعلق الأمر بالتواصل مع قواعد البيانات، لكن Express يعتمد هنا على الـ HTTP Requests كما سلف الذكر.يتم الإعتماد على Express حاليا في الكثير من إطارات الـ Back End في الجافاسكربت، و سيساعدنا في مسار الـ MEAN على تحقيق التواصل بين قواعد البيانات MongoDB و إستقبالها عبر الـ Angular من أجل تنظيمها و إظهارها. للـ Express الكثير من التقنيات المدرجة داخله أهمها الـ Middlewear التي تسمح لك بالتحقق من البيانات أولا قبل الخوض في أي عملية إرسال او إستقبال.
- شرح Angular في تقنية الـ MEAN :
يأتي بعد كل من الـ MongoDB و الـ Express تقنية الـ Angular التابعة لجوجل و التي تعتمد هي الأخرى كليا على الجافاسكربت و ركائزها، الـ Angular هو إطار جافاسكربت مخصص للـ Front End يتيح لك صناعة واجهات سلسلة و ذات إحتراف عالي، و مستخدم تقريبا في كل خدمات جوجل حاليا من بينها محرك البحث جوجل.في تقنية الـ MEAN بعد هيكلة قواعد البيانات بإستخدام MongoDB و جلب البيانات بإستخدام Express ستستخدم الآن الـ Angular بهدف وضع تلك البيانات في أماكنها او إرسالها إن تطلب الأمر، مثل تصميم واجهات الدخول، تصميم الصفحات بإضافة البيانات الملائمة و ما الى ذلك.
سبق و قدمنا مقارنة لكل من الـ Angular, React و Vuejs، و قد تبقى لك الحرية في الإعتماد على أيٍ من هذه الإطارات المتخصصة في الـ Front End إلا ان الـ Angular هنا هو الأوفر حظا بسبب سهولة دمجه مع باقي الإطارات السابقة.
- شرح الـ Nodejs في تقنية الـ MEAN :
بالطبع لن يمكنك إنجاز كل هذا إن لم يكن لديك خادم او سيرفر لتستضيف عليه موقعك الخاص الذي قمت بتطويره بإستخدام كل هذه التقنيات، الـ Nodjs هنا الى جانب تقنياته الأخرى ( npm مثلا ) سيساعدنا على إدارة الموارد الخاصة بالمشروع و توفير الخادم او السيرفر الذي سيساعدنا في تشغيل موقعنا هذا و إدارة الإتصالات و أيضا الموارد الخاصة بالمشروع، فحتى Expressjs مثلا مبني على الـ Nodjs في الأصل لذلك من الضروري إدراج الـ Nodjs في هذا المساق أيضا.- تقنيات أخرى تصاحب مساق الـ MEAN :
كونه يعتمد على 4 تقنيات فقط فهذا لا يعني ان تعلمها وحدها كفيلة بجعلك مطور Full Stack، يوجد تقنيات جانبية او ثانوية عليك تعلمها، ليست مفروضة لكن ستصادفها تارة فأخرى فيفضل إتقانها، من بينها :- تقنيات CSS - Less / SCSS / Stylus : حين تبدأ بالتطوير بالإعتماد على مشروع مبني على الـ MEAN فأنت لن تتعامل مع الـ CSS التقليدية، بل ستتعامل مع تقنيات Preprocessors في الـ CSS أبرزها الـ SCSS او Stylus او Less، أنت تختار أي نوع تريد و يمكنك البدئ مباشرة في تعلمه كذلك.
- تقنية Socket.io : تقنية مبنية على الـ Nodejs أيضا و توفر لك تعامل Real Time في مشروعك البرمجي، إفتراضاً انك تريد بناء موقع شات بإستخدام MEAN فستحتاج الى الـ Socket.io حتما، ننصحك بأخذ كورس خفيف فيه.
- مدير الحزم NPM : في الجافاسكربت نعتمد على الـ npm من أجل إدارة المشروع بالكامل من إضافة مكتبات او ترقية مكتبات اخرى او تشغيل الخادم و ما الى ذلك، لا تنسى ان تلقي نظرة على الـ npm كذلك.
- كل من Ajax و Json : لازلت ستحتاج الى الـ Ajax رغم ذلك من أجل صناعة Custom Request او طلبات مخصصة، اما الـ Json فيعتبر طريقة لعرض البيانات ( شبيه بطريقة عرض قواعد البيانات في الـ MongoDB ) لن يأخذ من وقتك ساعة فقط من أجل فهمه أكثر.
بعد تضمينك لمعظم هذه التقنيات، يمكننا القول أنك جاهز الآن للبدئ في التطبيق بتقنية الـ MEAN، و بعد عدة مشاريع ناجحة من خلاله يمكننا أخيراً ان نلقبك بمطور Full Stack Developer.
كيف تبدأ مشروعك بالإعتماد على الـ MEAN :
لفعل ذلك سيتوجب عليك القيام بمجموعة من الخطوات المتتالية، لنتيح لك هذه الخيارات بالترتيب إتبع المسار التالي :
- أولا توجه للـ documentation الخاص بالـ MEAN من أجل إقتناص الشرح المفصل من الرابط التالي .
- سيتوجب عليك قبل كل شيئ تنصيب الـ MongoDB بعد تحميلها من هنا ثم تشغيلها ، ثم بعدها تحميل الـ Git من هنا و تشغيله، ثم تحميل الـ Nodjs و تنصيبها من هنا .
- قم بفتح الـ Git ثم قم بتنصيب كل من الـ Gulp و الـ Bower بإستخدام الـ Git، ستجد الكود الخاص بتنصيبهما في الـ Documentation.
- بعدها قم بنسخ مستودع MEAN الى حاسوبك عن طريق الـ Git كذلك ثم قم بفتح الملف و قم بفتح الـ Git وسط ملف المشروع.
- قم بإطلاق أمر npm install و اتركه الى حين تنصيب كل أدوات المشروع.
- من أجل تشغيل المشروع قم بإطلاق أمر npm start او Gulp و سيتم تشغيل الخادم.
- يمكنك الآن فتح المشروع ثم التوجه الى الملفات الرئيسية و تطوير مشروعك، بالطبع هنا سيتوجب عليك مراجعة كورسات في الـ MEAN .
لنسهل عليك أيضا هذا الشرح، قمنا بتوفير الفيديو البسيط التالي ( مع حل لبعض المشاكل التي قد تواجهك ) في صناعة مشروع و تهيئته بإستخدام الـ MEAN :