برنامه نویسی

قطره شماره 05: راهنمای من برای یادگیری Go!

عکس هایدی فین در Unsplash

معرفی

و ae dev، چطوری؟

در این چند ماه اخیر، بخش زیادی از وقتم را صرف یادگیری زبانی کرده‌ام که توسط گوگل ساخته شده و مورد علاقه جامعه توسعه‌دهندگان (مخصوصاً آنهایی که عاشق CLI هستند): برو!

این بسیار چالش برانگیز بود، با توجه به اینکه زمان کمی برای آن داشتم و باید پروژه عظیمی را برای توسعه دهندگان دیگر ارائه کنم تا از آن استفاده کنند و پروژه های خود را که در Go نوشته شده است ایجاد کنند. در راه برای کسانی که به دنبال یادگیری یک زبان جدید هستند موانع و امکاناتی پیدا کردم و با فکر کردن به آن، تصمیم گرفتم یک راهنمای ساده و عینی برای شما بیاورم تا مطالعه خود را راهنمایی کنید و نکاتی را در نظر داشته باشید تا از برخی موانع در طول این یادگیری جلوگیری کنید. سفر! خوب، من زیاد گفتم، ایده این “راهنما” این است که او زنده است! همانطور که محتوای جدید پیدا می کنم، آن را در اینجا به روز می کنم، btw.

پست حرفه ای بورا؟

خلاصه

یک طرح بسازید: چه چیزی را می خواهید با Go بسازید؟

قبل از اینکه به دنبال آموزش در اینترنت بگردید و دستان خود را کثیف کنید، کمی وقت بگذارید و فکر کنید: با Go چه چیزی می خواهید بسازید؟ خیلی آسان است که در یک برزخ قرار بگیریم که نمی توانیم تکامل یادگیری خود را زیاد تجسم کنیم زیرا می خواهیم برای آن برنامه ای ترسیم کنیم! به هر حال این سوال بسیار ساده است و با آن حتی می‌توانیم موارد جدیدی مانند: “با Go چه بسازیم؟”، “چرا گوگل این زبان را ایجاد کرد؟”، “آنها می‌خواستند چه مشکلی را حل کنند؟” “.

“از ابتدا شروع کنید”: برنامه ای با اهدافی ایجاد کنید که به راحتی می توان به آنها دست یافت، و پس از رسیدن به آنها، “نیازهای” بیشتری اضافه کنید. هنوز در همان پروژه، به عنوان مثال:

  • من می خواهم یک API با 1 نقطه پایانی hello world با Go بسازم.
  • من می خواهم یک CRUD API از TO-DOs با Go بسازم.
  • من می خواهم یک API متصل به Postgres با Go بسازم.
  • من می‌خواهم آزمایش‌هایی را با Go به API خود اضافه کنم.

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

یاد بگیرید چگونه کد خود را آزمایش کنید! آن را دست کم نگیرید، یا زود آن را نادیده بگیرید

اگر از زبان دیگری می آیید، به احتمال زیاد (اگر کوچکترین نگرانی در مورد کیفیت و مقیاس پذیری پروژه خود دارید) کنجکاو خواهید بود که بدانید تست ها در Go چگونه کار می کنند. در دام تفکر نیفتید “آه، این را می توانم بعداً ببینم، باید API خود را بسازم!”: یادگیری Go در حال حاضر با تست ها بسیار آسان است، این کار ساخت پروژه شما را تسهیل می کند (حداقل طراحی e refactor) و همچنین باعث می شود کد اصطلاحی بیشتری داشته باشید. حتی توصیه این موضوع برای این راهنمای عالی است کریس جیمز: Learn Go with Tests (با نسخه ترجمه شده به pt-BR در اینجا: Learn Go with Tests). با وجود استفاده از راهنما از نسخه 1.16 Go (و در زمان نوشتن این مقاله، ما در حال حاضر در نسخه 1.20.5 هستیم)، من با پیگیری آن مشکل زیادی نداشتم.

مراقب باشید “جامعه Go این کار را نمی کند”

دوست من، این اینجا قطعاً یک مانع بود. تا آن را حتی بهتر کند! هاها ها

و واضح اینکه هر فناوری/زبانی راه مناسب یا صحیح تری برای مقابله با یک مشکل خاص خواهد داشت، اما با من فکر کنید: آیا این واقعاً چیزی است که ما باید در همان ابتدا نگران آن باشیم؟ آنچه من بیشتر در مورد انجمن Go شنیدم (که، در مورد، و نه مستقیماً از جامعه) این است که “کار X به این شکل انجام نمی شود”، “جامعه ترجیح می دهد به روش Y موافقت کند”. نکته اینجاست که یافتن نظر در این زمینه آسان خواهد بود، آنچه شما نیاز دارید این است که محتوایی را که در آنجا پیدا می‌کنید فیلتر کنید… لغزش نکنید و بیفتید، و او حتی شروع به “خزیدن” نکرد.

نشانه های محتوا

در اینجا چند پیوند به جوامع و دوره های موجود در وب می گذارم که به شما کمک زیادی می کند! در جوامع می توان شبهات را حل کرد، در مورد موضوعی نظر خواهی کرد و اخبار زبان افرادی را که طولانی ترین زمان (یا نه هههه) را با زبان ارتباط داشته اند دنبال کرد.

جوامع

دوره های آموزشی

  • یاد بگیر برو🇺🇸: دوره کامل پرتغالی زبان Go ساخته شده توسط الن کوربس

اگرچه این محتوا بیش از 3 سال قدمت دارد، لیست پخش دوره در یوتیوب رایگان است و بیش از 180 ویدیو دارد که با تمرین های مختلف زبان را بررسی می کند.

قطره شماره 05 راهنمای من برای یادگیری Go

دوره کامل پرتغالی زبان Go، از صفر تا نینجا! 🇧🇷

فاویکون
youtube.com

دیگران

Google I/O: علیرغم اینکه یک محتوای خاص Go نیست، توصیه را در اینجا برای شما می گذارم که Google I/O را دنبال کنید!

Google I/O یک کنفرانس توسعه دهندگان است که سالانه توسط گوگل در سانفرانسیسکو، کالیفرنیا، ایالات متحده برگزار می شود. هدف از این کنفرانس راهنمایی برنامه نویسان برای بهبود برنامه های خود با تکنیک هایی است که گوگل نشان می دهد (و معمولاً Go را در بازی دارد!). در اینجا پیوندهایی به 3 شماره آخر موجود در YouTube وجود دارد:

آکادمی گوفر: صحبت می کند!: آکادمی Gopher نیروی خلاق پشت GopherCon است، کنفرانسی که همه چیز را جشن می گیرد! GopherCon از زمان معرفی خود در سال 2014 برخی از بهترین برنامه نویسی ها را در انجمن Go توسعه داده است. GopherCon حتی الهام‌بخش جلساتی در کشورهایی مانند بریتانیا، هند، برزیل، سنگاپور، روسیه و چین بوده است که هر ساله کنفرانس‌های جهانی جدیدی برگزار می‌شود!

در کانال YouTube، می‌توانید محتوای خاص‌تری درباره Go را که در نسخه‌های GopherCon ارائه شده است، بیابید. در اینجا پیوندهایی به 3 شماره آخر موجود در YouTube وجود دارد:

لازم به ذکر است که ما نسخه BR خود را نیز داریم، می توانید جزئیات بیشتر را در اینجا بیابید: https://gopherconbr.org.

لینک های مفید

💡 سند “Effective Go” برای انتشار Go در سال 2009 نوشته شده است و از آن زمان تاکنون به طور قابل توجهی به روز نشده است. در حالی که راهنمای خوبی برای درک نحوه استفاده از خود زبان است، به لطف پایداری زبان، اطلاعات کمی در مورد کتابخانه ها و تغییرات قابل توجه در اکوسیستم Go از زمان نگارش آن وجود دارد، مانند سیستم ساخت، تست ها، ماژول ها، و پلی مورفیسم

  • تور Go – نوعی “تور” تعاملی ساخته شده توسط نگهبانان Go که مهمترین ویژگی های زبان را با درس های مختلف پوشش می دهد: https://go.dev/tour/list

به پایان رساندن…

خوب، برای امروز همین است، همین!

من می خواهم از شما تشکر کنم که تا اینجا پیش رفتید و همچنین از شما می خواهم که سوالات، نظرات، انتقادات، اصلاحات یا پیشنهادات خود را در مورد نشریه برای من ارسال کنید.

اگر دوست داشتید ❤️ خود را بگذارید یا اگر این پست به هر نحوی به شما کمک کرد یک 🦄 را بگذارید! فراموش نکنید که پست های قبلی را ببینید و برای مطالب بیشتر من را دنبال کنید.

تا زمان!

نوشته های مشابه

دیدگاهتان را بنویسید

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

دکمه بازگشت به بالا