اذهب إلى المحتوى

تثبيت لغة جو وإعداد بيئة برمجة محلية على ويندوز


هدى جبور

جو Go هي لغة برمجة حديثة ذات قواعد syntax عالية المستوى على غرار لغات البرمجة النصية مثل بايثون وروبي وجافا سكربت، وقد طوّرتها شركة جوجل Google في عام 2007 لتكون ملائمة لنوعية احتياجات جوجل الحسابية من حيث التصريف compilation السريع وسهولة البرمجة والتنفيذ الفعّال. تعتبر جو لغة بسيطة جدًا من ناحية القواعد، فعدد الكلمات المفتاحية بها والأنواع الأساسية فيها ضئيل مقارنة بباقي اللغات، كما أنها تقلل كثيرًا من فكرة وجود طرق متعددة لتنفيذ مهمة ما، حتى أنها لا تحتوي على حلقة while وتقتصر فقط على حلقة for مما يجعل هذه اللغة سهلة التعلم ومناسبة للمبرمجين الجدد والخبراء ويميّزها عن باقي اللغات. تعالج جو عمليات التزامن بشكل مبتكر، بالإضافة إلى توفير الأدوات اللازمة لبناء ثنائيات محلية native binaries (برامج تنفيذية executables أو مكتبات shared libraries) لاستخدامها في منصات وأماكن أخرى.

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

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

المتطلبات

جهاز مثبت عليه نظام ويندوز 10 مع إمكانية الوصول على أساس مدير والاتصال بالانترنت.

الخطوة 1: فتح وتهيئة PowerShell

سننجز عميلة التثبيت والإعداد من خلال واجهة سطر الأوامر command line -ومعروفة أيضًا باسم الصدفة shell- وهي طريقة غير رسومية للتفاعل مع الحاسوب، إذ أنه لا توجد أزرار أو أشكال توضيحية، فقط تكتب الأمر بصيغة نصية وتنفذه، ثم تحصل على الاستجابة من الحاسب، كما يمكِّنك سطر الأوامر من تعديل وأتمتة العديد من المهام التي تقوم بها على الحاسوب كل يوم وهو أداة أساسية لمطوري البرامج.

يُعَدّ PowerShell برنامجًا من مايكروسوفت يوفر واجهةً لصدفة سطر الأوامر، إذ تُنفَّذ المهام الإدارية عن طريق تشغيل أوامر cmdlets أي command-lets، وهي أصناف Classes متخصصة من إطار العمل NET. الذي يمكنه تنفيذ العمليات، وقد أصبح PowerShell مفتوح المصدر في عام 2016، وهو متوفر الآن على أطر العمل لكل من نظامَي ويندوز ويونكس UNIX بما في ذلك ماك Mac ولينكس Linux.

يمكنك النقر بزر الفأرة الأيمن فوق رمز قائمة ابدأ في الزاوية اليسرى السفلية من شاشتك للعثور على PowerShell على جهازك، ثم انقر فوق بحث واكتب PowerShell في شريط البحث، ثم انقر بزر الفأرة الأيمن فوق Windows PowerShell، ولأسباب تتعلق بهذه المقالة يُرجى فتحه على أساس مسؤول -أو مدير- من خلال اختيار Run as Administrator، وعندما ينبثق لك مربع حوار سيسألك هل تريد السماح لهذا التطبيق بإجراء تغييرات على جهاز الكمبيوتر الخاص بك؟ انقر فوق نعم yes، وبعد إجراء ما ذكرناه ستظهر لك النافذة التالية:

فتح وتهيئة PowerShell

انتقل الآن إلى مجلد النظام من خلال الأمر التالي:

$ cd ~

سينقلك تنفيذ هذا الأمر إلى المجلد PS C:\Users\sammy.

يجب عليك الآن إعداد الأذونات من خلال PowerShell لمتابعة عملية التثبيت، ففي الحالة الافتراضية ستكون مهيأةً للتشغيل في الوضع الأكثر أمانًا، كما تجدر الإشارة إلى أنه هناك مستويات قليلة من الأذونات التي يمكنك إعدادها على أساس مسؤول:

  • المُقيّد Restricted: هي سياسة التنفيذ الافتراضية، وفي هذا الوضع لن تتمكن من تشغيل البرامج النصية scripts، وسيعمل PowerShell فقط على أساس صدفة تفاعلية مع هذه البرامج.
  • الموقّع AllSigned: سيمكنك هذا الوضع من تشغيل جميع البرامج النصية وملفات الضبط الموقَّعة عبر التوقيع الرقمي بواسطة ناشر موثوق، مما يعني أنه من المحتمل أن تٌعرِّض جهازك لخطر تشغيل البرامج النصية الضارة التي وقّع عليها ناشر موثوق به.
  • الموقّعة عن بعد RemoteSigned: يتيح لك تشغيل البرامج النصية وملفات الضبط المُحمّلة من الإنترنت والموقَّعة من قِبل ناشرين موثوقين، أي أنه يعرّض جهازك للخطر أيضًا إذا كانت هذه البرامج النصية الموثوقة ضارة.
  • بدون قيود Unrestricted: ستُشغَّل جميع البرامج النصية وملفات الضبط التي نُزِّلت من الإنترنت عند تأكيدك أنّ الملف قد نُزِّل من الإنترنت، وهنا لا يلزم وجود توقيع رقمي، وبالتالي فإنك تُعرّض جهازك لخطر تشغيل البرامج النصية غير الموقّعة والتي من المحتمل أن تكون ضارةً.

سنعتمد في هذه المقال على مستوى RemoteSigned في سياسة التنفيذ للمستخدِم الحالي، وبالتالي سيمنح PowerShell إمكانية قبول البرامج النصية الموثوقة دون الحاجة إلى جعل الأذونات واسعةً أكثر مثل المستوى بدون قيود.

نفّذ ما يلي ضمن PowerShell:

$ Set-ExecutionPolicy -Scope CurrentUser

سيطالبك PowerShell بعد ذلك بتقديم سياسة تنفيذ، لذا أدخل ما يلي لاستخدام RemoteSigned:

$ RemoteSigned

سيُطلب منك تأكيد التغيير في سياسة التنفيذ بعد الضغط على ENTER، لذا اكتب المحرف y للسماح بتنفيذ التغييرات، كما يمكنك التأكد من نجاح ذلك من خلال الاستعلام عن الأذونات الحالية كما يلي:

$ Get-ExecutionPolicy -List

سيكون الخرج كما يلي:

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser    RemoteSigned
 LocalMachine       Undefined

هذا يؤكد أنّ المستخدِم الحالي يمكنه تشغيل نصوص برمجية موثوقة مُنزَّلة من الإنترنت، ويمكنك الآن الانتقال إلى تنزيل الملفات التي سنحتاجها لإعداد بيئة برمجة جو.

الخطوة 2 - تثبيت مدير الحزم شوكولاتي Chocolatey

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

يُعَدّ شوكولاتي Chocolatey مدير حزم يمكن التفاعل معه من خلال سطر أوامر ومُصمَّم لنظام التشغيل ويندوز ويعمل مثل apt-get على لينكس، كما يُعَدّ برمجية مفتوحة المصدر يساعدك على تثبيت التطبيقات والأدوات بسرعة، وستتعلم في هذه المقالة كيفية استخدامه لتنزيل ما تحتاجه لبيئة التطوير الخاصة بك.

اقرأ البرنامج النصي أو السكربت قبل تثبيته لتؤكِّد على أنك موافق على التغييرات التي سيجريها على جهازك، ولإنجاز ذلك استخدم إطار عمل NET. لتنزيل وعرض البرنامج شوكولاتي ضمن نافذة الطرفية.

ابدأ بإنشاء كائن WebClient اسمه script$ والذي يشارك إعدادات الاتصال بالإنترنت مع Internet Explorer:

$ $script = New-Object Net.WebClient

ألق نظرةً على الخيارات المتاحة عن طريق تمرير كائن script$ مع المحرف | إلى الصنف Get-Member:

$ $script | Get-Member

سيؤدي ذلك إلى عرض جميع الأعضاء -أي الخصائص والدوال- الخاصة بالكائن WebClient:

 . . .
[secondary_label Snippet of Output]
DownloadFileAsync         Method  void DownloadFileAsync(uri address, string fileName), void DownloadFileAsync(ur...
DownloadFileTaskAsync     Method  System.Threading.Tasks.Task DownloadFileTaskAsync(string address, string fileNa...
DownloadString            Method  string DownloadString(string address), string DownloadString(uri address) #method we will use
DownloadStringAsync       Method  void DownloadStringAsync(uri address), void DownloadStringAsync(uri address, Sy...
DownloadStringTaskAsync   Method     System.Threading.Tasks.Task[string] DownloadStringTaskAsync(string address), Sy
 . . .

بالنظر إلى الخرج، يمكنك تحديد طريقة DownloadString المستخدَمة لعرض البرنامج النصي أو السكربت والتوقيع في نافذة PowerShell، واستخدِم هذه الطريقة لفحص البرنامج النصي:

$ $script.DownloadString("https://chocolatey.org/install.ps1")

ثبّت شوكولاتي بعد فحص البرنامج النصي بكتابة ما يلي في PowerShell:

$ iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex

يسمح لك أمر iwr -وهو أحد أوامر cmdlet- أو Invoke-WebRequest باستخراج البيانات من الويب، إذ سيؤدي ذلك إلى تمرير البرنامج النصي إلى iex، أو Invoke-Expression cmdlet، والذي سينفذ محتويات البرنامج النصي ويشغّل عملية تثبيت مدير حزم شوكولاتي.

سيصبح بإمكانك بعد تثبيت شوكولاتي من خلال PowerShell البدء في تثبيت أدوات إضافية باستخدام أمر choco، وإذا كنت بحاجة إلى تحديث شوكولاتي في أيّ وقت في المستقبل، فنفّذ الأمر التالي:

$ choco upgrade chocolatey

يمكنك تثبيت ما تبقى من أدوات لتجهيز بيئة برمجة جو بعد تثبيت مدير الحزم.

الخطوة 3 - تثبيت محرر النصوص Nano (خطوة اختيارية)

ستثبّت في هذه الخطوة محرر النصوص نانو nano، وهو محرر نصوص يستخدِم واجهة سطر الأوامر، كما يمكنك استخدام نانو لكتابة البرامج مباشرةً داخل PowerShell، وهذه الخطوة ليست إلزاميةً، إذ يمكنك أيضًا استخدام محرر نصوص بواجهة مستخدِم رسومية مثل Notepad، ولكن توصي هذه المقالة باستخدام نانو، إذ سيساعدك على اعتياد استخدام PowerShell.

استخدم شوكولاتي لتثبيت نانو:

$ choco install -y nano

تُستخدَم الراية y- للتأكيد التلقائي -أي الموافقة- على تشغيل البرنامج النصي.

يمكنك استخدام الأمر nano بعد تثبيت نانو لإنشاء ملفات نصية جديدة، كما ستستخدِمه لاحقًا في هذه المقالة لكتابة برنامج جو الأول الخاص بك.

الخطوة 4 - تثبيت جو

ستستخدِم شوكولاتي كما في الخطوة السابقة لتثبيت جو:

$ choco install -y golang

ملاحظة: كلمة go عبارة عن كلمة صغيرة وتتطابق مع العديد من الحزم، وبالتالي أصبح من الشائع استخدام كلمة golang على أساس مصطلح لتثبيت الحِزم وعند البحث على الإنترنت عن مقالات متعلقة بلغة جو، وقد وُلِّد مصطلح Golang من رابط الموقع الرسمي لجو وهو golang.org.

سيثبّت PowerShell جو الآن وستشاهد الخرج التالي:

Environment Vars (like PATH) have changed. Close/reopen your shell to
see the changes (or in powershell/cmd.exe just type `refreshenv`).
The install of golang was successful.
 Software installed as 'msi', install location is likely default.

Chocolatey installed 1/1 packages.
See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).

يمكنك الآن التحقق من نجاح عملية التثبيت عن طريق إغلاق PowerShell وإعادة فتحه مرةً أخرى على أساس مسؤول ثم تنفيذ الأمر التالي للتحقق من إصدار لغة جو المُثبَّت:

$ go version

سترى خرجًا مُشابهًا للخرج التالي:

go version go1.12.1 windows/amd643.7.0

حيث يعرض لك تفاصيل النسخة الحالية المثبتة على حاسبك من جو. يمكنك الآن إعداد مساحة عمل لمشاريع التطوير الخاصة بك.

الخطوة 5 - إنشاء مساحة العمل الخاصة بك لبناء مشاريع جو

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

  • src: مجلد ستوضَع فيه ملفات جو المصدرية وهي الملفات التي المكتوبة والمنشأة باستخدام لغة جو، إذ يستخدِمها مُصرِّف جو لإنشاء ملفات قابلة للتنفيذ وهي ملفات ثنائية يمكن تشغيلها على نظامك لتنفيذ المهام التي تتضمنها).
  • bin: مجلد ستوضَع فيه الملفات الثنائية التي أُنشِئت وثبِّتَت بواسطة أدوات جو؛ وبعبارة أخرى هي البرامج التي المصرَّفة بواسطة الشيفرة المصدرية الخاصة بك أو غيرها من التعليمات البرمجية المصدرية المرتبطة بجو والتي قد نزِّلت.

من المحتمل أن يحتوي المجلد الفرعي src على عدة مستودعات للتحكم في الإصدارات مثل Git و Mercurial و Bazaar، وهذا يسمح لك باستيراد أساسي canonical import للشيفرة في مشروعك وهو عملية استيراد تشير إلى حزمة مؤهلة وجاهزة بالكامل مثل github.com/digitalocean/godo.

سترى مجلدات مثل github.com أو golang.org عندما يستورد برنامجك مكتبات خارجية، فإذا كنت تستخدِم -أو لديك- شيفرات برمجية على إحدى المواقع مثل GitHub، فستضع أيضًا هذه المشاريع أو الملفات المصدرية ضمن هذا المجلد وستتعرّف على ذلك بعد قليل.

ستبدو مساحة العمل النموذجية هكذا:

.
├── 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$ لمساحة عملك.

نفّذ الأمر التالي للانتقال إلى المجلد HOME$:

$ cd $HOME

أنشئ بعدها مجلدًا لبيئة العمل بتنفيذ الأمر التالي:

$ mkdir go/bin, go/src

سيؤدي ذلك إلى إنشاء بنية المجلد التالية:

└── $HOME
    └── go
        ├── bin
        └── src

سابقًا أي قبل الإصدار 1.8 كان يجب عليك استخدام متغير بيئة محلي يسمى GOPATH$ من أجل تحديد المكان الذي يمكن للمُصرِّف فيه العثور على الشيفرة المصدرية المطلوب استخدامها في مشروعك، سواءً كانت الشيفرة محليةً أو على موقع استضافة خارجي (عمومًا، تعتبر هذه الطريقة جيدة أكثر كما أن بعض الأدوات مازالت تعتمد على استخدامه) لكن لا يطلبضبط متغير البيئة ذاك صراحة.

يجب أن يكون متغير البيئة GOPATH$ قد حُدّدَ فعلًا نظرًا لأنك استخدَمت شوكولاتي في عملية التثبيت، ويمكنك التحقق من ذلك بالأمر التالي:

$ $env:GOPATH

يجب أن ترى الخرج التالي مع اسم المستخدِم الخاص بك بدلًا من sammy:

C:\Users\sammy\go

عندما يُصرِّف ويثبّت جو الأدوات، فسيضعها في المجلد GOPATH/bin$، وللراحة فإنه من الشائع إضافة المجلد الفرعي bin الخاص بمساحة العمل إلى ‎$PATH، ويمكنك إنجاز ذلك من خلال الأمر setx في PowerShell:

$ setx PATH "$($env:path);$GOPATH\bin"

سيسمح لك ذلك بتشغيل أيّ برامج تصرّفها أو تنزّلها عبر أدوات جو في أيّ مكان على نظامك.

الآن وبعد أن أنشأت المجلد الجذر لمساحة العمل وضبطت مجموعة متغيرات البيئة GOPATH$ الخاصة بك، فقد أصبح بإمكانك إنشاء مشاريعك المستقبلية باستخدام بنية المجلد التالية، ويفترض هذا المثال أنك تستخدِم موقع GitHub لاستضافة مشروعك:

$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

ملاحظة: إذا لم يكن جيت git مُثبّتًا لديك، فسيفتح ويندوز مربع حوار يسألك عما إذا كنت تريد تثبيته، وعندها انقر فوق نعم yes للمتابعة واتبع إرشادات التثبيت.

يمكنك أيضًا التحقق من نجاح عملية التنزيل من خلال سرد محتويات المجلد:

$ ls -l $GOPATH/src/github.com/digitalocean/godo

يجب أن تشاهد خرجًا يشبه الخرج التالي:

    Directory: C:\Users\sammy\go\src\github.com\digitalocean\godo


Mode                LastWriteTime       Length Name
----                -------------       ------ ----
d-----        4/10/2019   2:59 PM             util
-a----        4/10/2019   2:59 PM             9 .gitignore
-a----        4/10/2019   2:59 PM             69 .travis.yml
-a----        4/10/2019   2:59 PM         1592 account.go
-a----        4/10/2019   2:59 PM         1679 account_test.go
-rw-r--r--  1 sammy  staff   2892 Apr  5 15:56 CHANGELOG.md
-rw-r--r--  1 sammy  staff   1851 Apr  5 15:56 CONTRIBUTING.md
.
.
.
-a----        4/10/2019   2:59 PM         5076 vpcs.go
-a----        4/10/2019   2:59 PM         4309 vpcs_test.go

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

الخطوة 6 - إنشاء برنامج بسيط

ستنشئ برنامجًا بسيطًا بلغة جو Go يطبع العبارة “Hello, World!‎” بغية اختبار مساحة العمل والتعرف أكثر على جو، كما ستنشئ هنا ملفًا مصدريًا واحدًا لجو وليس مشروعًا متكاملًا، لذا لا داعي لأن تكون ضمن مساحة العمل الخاصة بك لإنجاز ذلك.

افتح محرر نصوص سطر الأوامر نانو من المجلد الرئيسي وأنشئ ملفًا جديدًا:

$ 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!

بذلك يكون اختبار مساحة العمل الخاصة بك قد أكتمل.

خاتمة

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

ترجمة -وبتصرَُف- للمقال How To Install Go and Set Up a Local Programming Environment on Windows 10 لصاحبه Gopher Guides.

اقرأ أيضًا


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...