2021 Go开发者学习路线图来啦

先上图

Go学习路线图 - 图1

Go学习路线图 - 图2

之前老有群友问谁有Go开发者学习路线图,今天恰巧总结了一下。首先介绍这个路线图是在draw.io网站上进行制作的,想法来源于 : ASP.NET Core Developer Roadmap,简体中文版翻译版Go开发者路线图rainyan翻译出品。

大概从三点罗列了一下需要学的知识点:必会、推荐学习、可选择了解。接下来我主要聊一下我觉得相对重要的一些模块并推荐一些资源和文章,欢迎指正。

Go基础

Go的基础学习,推荐的是golangbot这个网站,包含了Go学习的系列教程从HelloWorld到文件操作。个人感觉这个系列教程也挺不错的。同时我也想到了A Tour Of GoGo by Example网站教程,上面很多example和讲解。golangbyexample也被我发现了,基础教程的案例都比gobyexample和golangbot多一些,另外还配备了高级教程,主要包括了基础篇、进阶专题、设计模式和一些数据结构。也强烈推荐大家学习温习一波。

最后分享大家一个Go资源收集仓库Golang从入门到跑路【罗列各种Go资源】

SQL基础

这里推荐学习的网站是w3schools,好久没上这个网站了居然变的这么lv,哈哈哈。sql的基础不说了,大家都是curd boy,

通用开发技能—开发原则

我看这里提到了一些开发中需要遵循的一些原则:SOLID、DRY、YANGNI、KISS。这里大概给大家逐一解释一下:

SOLID:

是下面五个面向对象编程中的设计原则的缩写。SOLID在Go中的运用dave博客中也有讲解SOLID Go Design,简体中文由Haohao Tian翻译,详细阅读见SOLID Go Design - Go语言面向对象设计

DRY:

Don’t Repeat Yourself的意思——不要重复你自己。此原则是让我们在开发中把代码和逻辑划分为更小的可重用单元。重复性代码问题尤其是在多人维护的项目中也经常遇到,修改一处,其他逻辑部分也要修改极难维护。所以我们可以通过应用单一职责接口隔离等原则尽量拆分系统,模块,类,方法·。使其每一个部件都是职责明确的并且可重用的。

YAGNI:

You aren't gonna need it 的缩写,意思是指你不会需要它。主要思想是不要做过度设计,这是“极限编程”提倡的原则,指的是你自以为有用的功能,实际上都是用不到的

KISS:

Keep It Simple, Stupid的缩写——保持简单,愚蠢。KISS原则是保持代码可读性和可维护性的重要手段

因为简单的代码更容易维护和理解。那什么是简单的代码呢?在我看来:每个方法只做一件事、处理很小的事情,行数最多控制在30行左右;变量、包名、方法的命名简单只戳其意;可扩展、易于修改重构。

小结

最后,我推荐一篇cheaterlin大佬写的万字详文阐释程序员修炼之道万字详文告诉你如何做 Code Review这两篇文章,阅读量篇篇过万,主要讲述了如何去更好地写Go代码。

日志

日志的话目前为止据我了解很多Go厂中zap还是用的最多的。推荐阅读

一文带你由浅入深地解读Zap的高性能

高性能 Go 日志库 zap 设计与实现

深度 | 从Go高性能日志库zap看如何实现高性能Go组件

Go设计模式

Go设计模式推荐的是go-patterns,中文版的我这里推荐的是mohuishou大佬的golang design pattern go 设计模式笔记。下面是mohuishou大佬关于设计原则和设计模式的思维导图分享。

设计原则

Go学习路线图 - 图3

设计模式

Go学习路线图 - 图4

总结

小结一下,文章偏向于资源分享,希望此篇短文分享能给大家带来一些收获,更多学习向导可参考Go开发者路线图。最后祝大家周末愉快。