مقدمة
غو لغة برمجة وُلدت من خيبة أمل جوجل. كان المطورون مضطرين دائمًا للاختيار بين لغة تعمل بكفاءة وتستغرق وقتًا طويلاً في التجميع، أو لغة سهلة البرمجة ولكنها غير فعالة في الإنتاج. صُممت غو لتجمع هذه المزايا الثلاثة في آن واحد: سرعة التجميع، وسهولة البرمجة، وكفاءة التنفيذ في الإنتاج.
على الرغم من أن لغة البرمجة Go متعددة الاستخدامات ويمكن توظيفها في العديد من المشاريع البرمجية المختلفة، إلا أنها تُعدّ مثاليةً لتطبيقات الشبكات والأنظمة الموزعة، وتُعرف باسم "لغة الحوسبة السحابية". تركز Go على مساعدة المبرمج العصري على إنجاز المزيد باستخدام مجموعة أدوات قوية، وتُغني عن مناقشات التنسيق بجعل التنسيق جزءًا من مواصفات اللغة، كما تُسهّل عملية النشر من خلال تجميعها في ملف تنفيذي واحد. تتميز Go بسهولة تعلمها، مع مجموعة صغيرة جدًا من الكلمات المفتاحية، مما يجعلها خيارًا ممتازًا للمبتدئين والمطورين ذوي الخبرة على حد سواء.
سيرشدك هذا البرنامج التعليمي خلال عملية تثبيت Go على جهاز Windows 10 المحلي الخاص بك وإعداد بيئة برمجة عبر سطر الأوامر.
المتطلبات الأساسية
- أنت بحاجة إلى جهاز يعمل بنظام التشغيل Windows 10 ولديه صلاحيات إدارية ومتصل بالإنترنت.
الخطوة 1 - افتح برنامج PowerShell وقم بتهيئته
ستُكمل معظم عمليات التثبيت والإعداد عبر واجهة سطر الأوامر، وهي طريقة غير رسومية للتفاعل مع جهاز الكمبيوتر. أي أنك بدلًا من النقر على الأزرار، تكتب نصًا وتتلقى ردودًا من جهاز الكمبيوتر على شكل نص. يُساعدك سطر الأوامر، المعروف أيضًا باسم الصدفة، على تعديل وأتمتة العديد من المهام التي تُنفذها على جهاز الكمبيوتر يوميًا، وهو أداة أساسية لمطوري البرامج.
باور شيل هو برنامج من مايكروسوفت يوفر واجهة سطر أوامر. تُنفذ المهام الإدارية عن طريق استخدام أوامر cmdlets، وهي فئات متخصصة من إطار عمل .NET البرمجي قادرة على تنفيذ عمليات محددة. أصبح باور شيل مفتوح المصدر في أغسطس 2016، وهو متوفر الآن على مختلف المنصات، لأنظمة ويندوز والأنظمة الشبيهة بيونكس (بما في ذلك ماك ولينكس).
للعثور على Windows PowerShell، انقر بزر الماوس الأيمن على أيقونة قائمة ابدأ في الزاوية السفلية اليسرى من الشاشة. عند ظهور القائمة، انقر على "بحث" ثم اكتب PowerShell في شريط البحث. عند ظهور الخيارات، انقر بزر الماوس الأيمن على Windows PowerShell من تطبيق سطح المكتب. لأغراض هذا الشرح، اختر "تشغيل كمسؤول". عند ظهور مربع حوار يسألك عما إذا كنت تريد السماح لهذا البرنامج بإجراء تغييرات على جهاز الكمبيوتر الخاص بك، انقر على "نعم".
بمجرد القيام بذلك، سترى واجهة نصية تحتوي على سلسلة من الكلمات على النحو التالي:
للخروج من مجلد النظام، اكتب الأمر التالي:
cd ~
ستكون حينها في دليل الجذر مثل PS C:\Users\sammy.
لمتابعة عملية التثبيت، يجب عليك أولاً تعيين الأذونات عبر PowerShell. بشكل افتراضي، يتم تكوينه للتشغيل في الوضع الأكثر أمانًا، وهناك عدة مستويات من الأذونات التي يمكنك تعيينها كمسؤول:
- الوضع المقيد هو سياسة التنفيذ الافتراضية. في هذا الوضع، لا يمكنك تشغيل البرامج النصية، ويعمل PowerShell فقط كواجهة تفاعلية.
- تتيح لك AllSigned تشغيل جميع البرامج النصية وملفات التكوين الموقعة من قبل ناشر موثوق به، مما يعني أنه يمكنك تعريض جهازك لخطر تشغيل البرامج النصية الضارة التي تصادف أنها موقعة من قبل ناشر موثوق به.
- تتيح لك ميزة RemoteSigned تشغيل البرامج النصية وملفات التكوين التي تم تنزيلها من الإنترنت والموقعة من قبل ناشرين موثوق بهم، مما يعرض جهازك مرة أخرى للثغرات الأمنية إذا كانت هذه البرامج النصية الموثوقة ضارة بالفعل.
- بمجرد ملاحظة أن الملف قد تم تنزيله من الإنترنت، سيقوم برنامج Unrestricted بتشغيل جميع البرامج النصية وملفات التكوين التي تم تنزيلها من الإنترنت. في هذه الحالة، لا يلزم وجود توقيع رقمي، لذا يمكنك فتح جهازك مع تحمل مخاطر تشغيل برامج نصية غير موقّعة وربما ضارة تم تنزيلها من الإنترنت.
في هذا الدرس، ستستخدم سياسة التنفيذ RemoteSigned لتعيين أذونات المستخدم الحالي. يسمح هذا لـ PowerShell بقبول البرامج النصية الموثوقة دون فرض أذونات صارمة كما هو الحال مع الترخيص غير المقيد. أدخل ما يلي في PowerShell:
Set-ExecutionPolicy -Scope CurrentUser
سيطلب منك PowerShell بعد ذلك تحديد سياسة التنفيذ. لاستخدام RemoteSigned، أدخل ما يلي:
RemoteSigned
بعد الضغط على مفتاح الإدخال (Enter)، سيُطلب منك تأكيد تغيير سياسة التنفيذ. اكتب "y" لتطبيق التغييرات. يمكنك التحقق من ذلك عن طريق طلب الأذونات الحالية على الجهاز.
Get-ExecutionPolicy -List
يجب أن تحصل على مخرجات تبدو كالتالي:
Output
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser RemoteSigned
LocalMachine Undefinedهذا يُؤكد أن المستخدم الحالي لديه صلاحية تشغيل البرامج النصية الموثوقة التي تم تنزيلها من الإنترنت. يمكنك الآن المتابعة لتنزيل الملفات اللازمة لإعداد بيئة تطوير Go.
الخطوة 2 - تثبيت مدير حزم Chocolatey
مدير الحزم عبارة عن مجموعة من أدوات البرمجيات التي تعمل على أتمتة عمليات التثبيت. يشمل ذلك التثبيت الأولي، وترقية البرامج وتكوينها، وإزالة البرامج عند الحاجة. كما أنه يحافظ على تثبيتات البرامج في موقع مركزي، ويمكنه إدارة جميع حزم البرامج على النظام بتنسيقات شائعة الاستخدام.
Chocolatey هو مدير حزم سطر أوامر مصمم لنظام ويندوز، ويعمل بشكل مشابه لـ apt-get على نظام لينكس. يتوفر Chocolatey بنسخة مفتوحة المصدر، ويساعدك على تثبيت البرامج والأدوات بسرعة. ستستخدمه لتنزيل ما تحتاجه لبيئة التطوير الخاصة بك.
قبل تثبيت البرنامج النصي، اقرأه للتأكد من موافقتك على التغييرات التي سيُجريها على جهازك. وللقيام بذلك، استخدم إطار عمل البرمجة النصية .NET لتنزيل وعرض برنامج Chocolatey النصي في نافذة طرفية.
ابدأ بإنشاء كائن 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")
بعد مراجعة البرنامج النصي، قم بتثبيت Chocolatey عن طريق كتابة ما يلي في PowerShell:
iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex
تتيح لك وحدة التحكم iwr أو Invoke-WebRequest استخراج البيانات من الويب. تقوم هذه الوحدة بتمرير البرنامج النصي إلى وحدة التحكم iex أو Invoke-Expression، التي بدورها تنفذ محتويات البرنامج النصي وتُجري عملية تثبيت برنامج إدارة حزم Chocolatey.
دع برنامج PowerShell يقوم بتثبيت Chocolatey. بمجرد اكتمال التثبيت، يمكنك البدء في تثبيت أدوات إضافية باستخدام الأمر choco.
إذا احتجت إلى ترقية Chocolatey في أي وقت في المستقبل، فقم بتشغيل الأمر التالي:
choco upgrade chocolatey
من خلال تثبيت مدير الحزم، يمكنك تثبيت باقي الأشياء التي تحتاجها لبيئة برمجة Go.
الخطوة 3 - تثبيت محرر النصوص نانو (اختياري)
في هذه الخطوة، ستقوم بتثبيت nano، وهو محرر نصوص يستخدم واجهة سطر الأوامر. يمكنك استخدام nano لكتابة البرامج مباشرةً في PowerShell. هذه الخطوة ليست إلزامية، إذ يمكنك أيضًا استخدام محرر نصوص بواجهة مستخدم رسومية، مثل المفكرة. يُنصح في هذا الدليل باستخدام nano، لأنه سيساعدك على التعود على استخدام PowerShell.
استخدم برنامج Chocolatey لتثبيت برنامج Nano:
choco install -y nano
يؤكد الخيار -y تلقائيًا أنك تريد تشغيل البرنامج النصي دون طلب تأكيد.
بعد تثبيت محرر النصوص nano، يمكنك استخدام أمر nano لإنشاء ملفات نصية جديدة. لاحقًا في هذا الدرس، ستستخدمه لكتابة أول برنامج لك بلغة Go.
الخطوة 4 – تثبيت Go
تمامًا كما فعلت مع nano في الخطوة السابقة، ستستخدم Chocolatey لتثبيت Go:
choco install -y golang
ملاحظة: نظرًا لأن كلمة "go" قصيرة جدًا، فقد شاع استخدام مصطلح "golang" للإشارة إلى تثبيت الحزم وعند البحث على الإنترنت عن مقالات متعلقة بلغة Go. وقد نشأ مصطلح "Golang" من نطاق Go، وهو golang.org.
سيقوم PowerShell الآن بتثبيت Go وإنشاء مخرجات في PowerShell أثناء هذه العملية. بمجرد اكتمال التثبيت، ستظهر لك المخرجات التالية:
Output
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).بعد اكتمال التثبيت، تأكد الآن من تثبيت Go. لعرض التغييرات، أغلق PowerShell ثم أعد فتحه كمسؤول، ثم تحقق من إصدار Go على جهازك المحلي.
go version
سوف تحصل على إخراج مماثل لما يلي:
Output
go version go1.12.1 windows/amd643.7.0بعد تثبيت Go، يمكنك إعداد مساحة عمل لمشاريع التطوير الخاصة بك.
الخطوة 5 - إنشاء مساحة عمل Go الخاصة بك
الآن بعد تثبيت Chocolatey و nano و Go، يمكنك إنشاء مساحة عمل البرمجة الخاصة بك.
ستحتوي مساحة عمل Go على مجلدين في جذرها:
- src: المجلد الذي يحتوي على ملفات مصدر Go. ملف المصدر هو ملف تكتبه باستخدام لغة برمجة Go. يستخدم مُصرّف Go ملفات المصدر لإنشاء ملف تنفيذي ثنائي.
- مجلد bin: هو مجلد يحتوي على ملفات تنفيذية تم إنشاؤها وتثبيتها بواسطة أداة Go. الملفات التنفيذية هي ملفات ثنائية تعمل على نظامك وتؤدي مهامًا محددة. عادةً ما تكون هذه برامج مُجمّعة من شفرة المصدر الخاصة بك أو من شفرة مصدر Go أخرى تم تنزيلها.
قد يحتوي المجلد الفرعي src على عدة مستودعات للتحكم في الإصدارات (مثل Git وMercurial وBazaar). عند استيراد تطبيقك لمكتبات خارجية، ستظهر لك مجلدات مثل github.com أو golang.org. إذا كنت تستخدم مستودعًا برمجيًا مثل github.com، فستضع مشاريعك وملفات المصدر في هذا المجلد أيضًا. يتيح لك هذا استيراد التعليمات البرمجية بشكل كامل إلى مشروعك. الاستيراد الكامل هو استيراد يشير إلى حزمة مؤهلة بالكامل، مثل github.com/digitalocean/godo.
إليك كيف قد تبدو مساحة العمل النموذجية:
.
├── bin
│ ├── buffalo # command executable
│ ├── dlv # command executable
│ └── packr # command executable
└── src
└── github.com
└── digitalocean
└── godo
├── .git # Git repository metadata
├── account.go # package source
├── account_test.go # test source
├── ...
├── timestamp.go
├── timestamp_test.go
└── util
├── droplet.go
└── droplet_test.goفي الإصدار 1.8، يكون المجلد الافتراضي لمساحة عمل Go هو مجلد المستخدم الرئيسي، مع وجود مجلد فرعي باسم go أو $HOME/go. إذا كنت تستخدم إصدارًا من Go أقدم من 1.8، فلا يزال يُنصح باستخدام الموقع $HOME/go لمساحة عملك.
قم بإصدار الأمر التالي للانتقال إلى دليل $HOME:
cd $HOME
بعد ذلك، قم بإنشاء بنية الدليل لمساحة عمل Go الخاصة بك:
mkdir go/bin, go/src
وهذا يضمن وجود بنية الدليل التالية حاليًا:
└── $HOME
└── go
├── bin
└── srcقبل إصدار Go 1.8، كان من الضروري تعيين متغير بيئة محلي يُسمى $GOPATH. ورغم أن هذا لم يعد مطلوبًا، إلا أنه لا يزال يُعتبر ممارسة جيدة لأن العديد من أدوات الطرف الثالث لا تزال تعتمد على تعيين هذا المتغير.
بما أنك استخدمت Chocolatey للتثبيت، فمن المفترض أن يكون متغير البيئة هذا مُعرّفًا بالفعل. يمكنك التحقق من ذلك باستخدام الأمر التالي:
$env:GOPATH
يجب أن ترى المخرجات التالية مع اسم المستخدم الخاص بك بدلاً من sammy:
Output
C:\Users\sammy\goعندما يقوم برنامج Go بتجميع وتثبيت الأدوات، فإنه يضعها في المجلد $GOPATH/bin. ولتسهيل الأمر، يُنصح بإضافة المجلد الفرعي bin الخاص بمساحة العمل إلى $PATH. يمكنك القيام بذلك باستخدام الأمر setx في PowerShell.
setx PATH "$($env:path);$GOPATH\bin"
يتيح لك الآن تشغيل أي برنامج تقوم بتجميعه أو تنزيله عبر أداة Go في أي مكان على نظامك.
بعد إنشاء جذر مساحة العمل وتعيين متغير البيئة $GOPATH، ستنشئ مشاريعك المستقبلية باستخدام بنية المجلدات التالية. يفترض هذا المثال أنك تستخدم github.com كمستودع لك:
$GOPATH/src/github.com/username/project
إذا كنت تعمل على المشروع https://github.com/digitalocean/godo، فستقوم بإدراجه على النحو التالي:
$GOPATH/src/github.com/digitalocean/godo
إنّ تنظيم مشاريعك بهذه الطريقة سيجعلها متاحة باستخدام أداة go get، كما سيساعد في تحسين سهولة قراءتها لاحقاً.
يمكنك التحقق من ذلك باستخدام الأمر go get لجلب مكتبة godo:
go get github.com/digitalocean/godo
ملاحظة: إذا لم يكن برنامج Git مثبتًا لديك، فسيظهر مربع حوار في نظام Windows يسألك عما إذا كنت ترغب في تثبيته. انقر فوق "نعم" للمتابعة واتبع تعليمات التثبيت.
من خلال عرض محتويات المجلد، يمكنك أن ترى أن حزمة godo قد تم تنزيلها بنجاح:
ls $env:GOPATH/src/github.com/digitalocean/godo
سوف تحصل على إخراج مماثل لهذا:
Output
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في هذه المرحلة، تكون قد أنشأت مساحة عمل Go وقمت بضبط متغيرات البيئة اللازمة. بعد ذلك، ستختبر مساحة العمل باستخدام بعض التعليمات البرمجية.
الخطوة 6 - إنشاء تطبيق بسيط
بعد إعداد مساحة عمل Go الخاصة بك، أنشئ برنامجًا بسيطًا بعنوان "Hello, World!". سيضمن هذا تهيئة مساحة العمل بشكل صحيح، كما سيتيح لك فرصة التعرف على لغة Go بشكل أفضل. بما أنك تقوم بإنشاء ملف مصدر Go، وليس مشروعًا فعليًا، فلن تحتاج إلى التواجد في مساحة العمل للقيام بذلك.
من مجلدك الرئيسي، افتح محرر نصوص سطر الأوامر، مثل nano، وأنشئ ملفًا جديدًا:
nano hello.go
بمجرد فتح ملف النص في برنامج nano، اكتب برنامجك:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}للخروج من برنامج nano، اضغط على مفتاحي CTRL و X. وعندما يُطلب منك حفظ الملف، اضغط على Y ثم ENTER.
يستخدم هذا الكود حزمة fmt ويستدعي الدالة Println مع تمرير عبارة "Hello, World!" كوسيط. يؤدي هذا إلى طباعة عبارة "Hello, World!" في نافذة الأوامر عند تشغيل البرنامج.
بعد الخروج من برنامج nano والعودة إلى سطر الأوامر، قم بتشغيل البرنامج:
go run hello.go
يجب أن يتسبب برنامج hello.go الذي أنشأته في قيام PowerShell بإنتاج المخرجات التالية:
Output
Hello, World!في هذه الخطوة، استخدمت تطبيقًا أساسيًا للتحقق من أن مساحة عمل Go الخاصة بك مهيأة بشكل صحيح.
نتيجة
تهانينا! لقد قمت الآن بإعداد مساحة عمل برمجة Go على جهاز Windows المحلي الخاص بك ويمكنك البدء في مشروع برمجة!










