لماذا تطوير الويب على الذهاب هو أجمل من PHP

من أنا أكتب ل؟ بالنسبة لأولئك الذين يكتبون في php (ربما أيضا الثعبان ، الياقوت) وسمعوا عن Go ، لكنهم لم يقرروا بعد دراستها بمزيد من التفاصيل. سأقدم الأسباب التي تجعل تعلم لغة البرمجة هذه أمرًا يستحقًا ولماذا يكمن المستقبل في تطوير الويب.

لقد كتبت php منذ حوالي 12 عامًا وهي لغة برمجة ممتازة ، 90٪ من مواقع الإنترنت بالكامل مكتوبة عليها. تقريبا يتم كتابة كل CMS شعبية في PHP.
لماذا قمت بالتبديل (أو بالأحرى التبديل) إلى Go؟

تعدد


من حيث المبدأ ، كل شيء واضح هنا. تعدد مؤشرات الترابط يوفر فوائد هائلة للغة البرمجة. في Go ، يتم تطبيق تعدد العمليات بكل بساطة وصراحة. في الفقرة التالية ، سأكشف عن الفوائد التي تؤثر على تطوير الموقع.

البيئة


ما الذي أحتاجه لرفع موقع منتظم في php؟

الخادم على Linux ، تثبيت Nginx ، أحيانًا Apache ، تثبيت PHP ، الامتدادات ، قاعدة البيانات ، Memcache ، تكوين Cron. لكي لا أكون مؤلمًا للحفاظ على الخادم ، أضع كل شيء في Docker. هذا ما يشبه مشروع Docker PHP العادي.



هل هذا مألوف؟

ما الذي تحتاجه لرفع موقع إلكتروني منتظم على Go؟

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

كيف يبدو مشروع Docker لـ Go الخاص بي؟ في الواقع ، لا وجود له على الإطلاق. أضع ملفات Docker مباشرة في المجلد مع رمز الموقع أو الخدمة. إذا كان الموقع يحتوي على خدمات صغيرة إضافية (على سبيل المثال ، للعمل مع قوائم الانتظار) ، فسيتم وضع Dockerfile الخاص به في المجلد مع هذه الخدمة.



عتبة الدخول


تعلم لغة الذهاب سهل. يمكنك التمرير خلال جميع الوثائق في بضع ساعات وفهم مبدأ اللغة دون تعميق. أعتقد أن Go لديها أقصر توثيق للغات المترجمة الشائعة.

على الموقع الرسمي ، يمكنك القيام بجولة دراسية تكشف عن جميع جوانب اللغة.

لتعميق المعرفة النظرية إلى الايجابيات في وقت قصير جدا. أوصي دورات من Mail.ru على يوتيوب .

قراءة التعليمات البرمجية


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

في Go ، في معظم الحالات ، وفتح بعض التعليمات البرمجية الشرسة لـ 200 ملف وكل ملف رمز منشفة ، تفاجأ أنه يمكنك فهم ذلك.

IDE


الكتابة في JetBrains IDE ضمن PHP و Under Go هي أشياء مختلفة تمامًا. يعمل الإكمال التلقائي دائمًا وفي كل مكان (99٪ من الحالات). يمكنك أن تفشل في أي طريقة ، في أي!

لا توجد الفرامل على الإطلاق. مع الكلمات بشكل عام ، من الصعب أن تصف ، تحتاج إلى محاولة. عندما تبدأ في الكتابة بالكامل في Goland ، فإنك تدرك أنك لم تعد ترغب في العودة إلى PhpStorm.

في العام السابق على التحية ، سألت ديميتري ستوغوف عن خطط لإدخال مؤشرات ترابط "أصلي" في PHP ويبدو أننا لن نراها ، لكن من المؤسف.

التصحيح والاختبار


العديد من مطوري PHP لا يستخدمون تصحيح الأخطاء على الإطلاق لأنه يحتاج إلى تثبيته بشكل منفصل كملحق ، كما أنه يحتاج إلى تهيئته بشكل صحيح وكثير منهم ببساطة لا يكلف نفسه عناء ويستخدم الإخراج إلى الصفحة. في Go ، يكون التصحيح مدمجًا ، في الواقع ، لا يتعين عليك معرفة كيف يعمل في الداخل ، إذا كنت تستخدم IDE فقط ضع نقطة توقف وبدء البرنامج.

مع اختبار الأشياء متماثلة تقريبًا ، لا تحتاج إلى توصيل الإطار بأكمله بالمشروع ، فهو مدمج بالفعل في الحزم الأساسية و IDE.

الأداء


Go أسرع بكثير من PHP من حيث سرعة التنفيذ واستهلاك الذاكرة. بالطبع ، لم تعد مقارنتها صحيحة ، لأن Go عبارة عن لغة مترجمة. هناك مقال جيد بالمقارنة مع الإنتاجية على حبري . على سبيل المثال ، لدي Mirkoservice في بيئة Docker كاملة ، والتي كانت تشغل 100-200 ميغابايت من ذاكرة الوصول العشوائي ، والتحول إلى Go يستغرق 1-2 ميغابايت. الزيادة في السرعة 2-5 مرات.

ملخص


أحب PHP وسأواصل الكتابة عليه حسب الحاجة ، لكن Go كانت استمرارًا للتطور بالنسبة لي وإذا قمت بإعادة كتابة PHP من البداية ، فستصبح لغة Go.

Source: https://habr.com/ru/post/ar438894/


All Articles