Go
مقدمه
به عنوان عضوی از یک تیم دوآپس، اغلب نیاز داریم تا به توسعه، اتوماتیک سازی و یا سفارشی سازی برخی از فرایندها بپردازیم. این کار با استفاده از زبانهای برنامهنویسی و یا اسکریپت نویسی صورت میگیرد. یکی از محبوب ترین زبانها میان جامعه افراد فعال در حوزه دوآپس زبان
Go
یا
GoLang
است.
زبان
Go
یک زبان برنامه نویسی متن باز است که توسط گوگل توسعه یافت. این زبان ویژگیهایی دارد که همزمان با حفظ کیفیت و کارایی نرمافزار، توسعه آن را نیز آسان میسازد. به لطف
Garbage Collector
زبان
Go،
کد زدن به این زبان بسیار ساده و سریع است و میتوان از آن در ساخت نرمافزارهایی با اندازه بزرگ و پیچیدگیهای زیاد استفاده کرد.
از مهمترین ویژگیهای زبان برنامه نویسی Go که باعث استفاده گسترده آن در شاخه دوآپس شده است، میتوان به موارد زیر اشاره کرد:
- سینتکس ساده و کد زدن آسان
- کارایی بالا
- زمان پایین ک امپایل
- پشتیبانی از همزمانی به وسیله Goroutines
- Built-in Garbage Collector
- پیروی کردن از اصل write once, run anywhere
- پشتیبانی توسط گوگل
- کامیونیتی خوب
زبان
Go
یک زبان برنامه نویسی سبک است و بسیاری از ابزارهای دوآپس مانند
Docker ،
Kubernetes ،
Terraform ،
Consul ،
Vault
و ... به وسیله این زبان نوشته شدهاند.
برای آشنایی بیشتر با زبان
Go
و ویژگیهای آن و دلایلی که باعث شدهاند تا این زبان جایگاه خوبی در میان افراد فعال در حوزه دوآپس پیدا کند میتوانید از لینکهای زیر استفاده کنید.
نصب و آمادهسازی پیشنیازها و اولین برنامه
برای برنامه نویسی به زبان Go پیشنهاد میکنیم از Visual Studio Code استفاده کنید. Visual Studio Code یک ویرایشگر متن رایگان، قدرتمند و در عین حال سبک است که توسط مایکروسافت ارائه میشود. برای دانلود این ویرایشگر و آماده سازی آن برای برنامه نویسی به زبان Go میتوانید از این لینک استفاده کنید.
کمی پیشرفتهتر
یکی از بهترین منابع موجود برای آشنایی بیشتر و یادگیری عمیقتر برنامهنویسی به زبان
Go ،
آموزشهای وبسایت رسمی
Go
است که از طریق
این لینک
میتوانید به آنها دسترسی داشته باشید.
همچنین
این لینک
هم منبع بسیار خوبی برای یادگیری مباحث مختلف این زبان با استفاده از مثالهای مختلف است که میتوانید از آن بهره ببرید.
ممکن است در دانلود فایل باینری Go به مشکلات مختل فی برخورد کنید که در این صورت پیشنهاد میشود از سایتهای داخلی برای دانلود و نصب آن استفاده کنید.
قواعد نامگذاری در Go
یکی از گامهای مهم در یادگیری هر زبان برنامهنویسی یادگیری اصول نامگذاری آن میباشد. شاید نامگذاری در وهله اول مورد مهمی به نظر نرسد اما این موضوع از جهتی اهمیت دارد که نباید کد شما نسبت به کدهای جامعه برنامهنویسان آن زبان تافته جدا بافته باشد. برای آشنایی با این قواعد میتوانید از این مقاله کمک بگیرید.
تمرین
- با مطالعه ساختار بستههای ICMP , شیوه کار ابزار Traceroute با استفاده از زبان Go یک ابزار مشابه آن بسازید. (میتوانید برای ساخت سوکتهای لایه 3، از Raw sockets in Go: IP layer کمک بگیرید.
- برای ابزاری که در مرحله قبل ساختید یک API بسازید که با دریافت یک آدرس در کوئری پارامتر یک درخواست
GET
، آن آدرس را Traceroute کرده , نتایج آن را به صورتJSON
بازگردانی کند و علاوه بر این هر درخواست و نتیجه آن را به همراه ساعت درخواست در دیتابیس ردیس ثبت کند.