پرش به محتوا

تدریس خصوصی زبان گولنگ – golang

اگه فرصت کافی ندارید که برید صفر تا صد ویدیوهای آموزشی یا داکیومنت های زبان گولنگ رو بخونید یک استاد خصوصی بهترین راه برای شماست که با آموزش خصوصی زبان go شما رو زودتر به هدفتون برسونه. کلا ماها فکر میکنیم که هر چیزی رو باید خودمون صفر تا صدش رو یاد بگیریم و همین ممکنه باعث این بشه که دیرتر به هدف برسیم یا بیشتر اوقات نرسیم. من جزو اون دسته از افرادی بودم که دیرتر به بخشی از هدف رسیدم… به شما توصیه میکنم قضیه ی منتورشیپی رو جدی بگیرید. یکی رو پیدا کنید که حتی اگه صفر تا صد کار رو هم ازش نخواستید بصورت منتور کنارتون باشه و نذاره خیلی راه رو اشتباه برید. اما بریم سراغ گو 🙂

گولنگ زبونیه که این روزا خیلی اسمش رو میشنویم. این زبون در سال ۲۰۰۷ در گوگل با اهداف قشنگی ساخته شد. همه میدونیم C خیلی سریعه ولی سخت. جاواسکریپت خیلی راحته ولی کند! گولنگ هر دوی اینا رو سعی میکنه یجا داشته باشه. سینتکس راحت ولی قدرتمند و سریع. در مجموع گو ویژگی های زیر رو روشون تمرکز کرده.

انواع داده‌ی ایستا (Static Types)

اگه با زبونایی مثل جاواسکریپت یا PHP کار کرده باشید، دیدید که توی این زبونا ما وقتی متغیر تعریف میکنیم نیازی نیست که بگیم نوع این متغیر رشته هست یا عددی هست یا هر چیز دیگه. برنامه نویس های تازه کار اینو به دید یه مزیت و قدرت زبان میبینن. ولی در اصل یه مدل ضعف میتونه باشه. توی جامعه ی جاوااسکریپت بخشی از مشکلات ناشی از این ضعف با TypeScript حل شده و توی PHP هم میشه یسری چیزا رو Type-hint کرد توی ورژن های جدید ولی اینا اصل قضیه رو حل نمیکنن! این که زبون در ران تایم نیاز داره که نوع متغیر شما رو تشخیص بده و این به زبان بچه‌های الگوریتمی هزینه (cost) داره. در اصل در این زبانها تایپ هر متغیر با مقداری که داخلش ریخته میشه مشخص میشه و امنیت برنامه و تایپ ها توی ران تایم چک میشه. ولی در زبونایی مثل سی یا گو کد شما در کامپایل تایم یسری چیزا از جمله همین تایپ ها چک میشن و توی ران تایم نیازی نیست که این چک ها انجام بشه.

معلم خصوصی گو پیدا کنید تا کامروا شوید!

کلا گو و زبونای کامپایلری سریعترم هستن معمولا چون در فاز کامپایل کدها به زبون سطح پایین تر که نزدیک به ماشین هست ترجمه میشه و هر بار که کد ران میشه نیازی به تفسیر کد وجود نداره. همین باعث پرفورمنس خیلی بالای این نوع برنامه ها میشه. در مقابل یچیزی مثل PHP هر بار کد رو تفسیر و اجرا میکنه که همین باعث کندیش میشه. البته راهکارهایی برای بهبود نسبی این مشکلات ایجاد شده. مثلا در لاراول Octane رو داریم که یجورایی برنامه شما رو در مموری نگه میداره و در درخواست های بعدی نیازی نیاز به پردازش کمتری هست ولی تا جایی که من میدونم در کنار مشکلاتی که ممکنه بخاطر چیزایی مثل مموری لیک بوجود بیاد، بازم هنوز فاصله هست با بهترین ها.

کدهای خواناتر در Go نسب به رقیب های قدرتمند

قبول میکنیم که یچی مثل C خیلی خوبه ولی اینم قبول کنید شما که خیلی زبون سختیه 🙂 البته برنامه نویسای اونها هم میگن که درسته بیس زبون سخته ولی برای راحتی لایببری هایی وجود داره که کارشون رو راحتتر میکنه که ما قبول نمیکنیم ازشون :دی

در مجموع گولنگ سعی کرده سادگی یچیزی مثل پایتون رو حفظ کنه و از اونور مثل سی قوی هم باشه.

پردازش موازی، کانکارنسی و goroutine ها

اینجا دیگه یچی مثل PHP خیلی کم میاره 🙁 فرض کنید که یسری ویدیو دارید که میخواید پردازش خاصی روشون انجام بدید و بعد نتیجه رو به کاربر برگردونید. البته کارای در این حد سنگین رو باید به صف ها بسپریم ولی برای میک سنس کردن قضیه یکم تسک رو سنگین تعریف کردم. در این حالت توی پی اچ پی باید ویدیو ها رو پشت سر هم بررسی کنیم ولی توی گو میشه چند تا ترد تعریف کنیم که بصورت موازی این کار رو بکنن. توی پی اچ پی باز یسری راهکارا مثل swoole تعریف شده که من در عمل کار نکردم باهاش ولی خیلی سر و صدا نکرده. ولی حتما به زودی در موردش همینجا تجربم رو میگم.

معایب زبان برنامه نویسی گو

  • گو زبون شی گرا نیست و نمیتونیم از مزایای زبون های شی گرا استفاده کنیم توش.
  • با اینکه نسبت به سی و… راحتتر شده ولی باز همچنان نسبت به پی اچ پی سخت تره یسری چیزا توش.

به دنیای گو خوش اومدید:

package main

import "fmt"

func main() {
    fmt.Println("hello world")
}

منابع یادگیری زبان گو

زبان گو در ابتدا خیلی ساده به نظر میرسه ولی برای اینکه بتونید مفاهیمش رو خوب درک کنید نیاز به منابع درست و حسابی دارید. توی این بخش منابعی که خودم دیدم و دوست داشتم رو معرفی میکنم بهتون. شما هم اگه مورد دیگه ای میشناسید که خوبه توی کامنت ها اضافه کنید.

در نظر داشته باشید که یه منبع همه چیز رو بهتون یاد نمیده. با اینا شروع کنید و یکیش رو تموم کنید بعد کم کم با سرک کشیدن به چیزای دیگه دانشتون رو عمیق تر کنید.

جمع بندی

من مدتی هست که با زبان گو کار میکنم و برای برنامه نویسی وب از فریمورک gin استفاده میکنم. در صورتی که نیاز به مدرس خصوصی برای زبان گو هستید یا یه منتور برنامه نویسی گو نیاز دارید با من در تماس باشید.

2 دیدگاه دربارهٔ «تدریس خصوصی زبان گولنگ – golang»

پاسخ دادن به صاعد لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *