في حين أنه من المدهش أن يكون لديك الكثير من الخيارات ، إلا أنه يجعل من الصعب أيضًا معرفة أفضل تقنية لأهدافك. مع وجود العديد من الخيارات الأفضل للاختيار ، قد تقع في شلل التحليل الذي يحاول الاختيار بين جميع الخيارات.
لذلك ، دعونا نصلح ذلك عن طريق تضييقه! من خلال مشاركة تجربتي في العمل الحر من السنوات القليلة الماضية.
تجربة مع Django
عندما انضممت إلى مشروعي الأول الذي كان قائمًا على Django هنا كنا نستخدم Django في الواجهة الخلفية و React في الواجهة الأمامية ، ما أعجبني في Django هو أنه يحتوي على بنية جيدة التنظيم مما يصر على اتباع بعض الممارسات الجيدة في هندسة نظام الملفات بسبب إعداد المشروع يوفر لك جميع الملفات والمجلدات الفارغة. أشعر أن هذه بداية جيدة للناشئين لفهم أهمية هيكل المشروع والأمان وهندسة MVT ، وهنا أنا شخصياً أحب ملف 😍settings.py.
ما هو الجانب الصعب منه؟ يحتاج إلى جهد إضافي في البداية لفهم المقصود.
بعض التطبيقات الرائدة في العالم تستخدم Django فقط ، على سبيل المثال. Instagram و shopify وما إلى ذلك.
ما هي الميزة الخفية لـ Django؟ أعتقد أنها بايثون. لأن python شائع في قطاع AI / ML ، لذلك من السهل دمج هذا الكود مع Django ثم BOOOOOOOM… ..
إذن ، إذا كانت متطلبات مشروعك مرتبطة بالذكاء الاصطناعي / تعلم الآلة ، أو معالجة الصور ، أو أي تحليل من جانب الخادم؟ سأقترح Django هنا ، على الرغم من أن نفس الشيء قد يكون ممكنًا في خيارات أخرى ولكن سهولة إنجاز المهمة والمساعدة المتاحة ومسائل مجتمع التكنولوجيا.
تجربة مع NodeJS
الأداء
العملاء والمطورون مهتمون بالأداء في تطوير البرمجيات. عند الحديث عن الأداء ، تعتبر السرعة ارتباطًا شائعًا. غالبًا ما يكون وقت استجابة التطبيق مؤشرًا على سرعة تنفيذ التعليمات البرمجية. للمقارنة ، فإن Python Django أبطأ بكثير من NodeJS. على الرغم من استخدام الأطر لجعل التطبيقات أسرع وأفضل ، فإن أداء Node.js أسرع بشكل ملحوظ من Python.
قابلية التوسع
تشير قابلية التوسع إلى قدرة النظام على التعامل مع أعمال القياس. تعد Multithreading هي أفضل تقنية لكي يكون التطبيق قابلاً للتطوير. تدعم بايثون المعالجة المتعددة. يستخدم Global Interpreter Lock (GIL) لفهم مهام متعددة لأداءها بشكل متزامن ، وبالتالي فهي تدير مؤشر ترابط واحد فقط في كل مرة. من ناحية أخرى ، فإن Node.js هو تطبيق JavaScript خالص ، ويتم استخدامه للبرمجة غير المتزامنة. هذا يعني أن قابلية التوسع ممكنة في تطبيقات الويب البسيطة.
الاتجاه
وفقًا ل stackoverflow ، فإن جافا سكريبت هي الخيار الأفضل بين مجتمع التكنولوجيا لمدة سبع سنوات متتالية.
الدورات التدريبية الأكثر شيوعًا في Udemy هي NodeJS تليها Python .
البساطة
تمنح NodeJs (التحدث عن ExpressJs) الحرية للمطور في تحديد هيكل المشروع الخاص به والتعامل مع الأمان بمفرده. في بعض الأحيان يكون من الجيد التمتع بالحرية ولكنه محفوف بالمخاطر في نفس الوقت أيضًا ، في حالة وجود مطورين أقل خبرة ، والذين قد يتركون ثغرات.
حقيقة أخرى ، نظرًا لأن Javascript هي واحدة من أكثر لغات البرمجة شيوعًا وتوفر أفضل مكتبات جانب العميل مثل React و Angular و VueJS ، فمن الجيد استخدام نفس اللغة في الخلفية أيضًا. أنا شخصياً أحب هذا المزيج ، لأن هناك فرصًا أكبر أنه إذا كان المطور يعرف إطار عمل الواجهة الأمامية ، فهو / هي مرتاح مع إطار عمل NodeJS أيضًا أو العكس. مما يوفر وقت التطوير ويقلل من الاعتماد المتبادل ويساعد على تعيين ملكية الوحدة النمطية من البداية إلى النهاية. ومن ثم يعزز سرعة التنمية الشاملة.
بعض الشركات الكبرى التي تستخدم NodeJS هي Netflix و reddit و twitter وما إلى ذلك. لقد وجدنا أن الشركات القائمة على محتوى OTT تستخدم NodeJS غالبًا.
تجربة مع Laravel
أن إطار عمل Laravel يعمل بشكل جيد وهو الخيار الأفضل بين مجتمع PHP. ولكن لا يزال كودها يبدو أخرقًا وغير منظم جيدًا. يبدي بعض أصدقائي الذين يعملون في PHP اهتمامًا بـ NodeJS. لذا بشكل عام أستطيع أن أرى أن PHP لا تجذبني بقدر ما تجذبني Python و NodeJS.
إذن ترتيبنا هو :
NodeJS (ExpressJS, NextJS)
Python (Django)
PHP (Laravel)