مقدمه
Go یک زبان برنامه نویسی است که از ناامیدی در گوگل متولد شده است. توسعه دهندگان به طور مداوم مجبور بودند زبانی را انتخاب کنند که به طور کارآمد اجرا شود، اما کامپایل آن زمان زیادی می برد، یا زبانی را انتخاب کنند که برنامه نویسی آسان باشد اما در تولید ناکارآمد باشد. Go طوری طراحی شده است که هر سه را به طور همزمان در دسترس داشته باشد: کامپایل سریع، سهولت برنامه نویسی و اجرای کارآمد در تولید.
در حالی که Go یک زبان برنامه نویسی همه کاره است که می تواند برای بسیاری از پروژه های برنامه نویسی مختلف استفاده شود، به ویژه برای برنامه های شبکه / سیستم های توزیع شده مناسب است و به عنوان “زبان ابر” شهرت دارد. این برنامه بر کمک به برنامه نویس مدرن برای انجام کارهای بیشتر با مجموعه ای از ابزارهای قوی تمرکز می کند، بحث های مربوط به قالب بندی را با ایجاد قالب بخشی از مشخصات زبان حذف می کند، و همچنین با کامپایل کردن در یک باینری واحد، استقرار را آسان می کند. یادگیری Go آسان است، با مجموعه ای بسیار کوچک از کلمات کلیدی، که آن را به یک انتخاب عالی برای مبتدیان و توسعه دهندگان با تجربه تبدیل می کند.
این آموزش شما را از طریق نصب Go بر روی دستگاه ویندوز 10 محلی خود و راه اندازی یک محیط برنامه نویسی از طریق خط فرمان راهنمایی می کند.
پیش نیازها
- شما به یک دستگاه ویندوز 10 با دسترسی مدیریتی که به اینترنت متصل است نیاز دارید.
مرحله 1 – باز کردن و پیکربندی PowerShell
شما بیشتر نصب و راه اندازی را در یک رابط خط فرمان تکمیل خواهید کرد، که روشی غیر گرافیکی برای تعامل با رایانه شما است. یعنی به جای کلیک کردن روی دکمهها، متن را تایپ میکنید و بازخورد را از طریق متن نیز از رایانه خود دریافت میکنید. خط فرمان که به عنوان پوسته نیز شناخته میشود، میتواند به شما کمک کند بسیاری از کارهایی را که هر روز بر روی رایانه انجام میدهید تغییر داده و خودکار کنید و ابزاری ضروری برای توسعهدهندگان نرمافزار است.
PowerShell برنامه ای از مایکروسافت است که یک رابط پوسته خط فرمان را ارائه می دهد. وظایف مدیریتی با اجرای cmdlet ها، دستورهای تلفظ شده، که کلاس های تخصصی چارچوب نرم افزار دات نت هستند که می توانند عملیات را انجام دهند، انجام می شود. PowerShell که در آگوست 2016 منبع باز بود، اکنون در سراسر پلتفرم ها، برای هر دو سیستم ویندوز و یونیکس (از جمله مک و لینوکس) در دسترس است.
برای پیدا کردن Windows PowerShell، میتوانید روی نماد منوی Start در گوشه سمت چپ پایین صفحهنمایش کلیک راست کنید. هنگامی که منو ظاهر شد، روی Search کلیک کنید و سپس PowerShell را در نوار جستجو تایپ کنید. وقتی گزینه هایی به شما ارائه شد، روی Windows PowerShell از برنامه Desktop کلیک راست کنید. برای اهداف این آموزش، Run as Administrator را انتخاب کنید. هنگامی که با کادر محاوره ای از شما خواسته می شود که می پرسد آیا می خواهید به این برنامه اجازه دهید تا تغییراتی در رایانه شخصی شما ایجاد کند؟ روی Yes کلیک کنید.
هنگامی که این کار را انجام دادید، یک رابط مبتنی بر متن را مشاهده خواهید کرد که دارای یک رشته از کلمات به شکل زیر است:
با تایپ دستور زیر از پوشه سیستم خارج شوید:
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 – نصب Package Manager Chocolatey
Package Manager مجموعه ای از ابزارهای نرم افزاری است که برای خودکارسازی فرآیندهای نصب کار می کنند. این شامل نصب اولیه، ارتقاء و پیکربندی نرم افزار و حذف نرم افزار در صورت نیاز می باشد. آنها نصب های نرم افزاری را در یک مکان مرکزی نگه می دارند و می توانند تمام بسته های نرم افزاری روی سیستم را در قالب هایی که معمولا استفاده می شود نگهداری کنند.
Chocolatey یک مدیر بسته خط فرمان است که برای ویندوز ساخته شده است که مانند apt-get در لینوکس کار می کند. Chocolatey که در نسخه منبع باز موجود است، به شما کمک می کند تا به سرعت برنامه ها و ابزارها را نصب کنید. شما از آن برای دانلود آنچه برای محیط توسعه خود نیاز دارید استفاده خواهید کرد.
قبل از نصب اسکریپت، آن را بخوانید تا تأیید کنید که از تغییراتی که در دستگاه شما ایجاد می کند راضی هستید. برای انجام این کار، از چارچوب اسکریپت دات نت برای دانلود و نمایش اسکریپت Chocolatey در پنجره ترمینال استفاده کنید.
با ایجاد یک شی WebClient به نام $script که تنظیمات اتصال اینترنت را با اینترنت اکسپلورر به اشتراک می گذارد، شروع کنید:
$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
cmdlet iwr یا Invoke-WebRequest به شما امکان می دهد داده ها را از وب استخراج کنید. این اسکریپت را به iex یا cmdlet Invoke-Expression میدهد که محتویات اسکریپت را اجرا میکند و نصب را برای مدیریت بسته Chocolatey اجرا میکند.
به PowerShell اجازه دهید Chocolatey را نصب کند. پس از نصب کامل، می توانید با دستور choco شروع به نصب ابزارهای اضافی کنید.
اگر در هر زمانی در آینده نیاز به ارتقای Chocolatey دارید، دستور زیر را اجرا کنید:
choco upgrade chocolatey
با نصب پکیج منیجر، می توانید بقیه مواردی را که برای محیط برنامه نویسی Go نیاز دارید نصب کنید.
مرحله 3 – نصب ویرایشگر متن نانو (اختیاری)
در این مرحله، شما قصد دارید نانو را نصب کنید، یک ویرایشگر متنی که از یک رابط خط فرمان استفاده می کند. شما می توانید از nano برای نوشتن برنامه ها به طور مستقیم در PowerShell استفاده کنید. این یک مرحله اجباری نیست، زیرا می توانید از یک ویرایشگر متن با رابط کاربری گرافیکی مانند Notepad نیز استفاده کنید. این آموزش استفاده از نانو را توصیه می کند، زیرا به شما کمک می کند تا به استفاده از PowerShell عادت کنید.
از Chocolatey برای نصب نانو استفاده کنید:
choco install -y nano
پرچم -y به طور خودکار تأیید می کند که می خواهید اسکریپت را بدون درخواست تأیید اجرا کنید.
پس از نصب nano، می توانید از دستور nano برای ایجاد فایل های متنی جدید استفاده کنید. بعداً در این آموزش از آن برای نوشتن اولین برنامه Go خود استفاده خواهید کرد.
مرحله 4 – نصب Go
درست مانند کاری که در مرحله قبل با nano انجام دادید، برای نصب Go از Chocolatey استفاده خواهید کرد:
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 را به عنوان Administrator ببندید و دوباره باز کنید، سپس نسخه 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
دایرکتوری پیشفرض برای فضای کاری Go از 1.8 فهرست اصلی کاربر شما با یک زیر شاخه 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 را نصب نکردهاید، ویندوز کادر محاورهای را باز میکند و از شما میپرسد که آیا میخواهید آن را نصب کنید. برای ادامه روی Yes کلیک کنید و دستورالعمل های نصب را دنبال کنید.
با فهرست کردن دایرکتوری، می توانید مشاهده کنید که بسته 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!")
}
با فشردن کلیدهای CTRL و X از نانو خارج شوید. هنگامی که از شما خواسته شد فایل را ذخیره کنید، Y و سپس ENTER را فشار دهید.
این کد از بسته fmt استفاده می کند و تابع Println را با Hello, World فراخوانی می کند! به عنوان استدلال این باعث می شود عبارت Hello, World! برای چاپ کردن در ترمینال هنگام اجرای برنامه.
هنگامی که از nano خارج شدید و به پوسته خود بازگشتید، برنامه را اجرا کنید:
go run hello.go
برنامه hello.go که ایجاد کردید باید باعث شود PowerShell خروجی زیر را تولید کند:
Output
Hello, World!
در این مرحله، از یک برنامه پایه برای تأیید اینکه فضای کاری Go شما به درستی پیکربندی شده است استفاده کردید.
نتیجه
تبریک می گویم! در این مرحله شما یک فضای کاری برنامه نویسی Go را روی دستگاه ویندوز محلی خود راه اندازی کرده اید و می توانید یک پروژه کدنویسی را شروع کنید!