گولنگ یک زبان برنامهنویسی خاص و با ویژگیهای منحصر به فرد است که در سال ۲۰۰۷ توسط گوگل به منظور سهولت در توسعه و افزایش بهرهوری در محیطهای چند هستهای و رایانش ابری طراحی شده است و در سال ۲۰۰۹ به صورت عمومی و open source منتشر شد.
هدف ما این هستش که سیستم فروشگاه ساز پیشرفته رو با گولنگ پیاده سازی کنیم و در نهایت روی کوبرنتیز دیپلوی اجرا کنیم یعنی ۰ تا ۱۰۰ یه پروژه گولنگی . به زودی ویدیوی این آموزش ها در وبسایت uncodev منتشر خواهند شد.
به دلیل پرفورمنس بالا و کاربردی بودن زبان برنامه نویسی گولنگ شرکتها و پروژههای بزرگ زیادی هستن که از گولنگ برای توسعه نرم افزارهاشون استفاده کردن من جمله خود گوگل

توی تصویر بالا لیست از شرکتهای بزرگ رو میبینید که از زبان برنامه نویسی گولنگ استفاده کردن، بع عنوان مثال توی این یوزکیس یکی از جاهای که گوگل از گولنگ اومده استفاده کرده رو میتونید مشاهده کنید ، لینک این یوزکیس که گوگل استفاده کرده ، و توی این لینک هم شما میتونید سایر یوزکیسا رو تو سایت گولنگ ببنید.
In 2015, to keep up with Google’s scale, our team needed to rewrite our indexing stack from a single monolithic binary written in C++ to multiple components in a microservices architecture. We decided to rewrite many indexing services in Go, which we now use to power the majority of our architecture.
توی سال ۲۰۱۵ گوگل اومده سرویسهای ایندکس گذاریشو با زبان برنامه نویسی گولنگ و معماری مایکروسرویس ریرایت کرده.
تقریبا شرکتهای زیادی رو توی ایران میشناسم که یا رفتن سمت گولنگ و یا دارن مهاجرت میکنن به سمت استفاده از گولنگ هم به خاطر اینکه معماریشون رو به مایکروسرویس یا SOA تغییر دادن و هم قابلیتهای گولنگ باعث شده که بازار کار گولنگ خوب بشه . من خودم در اسنپ گروسری (اسنپ مارکت + اسنپ اکسپرس) مشغول به کارم و تقریبا اکثر سرویسها با گولنگ ریرایت شدن و میدونم اکثر ونچرهای اسنپ هم از گولنگ استفاده میکنن در سرویسهاشون و کلا به دلیل اینکه برنامه نویس گولنگ کم هستش و در عین حال شرکتها هم نیاز به برنامه نویس گولنگ دارن بازار کار خوبی وجود داره برای برنامه نویس کاردرست گولنگ. کافه بازار، دیوار، صبا ایده ، پاسارگاد الکترونیک، مبنا و ... هم دیدم که اگهی جذب برنامه نویس گولنگ رو دارن.
۱ . استفاده از گولنگ در Cloud & Network Services :
به دلیل پشتیبانی گولنگ از همزمانی (Concurrency) و قدرتمند بودنش در این این زمینه برای استفاده در Cloud & Network به شدت کارایی بالایی داره ، بیش از ۷۵ درصد پروژه های Cloud Native با استفاده گولنگ توسعه پیدا کردن، پروژههایی مثل داکر، کوبرنتیز و ... از طرایق این لینک میتونی کاملتر در موردش بخونی
۲. استفاده از گولنگ در Command-line Interfaces (CLIs)
فرض کنید شما بعد از نصب گیت توی ترمینال کلمه git رو مینویسید و بعدش یه سری کارها رو میتونید انجام بدید.این دقیقا یه برنامه cli هستش، حالا چرا پیاده سازی یه برنامه cli با گولنگ بهتر هستش؟ چون وقتی دولوپر یه برنامه cli پیادهسازی میکنه هدفش احتمالا یک جامعه بزرگ هستش که ممکنه هر کدوم سیستم عاملهای مختلف داشته باشن، بنابراین بهترین گزینه گولنگ هستش که بتونه برنامش رو توی هر سیستم عاملی اجرا کنه. نکته بعدی این هستش که استارت آپ تایم برنامه گولنگی خیلی کم و نزدیک به صفر هستش. از طریق این لینک میتونی بیشتر در موردش بخونی. github-cli هم با گولنگ پیاده سازی شده است.
۳. استفاده از گولنگ در Web Development :
یجورایی میشه گفت گولنگ خوراک پروژههای مایکروسرویسی و اسکیل بالا هستش و همین الانم تو بزرگترین شرکتای دینا مخصوصا اونا که لود بالا و ترافیک بالا دارن به خوب جوابشو پس داده، مثلا کاری که خودم من بعد از ریرایت یه پروژه از php به گولنگ انجام دادم کاهش ۴۰۰ درصدی ریسپانس تایمها بود به دلیل اینکه اومدم از کانکارنسی و یه سری قابلیتهای گولنگ استفاده کردم . برای پیاده سازی یک وب اپلیکیشن با گولنگ به هیچ گونه وب فریمورکی نیاز نیست ! از ایجاد سرور گرفته تا ... رو میشه بدون نیاز به هیچ پکیجی پیاده سازی کرد البته پکیجهای زیادی هست که تو این زمینه میتونن کمک کنن . از طریق این لینک میتونی بیشتر در موردش بخونی.
۴. استفاده از گولنگ در Development Operations & Site Reliability Engineering (SRE) :
وقتی خود کوبرنتیز و داکر با گولنگ توسعه پیدا کردن قطعا خیلی کارها میشه با گولنگ براش انجام داد، یا توسعه برنامههایی که نیاز به پردازش همزمان دارند (مانند ابزارهای مانیتورینگ و logging ) خیلی قدرتمند و کاربردیه، گولنگ ابزارهای خودکارسازی تست (تستهای واحد، تستهای ادغام، و ...) را بهبود داده است که در محیط DevOps کمک میکند تا فرآیند ادغام مستمر (CI) بهتری داشته باشیم.گولنگ دارای ابزارها و کتابخانههای متعددی است که میتوانند در توسعه ابزارها و اسکریپتهای مدیریتی مورد استفاده قرار گیرند..
توی قسمت بعد میریم سراغ کد نویسی و قسمتهای جذاب