Go Developer Roadmap part 1

Go Developer Roadmapدر مقاله زیر یک مسیر جهت تبدیل شدن به یک توسعه دهنده گولنگ را نشان می دهد. که یک توسعه دهنده گولنگ باید چه چیز های یاد بگیرد. پس با ما همراه باشید. در قسمت اول این ماجراشما می توایند قسمت دوم را از این جا بخوانید.سرفصل بخش اول شامل موارد زیر هستPrerequisitesGeneral Development SkillsCLI ToolsWeb Frameworks + RoutersDatabasesORMsخوشحال میشم اگه چیزی از قلم افتاده توی همین پست برام کامنت کنید.و در ضمن ما رو توی گیت هاب دنبال کنید۱. پیش نیاز ها برای شروع۱-۱. یاد گیری کدنویسی در گولنگ که می تونید اونارو از سایت های زیر یادبگیریدGo by ExampleGo ResourcesGo BootcampGophercisesLearning GoCosmicLearnSafari Books OnlineTutorials PointGolangbot.comGo Web ExamplesToptalTree HouseCodementorPluralsightReactDOMHackernoonAwesome GoTechgigGolang TutorialsGolang BasicEduonixArdan Labs50 Shades of GoMaster GoInfoworldA Tour of GoGolang CodePragmaCoders۱-۲. یادگیری 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۵. پایگاه داده هاRelationalSQL ServerPostgreSQLMariaDB MySQLCockroachDBCloud DatabasesCosmosDBDynamoDBSearch EnginesElasticSearchSolrSphinxNoSQLMongoDBRedisApache CassandraRavenDBCouchDBدرمورد پایگاه داده ها خودتون می تونید سرچ کنید. توی این مقاله دیگ توزیع ندادم.۶. ابزار های Object Relational Mapperبه زبان بسیار ساده ابزاری هست که به شما به عنوان یک برنامه نویس میگه ، شما کاریت به نوشتن Query های دیتابیس ها نباشه ، کد مورد نظرت رو بنویس ، بده به من ، من به عنوان واسط بین کدها و دیتابیس میام و Query ها رو تولید می کنم و اینجوری باعث میشه دنیا برای برنامه نویس ها بسیار زیباتر بشه . فکر کنید دیگه نیازی نیست که شما درگیر کدهای SQL عجیب و غریب بشید و اینکار رو به عهده ORM می گذارید.خوب با تعاریف فوق ما توی گولنگ دوتا ابزار داریم برای این کاریGORMXORM