نقشه راه توسعه دهنده قسمت اول

توسط mrbardia72
زمان خواندن ~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

SQL Server

PostgreSQL

MariaDB

MySQL

CockroachDB

Cloud Databases

CosmosDB

DynamoDB

Search Engines

ElasticSearch

Solr

Sphinx

NoSQL

MongoDB

Redis

Apache Cassandra

RavenDB

CouchDB

درمورد پایگاه داده ها خودتون می تونید سرچ کنید.

۶. ابزار های Object Relational Mapper

به زبان بسیار ساده ابزاری هست که به شما به عنوان یک برنامه نویس میگه ، شما کاریت به نوشتن Query های دیتابیس ها نباشه ، کد مورد نظرت رو بنویس ، بده به من ، من به عنوان واسط بین کدها و دیتابیس میام و Query ها رو تولید می کنم و اینجوری باعث میشه دنیا برای برنامه نویس ها بسیار زیباتر بشه . فکر کنید دیگه نیازی نیست که شما درگیر کدهای SQL عجیب و غریب بشید و اینکار رو به عهده ORM می گذارید.

خوب با تعاریف فوق ما توی گولنگ دوتا ابزار داریم برای این کاری

GORM

XORM