Go Developer(gopher-academy.ir)
Go Developer Roadmap part 1
در مقاله زیر یک مسیر جهت تبدیل شدن به یک توسعه دهنده گولنگ را نشان می دهد. که یک توسعه دهنده گولنگ باید چه چیز های یاد بگیرد. پس با ما همراه باشید. در قسمت اول این ماجرا
شما می توایند قسمت دوم را از این جا بخوانید.
سرفصل بخش اول شامل موارد زیر هست
- Prerequisites
- General Development Skills
- CLI Tools
- Web Frameworks + Routers
- Databases
- ORMs
خوشحال میشم اگه چیزی از قلم افتاده توی همین پست برام کامنت کنید.
و در ضمن ما رو توی گیت هاب دنبال کنید
۱. پیش نیاز ها برای شروع
۱-۱. یاد گیری کدنویسی در گولنگ که می تونید اونارو از سایت های زیر یادبگیرید
- Go by Example
- Go Resources
- Go Bootcamp
- Gophercises
- Learning Go
- CosmicLearn
- Safari Books Online
- Tutorials Point
- Golangbot.com
- Go Web Examples
- Toptal
- Tree House
- Codementor
- Pluralsight
- ReactDOM
- Hackernoon
- Awesome Go
- Techgig
- Golang Tutorials
- Golang Basic
- Eduonix
- Ardan Labs
- 50 Shades of Go
- Master Go
- Infoworld
- A Tour of Go
- Golang Code
- PragmaCoders
۱-۲. یادگیری Go Modules
در واقع ماژول ها پکیج مورد استفاده ما درون یک پروژه شخصی می باشد. یعنی مدیریت پکیج های که درون پروژه مورد استغاده قرار دادیم. که پسوند این فایل go.mod هست.
برای اطلاعات بیشتر و نحوه کار کرد آن به این آدرس مراجعه کنید.
۱-۳. یادگیری مفاهیم ابتدای sql که برای شروع به این آدرس مراجعه کنید.
۲. مهارتهای عمومی در توسعه
- آشنایی با دستورات git
- پروتکل HTTPS را بدانید ، روش های درخواست (GET ، POST ، PUT ، PATCH ، DELETE ، OPTIONS)
- اطلاعاتی در مورد الگوریتم ها و ساختار داده ها بخوانید
- در مورد احراز هویت ها اطلاعات کسب کنید
- اصول SOLID ، الگوهای معماری و design patterns
- مبانی تست نرم افزار (unit, integration, e2e)
۳. آشنایی با CLI Tools
۳-۱. ابزار cobra
در واقع Cobra هم یک کتابخانه برای ایجاد برنامه های قدرتمند CLI مدرن و هم برنامه ای برای تولید برنامه ها و فایل های فرمان می باشد. این ابزار در بسیاری از پروژه های Go مانند Kubernetes ، Hugo و Github CLI مورد استفاده قرار گرفته. این لیست حاوی لیست گسترده تری از پروژه های با استفاده از این ابزار هست.
۳-۲. ابزار urfave
این ابزار یک بسته ساده ، سریع و سرگرم کننده برای ساخت برنامه های خط فرمان در Go است. هدف این است که توسعه دهندگان بتوانند برنامه های خط فرمان را سریع و توزیع را به روشی رسا بنویسند.
۴. فرم ورک ها Web Frameworks + Routers
۴-۱. فرم ورک beego
برای توسعه API های RESTful ، برنامه های وب و سروریس های بک اند در Go استفاده می شود. این فرم ورک الهام گرفته از Tornado ، Sinatra و Flask است. beego برخی از ویژگی های Go مانند اینترفیس ها و اسنراکچر ها را دارد.
۴-۲. فرم ورک chi
این فرم ورک chi یک روتر سبک ، و سازگار برای ساخت سرویس های Go HTTP است. به خصوص کمک به نوشتن سرویس های بزرگ REST API که با رشد پروژه و تغییر پروژه حفظ می شوند، به شما کمک می کند.
تمرکز این پروژه به روی طراحی زیبا و راحت برای نوشتن سرورهای REST API بوده است ،
ملاحظات اساسی در مورد طراحی chi عبارتند از:
- ساختار پروژه
- قابلیت نگهداری
- هندلرهای استاندارد http (فقط stdlib)
- بهره وری توسعه دهنده
- ساختن یک سیستم بزرگ در بسیاری از قسمت های کوچک.
۴-۳. فرم ورک echo
ابن فرم ورک دارای معیار های همچون عملکرد بالا ، قابلیت توسعه ، و minimalist می باشد.
۴-۴. فرم ورک fiber
این فرم ورک یک چارچوب وب الهام گرفته از اکسپرس است که ، سریعترین از موتور HTTP خود Go هست
این فرم ورک برای سهولت در توسعه سریع و تخصیص حافظه و عملکرد کارها را آسانتر می کند.
۴-۵. فرم ورک gin
یکی از ويژگی های که این فرم ورک را از مابقی جدا می سازد سرعت و عملکرد بالای آن هست. این ویژگی دارای یک API Martini است که عملکرد آن به لطف httprouter تا 40 برابر سریعتر می کند. اگر به عملکرد و بهره وری خوبی نیاز دارید ، جین انتخاب خوبی هست.
۵-۵. فرم ورک revel
یک چارچوب وب با بهره وری بالا و انعطاف پذیر برای زبان Go
۵. پایگاه داده ها
Relational
Cloud Databases
Search Engines
NoSQL
درمورد پایگاه داده ها خودتون می تونید سرچ کنید. توی این مقاله دیگ توزیع ندادم.
۶. ابزار های Object Relational Mapper
به زبان بسیار ساده ابزاری هست که به شما به عنوان یک برنامه نویس میگه ، شما کاریت به نوشتن Query های دیتابیس ها نباشه ، کد مورد نظرت رو بنویس ، بده به من ، من به عنوان واسط بین کدها و دیتابیس میام و Query ها رو تولید می کنم و اینجوری باعث میشه دنیا برای برنامه نویس ها بسیار زیباتر بشه . فکر کنید دیگه نیازی نیست که شما درگیر کدهای SQL عجیب و غریب بشید و اینکار رو به عهده ORM می گذارید.
خوب با تعاریف فوق ما توی گولنگ دوتا ابزار داریم برای این کاری
مطلبی دیگر از این انتشارات
چرا به Go2 نیازی نداریم ؟
مطلبی دیگر از این انتشارات
نوع متغییر تابع در go
مطلبی دیگر از این انتشارات
عدد هارو چاپ کن!