📷
زبان برنامه نویسی Go – که با نام Golang نیز شناخته می شود – اکنون تقریباً 15 سال از عمر آن می گذرد. و به دلیل عملکرد و استفاده کارآمد از منابع، به یک انتخاب محبوب برای توسعه وب و میکروسرویس تبدیل شده است. مشاغل Go نیز کاملاً درآمد دارند. طبق گزارش Glassdoor، متوسط حقوق یک توسعه دهنده Go در ایالات متحده حدود 103 هزار دلار است و می تواند تا 200 هزار دلار نیز برسد.
آماده اید تا سفر توسعه دهنده Go خود را آغاز کنید؟
این نقشه راه می تواند راهنمای شما باشد. در آن، من قصد دارم تا آنجا که می توانم نکاتی را بیان کنم. برای هر نکته، نظرات و مثال هایی را برای توضیح کامل آن درج کرده ام.
مراجع ارائه شده در پایان تمام نکات را پوشش می دهد.
در اینجا چیزی که می خواهیم پوشش دهیم:
چرا باید Go را یاد بگیرید؟
نحوه نصب Go
مبانی Go
مفاهیم پیشرفته
توسعه وب در Go
لاگ ها، تست، محک زدن، و اشکال زدایی
نحوه ساخت میکروسرویس های مقیاس پذیر
نحوه ساخت ابزارهای خط فرمان (CLI)
پروژه هایی برای تقویت مهارت های شما
گام بعدی؟
منابع
Go اولین بار در اواخر سال 2009 معرفی شد. این یک زبان برنامه نویسی سطح بالا منبع باز، تایپ ایستا و کامپایل شده است که در گوگل طراحی شده است. این یک انتخاب محبوب برای ساخت سیستم های ایمن و مقیاس پذیر است.
طبق نظرسنجی سالانه StackOverflow، این یکی از محبوب ترین زبان های برنامه نویسی است. همچنین، در شاخص Tiobe 2024، Go در حال حاضر جایگاه یازدهم را دارد و هر سال جایگاه آن به طور پیوسته بهبود می یابد.
Go یک انتخاب محبوب برای ساخت سرویس ها و API های مقیاس پذیر و کارآمد است. به دلیل حافظه کم، کامپایل سریع و کارایی بالا، به طور گسترده برای معماری میکروسرویس ها استفاده می شود.
به دلیل پشتیبانی داخلی از همزمانی از طریق گوروتین ها و کانال ها، یک انتخاب محبوب برای توسعه بلاک چین است. برای مثال Ethereum و Hyperledger Fabric در Go نوشته شده اند.
نرم افزارهای مورد علاقه شما مانند Docker، Kubernetes، Hugo، GitHub CLI، Prometheus، Terraform و بسیاری دیگر نیز در Go نوشته شده اند.
و شرکت هایی مانند گوگل، متا، نتفلیکس و اوبر همگی از Go استفاده می کنند.
برای کسب اطلاعات بیشتر می توانید منابع زیر را بررسی کنید:
می توانید Go را به سیستم عامل مربوطه خود از اینجا نصب کنید.
نصب را با استفاده از دستور go version تست کنید:
اگر با خطا مواجه شدید، متغیرهای محیط را بررسی کنید.
ابتدا، بیایید با درک نحو اصلی اجرای یک برنامه Go شروع کنیم. برنامه از بسته اصلی و تابع اصلی شروع می شود. فایل ها با پسوند .go ذخیره می شوند.
در Go، یک بسته یک واحد اساسی برای ساختاردهی و مدیریت کد است. برای وارد کردن هر بسته ای می توانید از کلمه کلیدی import استفاده کنید. به عنوان مثال، برای چاپ می توانید از بسته fmt یا log استفاده کنید.
این یک برنامه ساده برای چاپ پیام در Go است:
📷
برای اجرای برنامه از go run <filename>.go استفاده کنید.
اکنون، می توانید شروع به یادگیری در مورد موضوعات زیر کنید:
go mod
.go get <gitrepo_url>.git
make
, new
, range
, defer
📷
بسیاری از این مفاهیم در این راهنمای مبتدی پوشش داده شده است. و اگر میخواهید حتی عمیقتریاد بگیرید، در اینجا یک کتابچه راهنمای کامل است که مفاهیم اولیه Go را با جزئیات پوشش میدهد.
برای استفاده از پتانسیل Go برای ایجاد یک سیستم مقیاس پذیر و توزیع شده، داشتن درک کامل از ویژگی های اصلی آن ضروری است.
اینها ویژگی های اصلی Go هستند:
📷
با یک کتابخانه استاندارد غنی، همزمانی داخلی و عملکرد عالی، Go یک انتخاب ایده آل برای توسعه وب است. اکوسیستم Go فراتر از بسته های داخلی خود، انواع چارچوب ها و بسته های توسعه وب را برای انتخاب ارائه می دهد.
در اینجا برخی از فریمورک ها و بسته های شناخته شده آورده شده است:
همه فریمورک های شناخته شده ای هستند و می توانید با هر کدام از آنها شروع کنید. تعداد کمی از الگوی net/http پیروی می کنند و تعداد کمی از فریم ورک های Express یا دیگر الهام گرفته شده اند.
این زبان یک گزارش بسته گزارش جامع برای نظارت موثر و همچنین یک بسته تست و محک داخلی را فراهم می کند. شما باید تکنیک های اشکال زدایی موثر را برای شناسایی و حل مسائل در کد درک کنید.
بسته log استاندارد یک نقطه شروع عالی است. به راحتی قابل تنظیم است تا مسیر فایل، نوع گزارش، و هر پیام سفارشی را در پیام گزارش وارد کند. علاوه بر این، بسیاری از لاگرها در دسترس هستند. این لاگرها از استانداردهای صنعت لاگ ها پیروی می کنند و در مقایسه با بسته log استاندارد عملکرد بالایی دارند.
در اینجا برخی از لاگرهای موجود آورده شده است:
تست چارچوب تست داخلی برای نوشتن تست ها و معیارها پشتیبانی می کند.
دستور go test برای اجرای تست ها و معیارها استفاده می شود. می توانید تست ها و معیارها را در فایلی که به _test.go ختم می شود اضافه کنید.
برای نوشتن یک تست، از testing.T استفاده کنید و از قرارداد نامگذاری تابع TestXxx پیروی کنید.
به عنوان مثال، برای نوشتن یک تست برای تابع fibonaci، نام تابع تست آن TestFibonaci خواهد بود که Test کلمه کلیدی است که به کامپایلر Go می گوید که یک تابع آزمایشی است و Fibonaci نام تابع است. به یاد داشته باشید که حرف اول نام تابع تست، Fibonaci را با حروف بزرگ بنویسید.
در اینجا میتوانید درباره افزودن تستها به کد Go خود بیشتر بخوانید.
اگر به عملکردهای بیشتر عادت دارید، می توانید بسته testify را امتحان کنید. این یک بسته خارجی است که خوانایی موارد تست را بهبود می بخشد. در داخل از بسته تست داخلی استفاده می شود.
Delve یک دیباگر قدرتمند برای Go است. به راحتی با IDE های محبوب مانند Visual Studio Code، Goland by JetBrains، Neovim، Atom و غیره ادغام می شود.
شما می توانید از بسته داخلی pprof برای تجزیه و تحلیل و شناسایی تنگناهای عملکرد و مشکلات استفاده از حافظه استفاده کنید. مسیر آن net/http/pprof است
ساخت میکروسرویس های مقیاس پذیر به ترکیبی از معماری متفکرانه، شیوه های کدگذاری کارآمد و ابزار قوی نیاز دارد. مدل همزمانی سبک وزن، زمان اجرا کارآمد و کتابخانه استاندارد غنی میتواند بارهای ترافیکی بالا را مدیریت کند و به صورت افقی مقیاسبندی شود، که آن را به انتخابی ایدهآل برای میکروسرویسها تبدیل میکند.
در زیر چند موضوع وجود دارد که می توانید با آنها شروع کنید:
وقتی صحبت از CLI ها می شود، Go یک ستاره راک است. بستههایی در Go وجود دارد که به راحتی میتوانید CLI را بسازید. flag را می توان برای ساختن CLI اصلی استفاده کرد.
بسته Cobra برای ایجاد برنامه های قدرتمند مدرن CLI بسیار محبوب است. بسیاری از پروژه های Go مانند GitHub CLI، Hugo و Kubernetes از Cobra استفاده می کنند.
در اینجا چند پروژه CLI وجود دارد که می توانید برای تمرین بسازید:
Task Manager: یک مدیر وظیفه مبتنی بر CLI ایجاد کنید که به عملیات CRUD اجازه می دهد.
Notes: یک CLI برای یادداشت برداری بسازید.
Password Manager: یک CLI ایجاد کنید که رمزهای عبور را با رمزگذاری مناسب، تولید و بازیابی رمز عبور ذخیره و مدیریت کند.
Universal Conversion Tool: یک مبدل جهانی بسازید که می تواند تمام معیارها و ارز را تبدیل کند.
برای درک بیشتر در مورد قابلیت های Go، می توانید با ساخت پروژه ها تجربه عملی عملی کسب کنید.
در اینجا لیستی از پروژه هایی وجود دارد که می توانید در Go بسازید:
net/http
and goquery
packagetemplate
packageبرای گام های بعدی خود می توانید این نقشه راه شگفت انگیز Go را که توسط Kamran ساخته شده است دنبال کنید.
📷