تُعَدّ جو Go لغة برمجة حديثة ذات قواعد syntax عالية المستوى على غرار لغات البرمجة النصية مثل بايثون وروبي وجافاسكربت، وقد طوّرتها شركة جوجل Google في عام 2007 لتكون ملائمةً لنوعية احتياجات جوجل الحسابية من حيث التصريف compilation السريع وسهولة البرمجة والتنفيذ الفعّال.
تُعَدّ جو لغةً بسيطةً جدًا من ناحية القواعد، فعدد الكلمات المفتاحية بها والأنواع الأساسية فيها ضئيل مقارنة بباقي اللغات، كما أنها تقلل كثيرًا من فكرة وجود طرق متعددة لتنفيذ مهمة ما، حتى أنها لا تحتوي على حلقة while وتقتصر فقط على حلقة for، مما يجعل هذه اللغة سهلة التعلم ومناسبةً للمبرمجين الجدد والخبراء ويميّزها عن باقي اللغات، كما تعالِج جو عمليات التزامن بصورة مبتكرة، بالإضافة إلى توفير الأدوات اللازمة لبناء ملفات ثنائية أصيلة native binaries مثل برامج تنفيذية executables أو مكتبات مشتركة shared libraries لاستخدامها في منصات وأماكن أخرى.
تُعَدّ جو لغة برمجة متعددة الاستخدامات يمكن استخدامها في العديد من مشاريع البرمجة، إلا أنها مناسبة بصورة خاصة لبرامج الشبكات والأنظمة الموزعة، ومن هذا المُنطلق اكتسبت لقب "لغة السحابة"، كما تركز لغة جو على مساعدة المبرمجين من خلال تقديم مجموعة مميزة من الأدوات وجعل التنسيق جزءًا من مواصفات اللغة وتسهيل النشر عن طريق تحويل البرنامج إلى ملف تنفيذي.
المتطلبات
حاسوب -أو آلة افتراضية- مثبت عليه نظام أبونتو 20.04 مع إمكانية وصول إدارية والاتصال بالانترنت.
الخطوة 1- إعداد جو
الخطوة الأولى هي تثبيت جو عن طريق تحميل الإصدار الحالي من جو من الصفحة الرسمية، لذا يجب أن تحصل على عنوان URL لآخر نسخة من ملف Tarball (أو tarfile؛ اسم المجموعة أو أرشيف الملفات المُصرّفة معًا باستخدام الأمر tar)، كما يجب عليك الانتباه إلى قيمة SHA256 المدرَجة بجوارها لأنك ستحتاجها للتحقق من الملف الذي حُمِّل. في وقت كتابة هذه المقالة كان أحدث إصدار go1.16.7
.
سننجز عملية التثبيت من خلال سطر الأوامر command line -ومعروف أيضًا باسم الصدفة shell أو الطرفية Terminal وهو وسيلة تخاطب مع الحاسوب عبر كتابة الأوامر له- الذي يُمكّنك من تعديل وأتمتة العديد من المهام التي تؤديها على جهاز الحاسوب كل يوم، وهو أداة أساسية لمطورِي البرامج.
يمكنك العثور على تطبيق سطر الأوامر من خلال النقر على أيقونة أبونتو في الزاوية العلوية اليسرى من شاشتك وكتابة Terminal في شريط البحث ثم انقر على أيقونة تطبيق الطرفية لفتحه أو يمكنك الضغط على مفاتيح CTRL + ALT + T على لوحة المفاتيح في الوقت نفسه لفتح تطبيق الطرفية تلقائيًا.
يمكنك تثبيت الملفات التنفيذية (الثنائية) binaries لجو مباشرةً بعد فتح الطرفية، إذ يمكنك استخدام مدير حزم مثل apt-get
أو اتباع خطوات التثبيت اليدوي وهو المُستحسَن لتكون قادرًا على فهم وإجراء أيّة تعديلات مطلوب ضبطها في نظامك لكي يعمل جو بطريقة صحيحة.
تأكد من أنك في المجلد home (~) قبل بدء تحميل جو:
$ cd ~
استخدم الأمر curl
للحصول على عنوان URL الخاص بالملف tarball الذي نسخته من الصفحة الرسمية لجو:
$ curl -OL https://golang.org/dl/go1.16.7.linux-amd64.tar.gz
استخدم التجزئة sha256sum
للتحقق من صلاحية ملف tarball:
$ sha256sum go1.16.7.linux-amd64.tar.gz
يجب أن تتطابق التجزئة التي عُرضَت بعد تنفيذ الأمر السابق مع التجزئة الموجودة في صفحة التحميلات في الصفحة الرسمية لجو وإلا فهذا ليس ملفًا صالحًا ويجب عليك تحميل الملف مرةً أخرى.
go1.16.7.linux-amd64.tar.gz 7fe7a73f55ba3e2285da36f8b085e5c0159e9564ef5f63ee0ed6b818ade8ef04 go1.16.7.linux-amd64.tar.gz
استخرِج بعد ذلك الأرشيف الذي حمِّل وثبّته في الموقع المطلوب على النظام، ويوصى في المسار usr/local/. يتضمن هذا الأمر الراية C-
التي ترشد tar إلى المجلد المحدد قبل تنفيذ أي عمليات أخرى.
$ sudo tar -C /usr/local -xvf go1.16.7.linux-amd64.tar.gz
أصبح لديك الآن مجلدًا باسم go في المسار usr/local/، وبذلك تكون قد حمّلت وثبّت جو على نظام أبونتو الخاص بك.
الخطوة 2 - إنشاء مساحة العمل Workspace الخاصة بك
يمكنك إنشاء مساحة العمل الخاصة بك بعد إكمال الخطوة الأولى، إذ ستحتوي على مجلدين في جذرها:
- src: مجلد ستوضع فيه ملفات جو المصدرية، وهي الملفات التي تُكتب وتُنشأ باستخدام لغة جو، إذ سيستخدِمها مُصرِّف جو لإنشاء ملفات قابلة للتنفيذ أي ملفات ثنائية يمكن تشغيلها على نظامك لتنفيذ المهام التي تتضمنها.
- bin: مجلد ستوضع فيه الملفات الثنائية التي أنشِئت وثُبِّتت بواسطة أدوات جو؛ بعبارة أخرى هي البرامج التي صُرِّفت من التعليمات البرمجية المصدرية الخاصة بك أو غيرها من التعليمات البرمجية المصدرية المرتبطة بجو والتي حمّلتها.
من المحتمل أن يحتوي المجلد src على عدة مستودعات للتحكم في الإصدارات مثل Git و Mercurial و Bazaar، إذ سيسمح لك هذا باستيراد أساسي canonical import للشيفرة البرمجية في مشروعك، والاستيراد الأساسي هو عملية استيراد تشير إلى حزمة مؤهلة وجاهزة بالكامل مثل github.com/digitalocean/godo.
سترى مجلدات مثل github.com أو golang.org أو غيرها عندما يستورد برنامجك مكتبات تابعة لجهات خارجية، فإذا كنت تستخدِم -أو لديك- شيفرات برمجية على إحدى المواقع مثل github.com، فستضع أيضًا هذه المشاريع أو ملفات المصدر ضمن هذا المجلد وستتعرّف على ذلك بعد قليل.
تبدو مساحة العمل النموذجية كما يلي:
. ├── bin │ ├── buffalo # أمر تنفيذي │ ├── dlv # أمر تنفيذي │ └── packr # أمر تنفيذي └── src └── github.com └── digitalocean └── godo ├── .git # البيانات الوصفية لمستودع جيت ├── account.go # ملف الحزمة ├── account_test.go # اختبار ملف الحزمة ├── ... ├── timestamp.go ├── timestamp_test.go └── util ├── droplet.go └── droplet_test.go
يُعَدّ المجلد الافتراضي لمساحة العمل في جو بدءًأ من الإصدار 1.8 هو المجلد الرئيسي home للمستخدِم الذي يحتوي على مجلد فرعي باسم go أي HOME/go$، فإذا استخدَمت إصدارًا أقدم من 1.8، فمن الأفضل الاستمرار في استخدام الموقع HOME/go$ لمساحة عملك.
نفّذ الأمر التالي لإنشاء بنية مجلد لمساحة العمل الخاصة بك في جو:
$ mkdir -p $HOME/go/{bin,src}
يطلب الخيار p-
من mkdir إنشاء جميع العناصر الرئيسية parents في المجلد حتى لو لم تكن موجودة حاليًا، إذ يؤدي استخدام {bin، src}
إلى إنشاء مجموعة من الوسائط لـ mkdir
وإخباره بإنشاء كل من مجلد bin و src.
سيؤدي ذلك إلى إنشاء بنية المجلد التالية:
└── $HOME └── go ├── bin └── src
سابقًا وقبل الإصدار 1.8 كان يجب عليك استخدام متغير بيئة محلي يسمى GOPATH$
من أجل تحديد المكان الذي يمكن للمُصرِّف فيه العثور على الشيفرة المصدرية المطلوب استخدامها في مشروعك، سواءً كانت الشيفرة محلية أو على موقع استضافة خارجي (عمومًا، تُعَدّ هذه الطريقة جيدةً أكثر كما أن بعض الأدوات مازالت تعتمد على استخدامه).
يمكن ضبط المتغير GOPATH$
الخاص بك من خلال إضافة المتغيرات العامة إلى ~/.profile وربما تحتاج أيضًا إلى إضافته إلى ملف zshrc. أو bashrc. تبعًا لتهيئة الصدَفة shell الخاصة بك.
أولًا، افتح ~/.profile باستخدام nano أو محرر النصوص المفضل لديك:
$ nano ~/.profile
حدِّد المتغير GOPATH$
الخاص بك من خلال إضافة ما يلي إلى الملف:
export GOPATH=$HOME/go
عندما يُصرّف جو الأدوات ويثبّتها، فسيضعها في المجلد GOPATH/bin$، ومن الشائع إضافة المجلد الفرعي bin/ الخاص بمساحة العمل إلى PATH
في ~/.profileكما يلي:
export PATH=$PATH:$GOPATH/bin
سيسمح لك ذلك بتشغيل أيّ برامج مُصرَّفة بواسطة جو أو محمّلة عبر أدوات جو من أيّ مكان على نظامك.
أخيرًا، ستحتاج إلى إضافة المجلد bin إلى المسار PATH من خلال إضافة المسار usr/local/go/bin/ في نهاية السطر كما يلي:
export PATH=$PATH:$GOPATH/bin:/usr/local/go/bin
أصبح بإمكانك الآن الوصول إلى جميع أدوات جو من أيّ مكان على نظامك.
نفّذ الأمر التالي لتحميل المتغيرات العامة وتحديث الصدَفة:
. ~/.profile
يمكنك التحقق من تحديث المتغير PATH$
باستخدام الأمر echo
وقراءة الخرج:
$ echo $PATH
ستشاهد GOPATH/bin$ الخاص بك والذي سيظهر في مجلد home، فإذا سجّلت الدخول على أساس جذر، فسترى root/go/bin/ في المسار.
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/root/go/bin:/usr/local/go/bin
ستشاهد أيضًا المسار الخاص بأدوات جو ضمن المجلد usr/local/go/bin/:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/root/go/bin:/usr/local/go/bin
تحقق الآن من التثبيت عن طريق التحقق من الإصدار الحالي من جو:
$ go version
سيظهر لك خرج يشبه التالي:
go version go1.12.1 linux/amd64
الآن بعد أن أنشأتَ المجلد الجذر لمساحة العمل وضبطت مجموعة متغيرات البيئة GOPATH$
الخاصة بك، أصبح بإمكانك إنشاء مشاريعك باستخدام بنية المجلد التالية، وسيفترض هذا المثال أنك تستخدِم موقع github.com لاستضافة مشروعك:
$GOPATH/src/github.com/username/project
إذا كنت تعمل على مشروع https://github.com/digitalocean/godo على سبيل المثال، فسيُخزَّن في المجلد التالي:
$GOPATH/src/github.com/digitalocean/godo
ستجعل هذه البنية المشاريع متاحةً باستخدام أداة go get
، كما أنها ستساعدك أيضًا في عمليات القراءة، كما يمكنك الوصول إلى مكتبة godo من خلال الأمر السابق كما يلي:
$ go get github.com/digitalocean/godo
سيؤدي ذلك إلى تحميل محتويات مكتبة godo وإنشاء المجلد GOPATH/src/github.com/digitalocean/godo$ على جهازك.
يمكنك أيضًا التحقق من نجاح عملية تحميل حزمة godo من خلال سرد محتويات المجلد:
$ ll $GOPATH/src/github.com/digitalocean/godo
يجب أن تشاهد خرجًا يشبه الخرج التالي:
drwxr-xr-x 4 root root 4096 Apr 5 00:43 ./ drwxr-xr-x 3 root root 4096 Apr 5 00:43 ../ drwxr-xr-x 8 root root 4096 Apr 5 00:43 .git/ -rwxr-xr-x 1 root root 8 Apr 5 00:43 .gitignore* -rw-r--r-- 1 root root 61 Apr 5 00:43 .travis.yml -rw-r--r-- 1 root root 2808 Apr 5 00:43 CHANGELOG.md -rw-r--r-- 1 root root 1851 Apr 5 00:43 CONTRIBUTING.md . . . -rw-r--r-- 1 root root 4893 Apr 5 00:43 vpcs.go -rw-r--r-- 1 root root 4091 Apr 5 00:43 vpcs_test.go
بذلك تكون قد أنشأت مساحة عمل خاصة بك وهيأت متغيرات البيئة اللازمة، وسنختبر في الخطوة التالية مساحة العمل هذه من خلال كتابة برنامج بسيط.
الخطوة 3 - إنشاء برنامج بسيط في جو
ستنشئ برنامج “Hello, World!” بغية اختبار مساحة العمل والتعرف أكثر على جو. ستنشئ هنا ملف مصدري واحد لجو وليس مشروعًا فعليًا، لذا لا داعي لأن تكون ضمن مساحة العمل الخاصة بك لإنجاز ذلك.
افتح محرر نصوص سطر الأوامر nano من المجلد الرئيسي وأنشئ ملفًا جديدًا:
$ nano hello.go
اكتب برنامجك في الملف الجديد:
package main import "fmt" func main() { fmt.Println("Hello, World!") }
ستستخدِم هذه الشيفرة حزمة fmt وستستدعي الدالة Println
لطباعة Hello, World! التي تم مرِّرت على أساس وسيط إلى الدالة.
اخرج الآن من المحرر nano بالضغط على مفتاحَي CTRL+ X، وعند مطالبتك بحفظ الملف، اضغط على Y
ثم ENTER
.
شغِّل برنامج hello.go الذي أنشأته عند الخروج من nano والعودة إلى الصدَفة:
go run hello.go
سترى الخرج التالي:
Hello, World!
بذلك يكون اختبار مساحة عملك قد أكتمل.
خاتمة
تهانينا، لقد أنشأت مساحة عمل خاصة بك لكتابة الشيفرات البرمجية وإنشاء المشاريع بلغة جو على جهاز يعمل بنظام تشغيل أبونتو.
ترجمة -وبتصرُّف- للمقال How To Install Go on Ubuntu 20.04 لصاحبه Gopher Guides.
أفضل التعليقات
لا توجد أية تعليقات بعد
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.