likes
comments
collection
share

《Go学习路线图》让你少走弯路,Let's Go !持续更新中...

作者站长头像
站长
· 阅读数 21

前言

为了方便大家能够按顺序系统的进行学习,我把之前整理的Go语言学习专栏文章进行了梳理。

方便大家更系统的学习Go语言,欢迎大家在评论区推荐、自荐优秀的Go文章

让我们手牵着手,一起走,少走弯路,又快又好的成为Gopher,Let's Go。

建议大家先收藏,结合自己的情况合理安排学习计划,坚持学习打卡,可以在评论区留言。

概览

首先分享了我的学习经验:讲一讲Go语言为什么值得学习?以及我是如何高效学习Go语言的。

然后就是刻意练习了,需要大家和我一样,坚持每天手撸代码,多敲多想:

通过对Go基础篇的学习,可以从Go小白升级成为能用Go撸代码的gopher。

通过对Go进阶篇的学习,可以从Go初级程序员升级为Go中级工程师。

通过Go PHP JAVA类比篇的学习,可以更好的理解Go的优势,更好的理解Go的设计思想。

框架篇 不仅对比了目前主流的Go框架,还重点讲解了GoFrame框架相关的知识点。

GoFrame是类似PHP-Laravel, Java-SpringBoot的Go企业级开发框架,非常值得大家学习。

最后,会通过几篇应用实践的文章收尾,带大家体验一下用Go开发企业项目的快乐。

说明:下面的文章没有标注作者信息的是我的文章;标明作者的都是优秀创作者投稿,经过筛选的优质文章。

Go签约文章

为什么学Go?

# Go语言为什么值得学习?

# Go 在云原生时代的优势 作者:# 宇宙之一粟

学习经验分享

# 回顾一下我的Go学习之旅 | Go 主题月

# [译]如何真正学习Go 语言 作者:# 宇宙之一粟

# 写Go最近踩的坑 | 日志、内聚和复用、gjson、调整心态

基础篇

数据类型

#【Go基础】编译、变量、常量、基本数据类型、字符串

# Go const和iota 使用实战

# Go基础数据类型使用实战:int float bool

切片

# Go slice切片详解和实战

# Go slice切片详解和实战(2) make append copy

# 深入理解 slice 非常硬核! 作者:# 二牛QAQ

数组

# Go 数组详解和实战

# Go map详解和实战

rune

# Go rune详解和实战

指针

# Go pointer & switch fallthrough 详解和实战

流程控制

# go if判断和for循环实战 goto使用的那些坑

函数

# Go 函数详解 func 匿名函数 闭包

ORM

# Go 语言中操作 MySQL 数据库 作者:# 宇宙之一粟

# golang 基于 mysql 实现分布式读写锁 作者:# 二牛QAQ

部署

# 如何优雅的通过Shell脚本一键部署GO项目到服务器

扩展包

# Go时间包jsontime深入浅出 如何优雅的对时间进行格式化 |Go 主题月

# Go语言json包的使用技巧

# Go 入门很简单:如何在 Go 中使用日志包 作者:# 宇宙之一粟

重要概念

# Go开发web必懂的概念和底层原理,通过对比的方式让大家更好的理解 | Go主题月

进阶篇

协程

# 什么时候用Goroutine?什么时候用Channel?

# Goroutine就是协程:进程 线程 协程 各自的概念以及三者的对比分析

RPC

# Go RPC入门指南1:RPC的使用边界在哪里?如何实现跨语言调用?

反射

# Golang的反射reflect深入理解和示例 作者:吴德宝AllenWu

# Go语言中的反射 作者:任沫

interface

# Golang interface接口深入理解 作者:吴德宝AllenWu

错误处理

# Go函数并发情况的错误处理 作者:Masters

并发安全

# Go源码解读-sync.Map的实现 作者:Masters

部署

# Go打包 部署 优雅的把Go项目部署到Linux服务器

规范&技巧

# Go语言中比较优雅的写法 | 硬核!

# 爆肝分享两千字Go编程规范

# Go开发技巧和踩坑分享 | 代码结构 调试技巧 配置文件 元数据

Go对比PHP/JAVA/C

# Java VS Go 还在纠结怎么选吗,(资深后端4000字带你深度对比) 作者:TodoCoder

# 为什么我觉得GoFrame的garray比PHP的array还好用?

# GoFrame gset使用入门 | 对比PHP、Java、Redis

# 如何在 Go 代码中运行 C 语言代码 作者:# 宇宙之一粟

好用的扩展包

# GO语言框架中如何快速集成日志模块 作者:Masters

# Go Web 编程入门:Go pongo2 模板引擎 作者:# 宇宙之一粟

# 使用 Gorilla Mux 和 CockroachDB 编写可维护 RESTful API 作者:# 宇宙之一粟

设计模式

# golang 设计模式-单例模式 作者:# 二牛QAQ

框架篇

学哪个框架?

# Go主流框架对比:Gin Echo Beego Iris

# 非常适合PHP/JAVA同学使用的GO框架:GoFrame

# 12个值得一看的Go开源项目/框架 作者:ReganYue

Gin框架&中间件

# Go gin框架封装中间件之1:用户角色权限管理中间件

# Go gin框架封装中间件之2:操作日志中间件

GORM

# Go GORM是时候升级新版本了 2.0新特性介绍(1)

# Go GORM是时候升级新版本了 2.0新特性介绍(2)| Go主题月

Echo

# 回声嘹亮 之 Go 的 Echo 框架指南 —— 上手初体验 作者:# 宇宙之一粟

Beego

# go-web框架-beego的使用 作者:# jy白了个白

GoFrame

数据结构

# 为什么我觉得GoFrame的garray比PHP的array还好用?

# GoFrame garray使用实践

# GoFrame gset使用入门 | 对比PHP、Java、Redis

# GoFrame gset使用实践 | 交差并补集

# GoFrame gset使用技巧总结 | 出栈、子集判断、序列化、遍历修改

# GoFrame glist 基础使用和自定义遍历

# GoFrame gmap详解 hashmap、listmap、treemap使用技巧

# GoFrame gtree 使用入门 | 养成读源码的好习惯

类型转换

# GoFrame代码优化:使用gconv类型转换 避免重复定义map

通用变量

# GoFrame 通用类型变量gvar | 对比 interface{}

数据校验

# GoFrame数据校验之校验对象 | 校验结构体

# GoFrame数据校验之校验结果 | Error接口对象

# GoFrame如何实现顺序性校验

错误处理

# GoFrame错误处理的常用方法&错误码的使用

上下文

# GoFrame 如何优雅的共享变量 | Context的使用

# Go 并发编程基础:什么是上下文 作者:# 宇宙之一粟

ORM

# GoFrame ORM 使用实践分享

# GoFrame ORM原生方法 开箱体验 (上)

# GoFrame ORM原生方法 开箱体验 (下)

# GoFrame必知必会之Scan:类型转换

缓存管理

# GoFrame 如何优雅的缓存查询结果

# GoFrame gcache使用实践 | 缓存控制 淘汰策略

# GoFrame gredis 配置管理 | 配置文件、配置方法的对比

# GoFrame gredis 硬核解析 | DoVar、Conn连接对象、自动序列化

# GoFrame gredis 如何优雅的取值和类型转换

协程管理

# GoFrame gpool 对象复用池 | 对比sync.pool

# goFrame的gqueue详解 | 对比channel

# grpool goroutine池详解 | 协程管理

避坑指南

# GoFrame避坑指南和实践干货

# GoFrame避坑指南和实践干货(2)

性能测试

# GoFrame grpool性能测试 | 对比原生goroutine

调试&单元测试

# Go本地测试 如何解耦 任务拆解&沟通

# Go Web 编程入门: 一探优秀测试库 GoConvey 作者:# 宇宙之一粟

应用实践

# gtoken替换jwt实现sso登录 | 带你读源码

# gtoken替换jwt实现sso登录 | 排雷避坑

# Go对接三方API实践

# Go一分钟对接ElasticSearch实践

# 瞄一眼clickhouse(附 go demo) 作者:Masters

Git

# Git使用实战:多人协同开发,紧急修复线上bug的Git操作指南。

# Git 重命名远程分支 | 操作不规范,亲人两行泪。

刷题

如果你是学生党,没有机会接触商业项目,不用难过。刷力扣是个非常好的选择!

用Go语言刷力扣专栏

为了方便大家刷Go语言的知识点,特意整理了面试题相关的文章:

# 【狂刷面试题】GO常见面试题汇总

一起学习

公众号:程序员升级打怪之旅

微信号:wangzhongyang1993