العودة إلى المدونة

كيفية استيراد الحزم في Go

كيفية استيراد الحزم في Go

Go (المعروفة أيضاً باسم Golang) هي لغة برمجة مفتوحة المصدر ومكتوبة بشكل ثابت (statically typed). تم تطويرها في الأصل بواسطة Google. وتشمل بعض الميزات البارزة للغة Go البساطة، والأداء العالي، وسهولة القراءة، والكفاءة.

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

المتطلبات الأساسية

لمتابعة هذا الدليل، ستحتاج إلى إعداد المكونات التالية تحت تصرفك:

الخطوة 1 – تثبيت Go

لقد ناقشنا بالفعل تثبيت لغة برمجة Go الأساسية على Ubuntu 20.04. ومع ذلك، هناك طريقة بديلة أسهل: g  (مدير إصدارات Go خفيف الوزن).

السبب في أننا سنستخدم g  هو أن أيًا من إصدارات Go المتاحة من مستودعات حزم Ubuntu أو snap لا تحتوي على أحدث إصدار متاح من Go (v1.18 في وقت كتابة هذا الدليل). يوصى دائماً باستخدام أحدث إصدار متاح من أي حزمة لغة برمجة.

سيقوم الأمر التالي بتشغيل g  برنامج نصي للتثبيت:

Import Packages in Go install go

Import Packages in Go installing go 2

لتطبيق التغييرات، يجب عليك إعادة تشغيل جلسة shell. بعد إعادة التشغيل، تحقق من التثبيت:

Import Packages in Go check go version

بعد تثبيت Go، يوصى أيضاً بتثبيت gopls . وهو خادم لغة Go الرسمي. وهو متوافق مع العديد من محرري النصوص مثل VS Code و Vim و Emacs و Sublime Text و Atom وغيرها الكثير. قم بتشغيل الأمر التالي:

بيئة برمجة Go الخاصة بنا جاهزة الآن.

الخطوة 2 – إنشاء برنامج نصي تجريبي لـ Go

جميع الأكواد الموضحة في هذا الدليل ستناسب برنامجًا نصيًا واحدًا لـ Go. قم بإنشاء برنامج نصي تجريبي لـ Go:

بعد إجراء التغييرات على البرنامج النصي، يمكننا تشغيله باستخدام أمر Go التالي:

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

الخطوة 3 – استخدام حزم المكتبة القياسية

تأتي Go مع مجموعة ضخمة في مكتبتها القياسية. وهي تتكون من حزم عديدة، على سبيل المثال:

  • fmt: ينفذ عمليات الإدخال/الإخراج المنسقة مع وظائف مماثلة لـ C ( printf  و scanf ).
  • http: توفر هذه الحزمة وظائف لإنشاء خدمات الويب، وإرسال واسترداد البيانات عبر بروتوكول http  ، إلخ.

لدمج أي حزمة في مشروع Go، يجب تنفيذها باستخدام عبارة import . يتم الإعلان عن العبارة بواسطة الكلمة الرئيسية import  جنباً إلى جنب مع أسماء الحزم. على سبيل المثال، لاستيراد math/rand ، ستبدو عبارة الاستيراد كالتالي:

يقوم الكود التالي بتنفيذ وظائف مختلفة من حزمة math/rand :

يوضح هذا الكود حلقة تكرار (for loop) بسيطة تطبع 10 أعداد صحيحة عشوائية (من 0 إلى 24) على الشاشة. هنا:

  • rand.Int() : يعيد استدعاء هذه الدالة عدداً صحيحاً عشوائياً.
  • rand.Intn() : تعمل بشكل مشابه لـ rand.Int()  ولكنها تقبل معاملاً يحدد نطاق الأعداد الصحيحة العشوائية (من 0 إلى الرقم المحدد).

بعد ذلك، قم بتشغيل الكود:

سيبدو الناتج كالتالي:

random number program

لاحظ أن الناتج سيكون هو نفسه تماماً لأن قيمة البذرة (seed) لمولد الأرقام العشوائية هي قيمة ثابتة افتراضياً. هذه هي طبيعة مولد الأرقام العشوائية الزائفة. يمكنك معرفة المزيد عن البذرة العشوائية هنا.

الخطوة 4 – استيراد حزم متعددة

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

هنا، تتضمن عبارة استيراد واحدة حزمًا متعددة في نفس الوقت. يقلل هذا من كمية الكود اللازم كتابتها مع تحسين قابلية القراءة.

يضع الكود التالي هذه الميزة قيد التنفيذ:

قم بتشغيل الكود:

سيبدو المخرج شيئًا كهذا:

importing multiple packages

الخطوة 5 – تثبيت مكتبات Go الإضافية

تأتي المكتبة القياسية لـ Go مع العديد من الحزم المفيدة. وهي مصممة لتكون عامة الأغراض. وهي تمكن المطورين من إنشاء حزمهم الخاصة فوق المكتبة القياسية لتلبية احتياجاتهم الخاصة. تحقق من قاعدة بيانات حزم Go الرسمية.

ماذا لو كنت بحاجة إلى استخدام حزمة Go من طرف ثالث؟ تأتي Go مع go install  أمر ( go get  مهمل). يمكنه جلب أي حزمة Go من طرف ثالث من الإنترنت.

للتوضيح، سنقوم بتثبيت حزمة cobra-cli . سيقوم أمر Go التالي بتنزيل وتثبيت الملفات اللازمة ودمج الحزمة في نظام مكتبة Go:

install cobra cli

يجب أن يكون الملف الثنائي لـ cobra-cli  موجودًا في الموقع التالي:

list gopath files

يجب أن تقع ملفات الحزمة الأخرى في الموقع التالي:

list package files

بدءًا من إصدار Go v1.11، تحدد وحدات Go إصدار الحزمة التي ترغب في استيرادها. تم شرح ذلك بالتفصيل هنا: Go Modules GitHub.

الخطوة 6 – أسماء مستعارة للحزم

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

دعنا نعدل برنامج Go البسيط الخاص بنا لدمج fmt_alias  كاسم مستعار للحزمة fmt :

لاحظ أنه بدلاً من استخدام fmt.Printf() ، فإننا نستخدم الاسم المستعار للحزمة fmt_alias.Printf() .

ومع ذلك، فإن Go لا ترحب كثيرًا بالأسماء المستعارة. عندما تستخدم أسماء مستعارة لتجنب تعارض أسماء الاستيراد، يوصى بإنشاء اسم مستعار للاستيراد الأكثر محلية أو الخاص بالمشروع. على سبيل المثال، إذا كنت تريد الحصول على حزمة محلية strings  وحزمة نظام strings ، فيجب عليك إنشاء اسم مستعار للحزمة المحلية، وليس لحزمة النظام.

أفضل ممارسة هي تجنب تعارض الأسماء في المقام الأول.

الخطوة 7 – تنسيق الاستيراد

لقد تعلمنا الإعلان عن جميع عمليات الاستيراد باستخدام عبارة import  واحدة. ماذا لو كان لديك عدة عمليات استيراد؟ على سبيل المثال:

يقوم تنسيق الاستيراد بفرز الحزم بترتيب معين، مما يحسن اتساق الكود. ونظراً لأنه يفرز ترتيب عمليات الاستيراد فقط، فإنه يمنع أيضاً عمليات الالتزام (commits) العشوائية. كما أنه يمنع التغييرات غير الضرورية في الكود ومراجعات الكود المربكة.

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

إليك كيف قد تبدو كتلة import  بعد تطبيق goimports :

هل تلاحظ أي نمط؟

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

أفكار نهائية

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

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

هل أنت مطور Go؟ تقدم CloudSigma دعماً لواجهة برمجة تطبيقات Go للتكامل السلس مع مشاريعك.

حوسبة سعيدة!

author

Preslav Dobrev

المؤلف · CloudSigma

Preslav Dobrev هو مصمم إبداعي في CloudSigma، يركز على هوية أعمال متسقة باستخدام قنوات التسويق التقليدية والمبتكرة. هو بارع في دمج الرؤية الفنية مع التسويق الاستراتيجي لخلق سرد قصصي مؤثر للعلامة التجارية.

التعليقات

لا توجد تعليقات بعد. كن أول من يعلق.