دخلت عالم التطوير منذ أن كان عمري (14) عاما حيث تعلمت في معهد خاص للكمبيوتر في أحد العطل الصيفية لغة البرمجة (Basic) و لأصدقكم القول كنت أصغرهم سنا بفارق لا يقل عن 10 سنوات وحصلت على المرتبة الأخيرة من ناحية الدرجات ولكن بفارق (درجة واحدة) عن أخر (طالبين) قبلي في الترتيب بحسب ما أذكر

مجموع خبرتي في عالم الكمبيوتر (30) سنة تقريبا في حال حسبت دورة ذلك الصيف، أرجوك لا تحاول أن تخمن كم هو عمري , واحتفظ فقط بفكرة أني أملك خبرة تقارب 30 سنة متراكمة منذ بدايات علوم الكمبيوتر والذي بحسب قياس باقي العلوم بأن علوم الكمبيوتر مازالت طفلا يحبوا وأنا كنت معاصرا له أكثر من نصف حياته

أسست عدة شركات برمجية وكنت شريكا في الكثير منها أيضا، هناك الكثير من الأوقات الرائعة وهناك أوقات كرهت فيها العمل في هذا المجال, إلا أنني بالتأكيد أملك خبرة كبيرة متراكمة كشخص أتقن الكثير من لغات البرمجة وأدوات التطوير وعملت بها بنفسي وقمت ببناء عشرات المشاريع العملاقة وقمت بتدريب وتعليم مئات المطورين عبر دورات أو توجيه لموظفين عملوا معي


خارطة الطريق التقنية

منذ حوالي 8 سنوات قررت أن أبني ما أسميه (خارطة الطريق التقنية) وأعتبرها (نظام تشغيل الشركة) وهدف هذه الخارطة أن تكون الدليل لكل المطورين في الشركة من أجل توحيد التقنيات التي نعمل عليها ولتسريع عملية دمج أي مبرمج جديد ينضم إلينا

الأساس الذي بدئت منه هو بتوحيد التقنيات والأدوات واختيار الأفضل لي ولفريقي ولنوع عملي وليس أفضل تقنيات موجودة في السوق –أكاد أجزم بأني اخترت أفضل التقنيات ولكني لا أود أن أدخل في جدال حول إن كانت التقنيات التي استخدمتها هي الأفضل معكم في هذا المقال وسأتركها لمعركة \ مقالة أخرى – 

توحيد التقنيات تساعدك في أن تعرف حدود العالم الذي تعمل فيه وأيضا لتحدد جيدا اختيارك للمهارات الجديدة المنضمة اليك، وتركت لنفسي مجالا في أن أقوم بتحديث هذا الدليل (خارطة الطريق) كل فترة وذلك بمتابعة واختبار تقنيات جديدة وضمها أو استبدال تقنيات بتقنيات أفضل


دائم التجديد

الهدف من هذا الدليل بأن يكون المرجع الأساسي للمطورين في الشركة و أخر نسخة محدثة منه كانت في شهر (أكتوبر 2021) مع العلم أنها كانت التحديث رقم (4) في عام (2021) , التحديث بشكل عام ليس في تقنية محددة بل في أدوات جديدة أو استراتيجيات متبعة أو إضافة أقسام أو تحديث في الوصف الوظيفي, فهو دليل كبير نسبيا امتلئ خلال سنوات بالكثير من المعرفة والذي يساعد المطورين من أبسط أداة مثلا اختيار محرر النصوص وبرنامج ضغط الملفات بما فيها اصدار نظام التشغيل وحماية البيانات وحتى قائمة المراجعة لتسليم مشروع برمجي واختباراته مثل اختبار التحمل و اختبار الاختراق وغيره


ماهي أفضل لغة تطوير للويب؟

نبدأ من الحقائق, أكثر من 79% من الإنترنت اليوم تعمل بواسطة لغة (PHP) وهي التي أثبتت أنها الأفضل والأشهر لتطبيقات ومنصات الويب, ولكي أكون منصفا فهي فقط مناسبة لـ (99%) من المشاريع, أي أن هناك (1%) من المشاريع التي تتطلب منك لغات استخدام لعان برمجة أخرى كخيار أفضل أو وحيد, فإن كنت متأكدا بأن مشروعك من ضمن (1%) فعلا, فلا مشكلة اذا أن تتحمل أيضا تكلفة (الندرة) تأتي معها فمتطلبات وتكاليف الوصول للمهارات والإمكانيات لمشروع يقع ضمن (1%) من المشاريع مرتفع, بالمناسبة خلال رحلتي العملية كلها لم أصادف أي مشروع يقع ضمن (1%) 


لماذا هي الأفضل؟

لن أدخل في تفاصيل لغة البرمجة وبنيتها ومعماريتها وبالتأكيد أعي أنه مرت بضع سنوات لم تكن فيها (PHP) هي الأفضل في كل شيء ولكنها كانت الأنسب دائما, فعند صدور تحديث خفيف كان يفي بكل ما تحتاجه المرحلة ولكن تلك الأيام ولت والنسخة الأخيرة (8) التي ظهرت في (نوفمبر 2020) أعادت اللغة لتكون الأفضل برأي بلا منازع

عندما أتحدث عن لغة البرمجة فهي لوحدها لا تكفي لأن أستطيع الحكم عليها، بل أحكم على نظام بيئي (Ecosystem) ومجتمع (Developer community) كامل مبني حولها, بدء بأطر العمل مثل (php cake, CodeIgniter, Symfony, Laravel) وغيرها التي توفر عليك أكثر من 90% من وقت التطوير وتساعدك في تلافي المشاكل والثغرات الأمنية والمنطقية وتكاملها مع الكثير من الخدمات 

بالمناسبة مدونتي هذه التي تقوم بالقراءة منها قمت بتطويرها بواسطة اطار العمل (LARAVEL) وهنا كتبت مقالة عن هذه التجربة (تجربة نقل المدونة من WORDPRESS إلى LARAVEL)


إطار العمل (Laravel)

ظهر اطار العمل (Laravel) منذ (2011) كمشروع جاني لموظف أراد أن يغطي فيه بعض القصور في اطار عمل (CodeIgniter) وقد تم بناءه بنمط (MVC) مبني على اطار عمل (Symfony),

تم رصد أكثر من (140 ألف) موقع عامل بإطار عمل (Laravel) منها (100 ألف) تضع ضمن أول (مليون) موقع على الإنترنت، أي قرابة (10%) بناء على موقع (similartech)

داخل الشركة أستخدم هذا الإطار منذ أكثر من 8 سنوات ومازلت أرى أنه الأسهل والأفضل بالإضافة لكونه أيضا مصحوب بالكثير من المواقع والخدمات (Ecosystem) الداعمة وأهمها برأي هو الأكاديمية التعليمية التي تساعد أي مطور بأي لغة لأن يتقنها خلال فترة زمنية قصيرة جدا

الخدمات الرسمية المدعومة (Ecosystem) في نفس موقع (Laravel) بازدياد حتى أنها تخطت حاليا (18) خدمة لمساعدة المطورين العاملين بواسطة هذا الإطار، على سبيل المثال:

Laravel Dusk

أحد أجمل الأدوات المساعدة للمطورين من أجل بناء اختبارات ألية مؤتمتة بالكامل مبنية على تقنية (selenium) لتنفذ الاف الاختبارات بثواني والتأكد من عمل مشروعك بشكل جيد

Laravel Telescope

أداة رائعة وقت التطوير للمساعدة في مراقبة أداء السيرفر والنظام ومعرفة ماذا يحدث بالضبط والموارد المستخدمة وكيفية تحسن أداء مشروعك بناء على التقارير التي تظهر لك

Laracasts

أحد أهم وأفضل الخدمات الداعمة بحيث وفرت أكاديمية بعدة مستويات للتعليم عبر دروس فيديو ومجتمع كبير متفاعل معها

Laravel Nova

تساعد المطورين على بناء لوحة تحكم رسومية بسرعة فائقة لا تتعدى دقائق لإدارة أي مشروع بالأذونات الأساسية والصلاحيات للمستخدمين

Envoyer

تساعد المطورين على إدارة عمليات ال (Deployments)  وتوفير وقت توقف السيرفر ورفع النسخة الجديدة

Laravel forge

تساعد المطورين على التعامل مع السيرفرات وتركيبها وإدارتها بواجهة رسومية  سهلة

Laravel Scout

حل مساعد لتوفير خدمة البحث والفهرسة للنصوص بشكل كامل وسهل دون ارهاق للنظام بالعمليات العادية

Laravel Cashier

حل سريع للربط مع بوابات الدفع دون الدخول في التعقيدات المصاحبة لهذا العالم

Socialite

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

هناك المزيد

مازال هناك الكثير من الخدمات الرسمية الداعمة يمكنك الرجوع لها عبر الموقع والعشرات من الخدمات المدعومة من مجتمع المطورين والتي يعتمد عليها أيضا


تحديث: اقرأ المقال عن الإصدار الجديد (Laravel 9) من هنا


كيف تتعلم Laravel

إن كنت مبرمجا سابقا ولديك الخبرة الكافية للانتقال إلى لغة برمجة جديدة فعليك بأكاديمية لارافيل الرسمية من هنا (laracasts.com) أما في حال كنت مبتدأ وتود الدخول فيها فأنصحك بهذا الكورس (PHP with Laravel for beginners - Become a Master in Laravel)


إطار الواجهات للويب (Bootstrap)

منذ أن وفرته شركة (Twitter) عام (2011) للمطورين وهو في اتساع وتطور مستمر بحيث تجد الكثير من التصاميم الجاهزة المبنية بواسطته مما يسهل عليك التلاعب بالواجهات والأشكال المبنية عليه, من أهم مميزاته هو المبدء الذي قام على تقسيم الشاشة على شكل 12 عمود وتكامل بهذا أليا مع كل مقاسات الشاشات دون الحاجة لتصميم أكثر من نسخة 

لكي أكون منصفا معكم فهناك اطر عمل للواجهات قد توفر ميزات أفضل وأسرع ولكنها تحتاج إلى استثمار أكبر في فريق العمل وإدارتها أصعب بعض الشيء وهنا أتحدث عن (React) كبديل لـ (JQuery)  المعتمد عليه من قبل (Bootstrap) مثلا ولنفس الأٍسباب السابقة تجد أن عدد المواقع المعتمدة على (Bootstrap) هو 4 أضعاف أكثر من المعتمدة على (React) ويمكن الرجوع للإحصائية من هنا (similartech) , بل أن (Bootstrap) مازالت تستخدم كإطار واجهة مع (React) حيث أنها تعمل كالمحرك البرمجية للواجهات بدلا عن (Java Script)


ماهي أفضل لغة تطوير لتطبيقات الهواتف الذكية؟

هناك العشرات من لغات وبيئات التطوير التي تمكنك من التطوير للهواتف الذكية ولكن أفضلها هي تلك المدعومة من الشركات الخاصة بها والتي تقدم بناء تطبيقات أصيلة (Native) مثلا (Swift) لنظام تشغيل (iOS) الذي يشغل (iPhone) أو (Java) أو (Kotlin) لنظام تشغيل (Android)

التطبيقات الأصيلة (Native) تعد الأفضل حيث تستفيد من موارد الجهاز بشكل جيد مع إمكانية الوصول للموارد بشكل كامل، إلا أن الكثير من المطورين يقوم بالتطوير بواسطة التقنيات الهجينة (Hybrid) التي يمكنك التطوير فيها لكل من نظامي تشغيل (iOS) و (Android) بنفس الوقت لتوفير الوقت والتكلفة إلا أنها أقل من ناحية الأداء


بيئة Flutter

قامت جوجل بتوفير تقنيات تطوير بواسطة (Flutter) مع لغة البرمجة (Dart) والتي قامت بحل المعضلة بحيث تقوم بتطوير تطبيق بنفس فكرة الهجين (Hybrid) أي تطور مرة واحدة ويعمل على كل المنصات (بما iOS وAndroid) ولكن المخرج النهائي يكون أصيل (Native) مع إمكانية أن يتم دمج أجزاء من (Swift أو Java) في حال كان هناك أي قصور في (Flutter), في حال أردت أن تتعلم كورس سبق وأن نصحت به من هنا (Flutter & Dart - The Complete Guide )


ماذا بعد الأساس

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