GoCasts آموزش Go به زبان ساده

برای ثبت‌نام در بوتکمپ آموزش بکند و گولنگ اینجا را کلیک کنید

ساده و سریع، نقشه راه یادگیری زبان گو - قابل توجه برنامه نویسان کم تجربه یا بی تجربه

توجه: این نقشه یادگیری با هدف توسعه نرم افزارهای تحت وب (back-end) تبیین گردیده است.

نرم افزار تحت وب

امروزه نرم افزارهای تحت وب مهم ترین ابزار درآمدزایی برای کسب و کارها هستند. از این رو داشتن مهارت برنامه نویسی برای این دسته از برنامه ها بسیار محبوب شده است. اتفاقی که در یک دهه اخیر رخ داده است این است که با پیچیده تر شدن منطق برنامه های تحت وب، یک جداسازی در آن صورت گرفته است و توسعه بخش ظاهری سایت یا همان front-end از بخش هسته سیستم یا همان back-end جدا شده است.

گولنگ

زبان گولنگ یک زبان نسبتا جدید است که از ابتدا نیز توسعه سیستم های تحت شبکه را یکی از اولویت های خود قرار داده است. این زبان همه ابزار لازم برای توسعه ابزار تحت وب را در اختیار شما قرار می دهد. از مهم ترین ویژگی های زبان گولنگ می توان به «سادگی» و «سرعت» آن اشاره کرد و تنها پس از مدت کوتاهی کار کردن با این زبان شما احساس راحتی خواهید داشت و بهره وری (productivity) شما بالا خواهد بود.

نقشه راه

نقشه راه حاضر با هدف تسریع روند یادگیری آماده شده است و جامعه هدف آن برنامه نویسانی هستند که تجربه کمی با این زبان دارند و یا اصلا قبلا با زبان گولنگ آشنا نبوده اند.

ساده و سریع

مشکل رایجی که خیلی از توسعه دهندگان در آغاز راه یادگیری زبان گولنگ با آن مواجه می شوند حجم وسیع منابع موجود در اینترنت است. از کتاب و مقاله گرفته تا دوره های ویدیویی و پادکست، تعداد بسیار زیاد و متنوع منبع برای یادگیری وجود دارد. این موضوع برنامه نویس را سردرگم می کند و روند یادگیری را بسیار کند و پیچیده می کند. در این مقاله سعی شده است توجه ویژه ای به این موضوع شود و نقشه راه به گونه ای تبیین گردیده است که برنامه نویس با دنبال کردن آن به شکلی ساده و در زمانی کوتاه بتواند مهارت کافی با زبان گولنگ کسب کند بگونه ای که بتواند نرم افزارهای تحت وب را با آن توسعه دهد.

گام منفی یک!

قطعا آشنایی با مفاهیم پایه ای برنامه نویسی یکی از الزامات است. اگر قبلا با هیچ زبانی کار نکرده اید بهتر است در مورد «مبانی کامپیوتر» و «برنامه سازی مبتنی بر الگوریتم و فلوچارت ساخت یافته» مطالعه کنید و با مفاهیم آن آشنا شوید.

گام صفر - آشنایی با زبان

گولنگ زبان ساده ایست و یادگیری مفاهیم پایه ای آن برای شروع کار نباید بیشتر از یک یا چند هفته (بسته به میزان تجربه) از شما وقت بگیرد. یادگیری مفاهیم پایه ای زبان ضروری ست. مفاهیمی که یادگیری آن ضروری ست عبارتند از:

  • types
  • variables
  • control structures
  • arrays, slices and maps
  • functions
  • pointers
  • structs and interfaces
  • concurrency
  • packages
  • testing
  • go module

از لیست مذکور به جرأت می توانم بگویم که یادگیری concurrency و testing را هم می توان نادیده گرفت و آن را به تعویق انداخت.

برای این گام مطالعه منابع زیر ضروری ست:

۱- نصب کامپایلر گولنگ

۲- مشاهده تور آموزشی سایت رسمی گولنگ و اجرای مثال های آن

۳- مطالعه مقاله How to Write Go Code

۴- مطالعه بخش اول مقاله Using Go Modules

۵- آشنایی با دستورات کامپایلر گولنگ

اگر می خواهید کمی بیشتر در این گام وقت صرف کنید خواندن کتاب «An Introduction to Programming in Go» را پیشنهاد می کنم. این کتاب بصورت خیلی خلاصه در مورد مفاهیم پایه ای توضیح داده است و جمعا ۱۶۵ صفحه است ولی الزامی به خواندن آن نیست.

گام یک - برنامه تحت وب

در این گام تمرکز خود را بر روی مفاهیم مرتبط با برنامه های تحت وب می گذاریم.

توجه کنید که اگر با زبان sql و دیتابیس های رابطه ای آشنایی ندارید بهتر است نگاهی به سایت w3schools بیاندازید و مطالب مرتبط با Introduction to SQL را بخوانید. همچنین اگر با فرمت JSON آشنایی ندارید بهتر است JSON - Introduction را نیز مطالعه کنید. به عنوان آخرین اقدام در این گام اگر با مفایهم Restful API آشنایی ندارید بهتر است از طریق یکی از لینک های زیر یا هر منبع دیگری با آن آشنا شوید:

گام دو - انجام یک پروژه واقعی تحت وب

این گام اصلی ترین گام نقشه راه است و گام های قبلی مقدمه ای بودند برای این گام. در این قسمت احتیاج خواهید داشت که یک web framework و یک ORM را انتخاب کنید. که پیشنهاد بنده برای web framework استفاده از echo است. همچنین برای ORM می توانید از gorm استفاده کنید. در مورد دو موضوع مطرح شده انتخاب های فراوانی وجود دارد، اما برای شروع اصلا تفاوتی نمی کند که چه انتخابی انجام دهید. سعی شده است فریمورکی انتخاب شود که کار با آن ساده تر است و در عین حال قابلیت های مورد نیاز را پوشش می دهد. همچنین می توانید از انتخاب ORM اجتناب کنید و سعی کنید با درایورهای دیتابیس مربوطه سیستم را پیاده سازی کنید.

همچنین احتمالا یکی از دغدغه های شما ساختار پروژه خواهد بود که برای آغاز راه پیشنهاد می کنم به آن اهمیت ندهید. در عین حال توصیه های ذکر شده در این منبع می تواند مفید باشد.

موضوع پروژه و کسب و کار مرتبط با آن اصلا مهم نیست. اما سیستمی که طراحی و پیاده سازی می کنید باید شامل قسمت های زیر باشد.

سیستم مدیریت کاربران

این سیستم حتما باید شامل ثبت نام و لاگین کاربر باشد. در این پروسه با مفهوم JWT آشنا خواهید شد. یک نمونه از پیاده سازی آن در Go را میتوانید در این مقاله ببینید. همچنین بهتر است پسورد کاربران را به صورت plain در دیتابیس ذخیره نکنید و حتما از طریق کتابخانه هایی مثل bcrypt آنها را hash کنید.

سیستم ارسال ایمیل و پیامک

احتمالا برای اطلاع رسانی به کاربان احتیاج خواهید داشت با نحوه ارسال ایمیل و یا ارسال پیامک آشنا شوید. که از طریق لینک های زیر می توانید در مورد آن ها بیشتر بدانید:

سیستم کیف پول و پرداخت

برای این قسمت احتمالا احتیاج خواهید داشت با درگاه های پرداخت سر و کله بزنید. لینک پکیج های درگاه های مختلف در زیر لیست شده است:

سیستم لاگ

لاگ کردن یکی از مهم ترین لازمه های هر سرویسی ست. برای لاگ کردن در گولنگ کتابخانه های مختلفی وجود دارد که logrus و zap از معروفترین آنها هستند. به همین منظور مطالعه این آموزش یا آموزش های مشابه خالی از لطف نیست.

گام سه - استقرار

نحوه استقرار برنامه روی سرور یکی از مراحل مهم است که برای آن بهتر است با مفاهیم Docker آشنا شوید. برای استقرار برنامه خود احتیاج دارید که یک سرور مجازی یا همان VPS تهیه کنید و مراحل نصب و راه اندازی آن را از طریق این لینک یا آموزش های مشابه دیگر انجام دهید. پس از آن لازم است که docker را روی سرور خود نصب کنید که این مقاله مراحل آن را توضیح داده است. از طریق این لینک می توانید نحوه ساخت یک image از برنامه گولنگی خود را یاد بگیرید.

گام چهار - مطالعه مستمر به همراه توسعه پروژه های واقعی

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

یادگیری زبان گولنگ به مانند یادگیری هر مهارت دیگری احتیاج به تلاش، پشتکار، صبوری و استمرار دارد. در این نقشه راه سعی شده است که مسیر ساده و کوتاهی انتخاب شود زیرا که گولنگ زبانی ست ساده که در عین سادگی قدرتمندی زیادی به برنامه نویس می دهد. امیدوارم که تلاش مذکور مورد توجه قرار گیرد.

اگر در طول مسیر یادگیری احتیاج به کمک دارید می توانید با بنده از طریق ایمیل در ارتباط باشید. همچنین برای اطلاع از مطالب جدید می توانید کانال تلگرام GoCasts را دنبال کنید.