首页 > 其他分享 >Go后端入门学习路径

Go后端入门学习路径

时间:2023-06-01 10:35:51浏览次数:74  
标签:web github 入门 后端 go https Go com

1. Go语言基础

入门看这个: 《Head First Go》、《Go语言编程》以及图片额外书籍任选一本都可以,跟着书籍多敲敲代码,go语言相对C++,java来说,简单很多

img

学习基础网站资源

  1. go语言中文网:https://studygolang.com/articles

  2. Go By Example 中文版 : https://gobyexample-cn.github.io,使用代码示例来学习 Go 语言。

  3. Go 面试题 : http://www.topgoer.cn/docs/gomianshiti/mianshiti,也是使用代码示例来讲解 Go,用来准备面试也是很好的。

  4. 跟着单元测试学习 Go : https://github.com/quii/learn-go-with-tests,有中文版。【中文版-Learn Go with tests

go小项目

学完基础,知道你可能想试试手,这里推荐几个初级的项目

  1. starcharts : https://github.com/caarlos0/starcharts,项目的功能是生成 Github 上面的项目的 star 趋势图,核心代码不多,用来练手很合适。

  2. gorched : https://github.com/zladovan/gorched,使用 Go 写的一个小游戏。

  3. pacgo : https://github.com/danicat/pacgo,也是使用 Go 写的一个小游戏,每一步都有详细的描述和代码实现。

  4. wechat-go : https://github.com/songtianyi/wechat-go,微信 web 版 API 的 Go 实现,模拟微信网页版的登录/联系人/消息收发等功能。

2. Web 开发

基础知识掌握之后,可以上手做一些 web 应用,进一步了解更多的 Go 语言相关框架以及生产环境中的常用中间件,推荐书籍《Go Web 编程》。

img

可以学习下 web 框架 Gin、beego:两个框架都比较的流行,选择其中一个其实就可以了,推荐 Gin。官方文档都有中文,照着 demo 敲一下,了解下怎么处理 HTTP 请求的。

基本上看官方文档就可以了,不用去找其他的书籍,没有比官方文章更正宗的资料了。

go web项目

推荐几个使用 Go 构建的基础 web 项目:

  1. gin-vue-admin : https://github.com/flipped-aurora/gin-vue-admin,使用 Gin 框架构建的后台管理系统。

  2. ferry : https://github.com/lanyulei/ferry,基于 Gin + Vue + Element UI 前后端分离的工单系统。

  3. go-admin : https://github.com/go-admin-team/go-admin,Gin + Vue + Element UI 的前后端分离权限管理系统。

对于 web 项目的学习,可能有同学觉得项目太庞杂,根本不知道怎么下手。我想建议的是,可以在本地把项目跑起来,然后断点调试一个 HTTP 请求的整体流程,搞懂了一个接口,其他的大同小异

3. Go 语言进阶

这里推荐书籍《Go 程序设计语言》(号称 Go 圣经)、《Go 专家编程》、《Go 语言高级编程》。

img

进阶网站学习资源

1.《Go 语言设计与实现》: https://draveness.me/golang。

2.《Go 语言高级编程》: https://chai2010.cn/advanced-go-programming-book。

进阶go项目

想要进一步巩固所学知识,这里推荐几个比较进阶的项目

  1. gochat : https://github.com/LockGit/gochat,一个 Go 语言实现的轻量级 im 系统,对网络方面熟悉或者感兴趣的可以看看。

  2. 7DaysGolang : https://github.com/geektutu/7days-golang,7 天使用 Go 从零实现 web 框架、分布式缓存、ORM 框架,、RPC 框架,代码量不多,但是质量挺不错

4. go 微服务

(可以选择性掌握)

目前 Go 在微服务中的应用也比较广泛,但微服务是一个太庞大的话题,你不可能把每一个核心的问题都能够搞清楚,而且也没条件,或许只能在公司的具体的微服务生产环境中,才能够对相关的概念有更加深刻的体会。

推荐一本微服务概述的基础书籍《微服务设计》、《微服务架构设计模式》,可以帮助你理解微服务的建模、集成、测试、部署和监控的一些基础知识。

img

推荐 Go 语言的微服务框架 GoKit、GoMicro、go-zero、kratos,可以随便选择一个,理解其基本的用法、设计等等。其中 go-zero 和 kratos 是国内开源的,因此都有比较详细的中文文档。

这里推荐一个在线学习的资料:

微服务网站学习资源

https://ewanvalentine.io/microservices-in-golang-part-1

手把手实现一个简单的 Go 微服务项目,你可以通过这个项目来学习微服务的相关知识,并且有中文版。【[中文版]用GoLang实现微服务(一) - 二向箔 (dingkewz.com)

5. 学过的课程

入门课程:

8小时转职Golang工程师:基本语法,以及一个小项目:终端的即时通讯系统

基于gin框架和gorm的web开发实战 (七米出品):一个简单的滴答清单小项目

进阶:

Go Web开发进阶实战(gin框架)网易云:付费课程,针对校招是够用了!

GoWeb进阶-基于vue+go+gin+mysql+redis的博客论坛web项目:别人准备面试的项目视频

后期课程推荐:

Go开发工程师体系课- 慕课网 (imooc.com):有基础,有两三个大项目。有空再看!

极客时间训练营-Go 进阶训练营 (geekbang.org):更高级的课程!80h,3大项目

参考:代码随想录 (programmercarl.com)

标签:web,github,入门,后端,go,https,Go,com
From: https://www.cnblogs.com/Lusai/p/17448226.html

相关文章

  • Go排序算法小总结
    Go-排序算法参考整理:1.0十大经典排序算法|菜鸟教程(runoob.com)shell排序-Mohuishou(lailin.xyz)排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部......
  • 【Python】【Flask】前端调用后端方法
    后端代码:@app.route("/test",methods=['POST','GET'])deftest():return"我是测试的"前端代码:1、使用<a>标签<ahref="{{url_for('test')}}">我是测试</a>这个是最简单的,点击一下,就自动跳转了。2、使用<button>......
  • 【博学谷学习记录】超强总结,用心分享 | Django简易开发指南
    【博学谷IT技术支持】一、介绍Django是python语言写的开源web开发框架,遵循MVC设计。Django的主要目的是简便、快捷的开发数据库驱动的网站。但是Django有一个专有名词:MVTM:Model,负责数据处理,内嵌了ORM框架V:View,接收HttpRequest,业务处理,返回HttpResponseT:Template,负责......
  • 优雅实现golang默认参数
    原生的golang中,函数定义不支持默认参数。但是在实际开发过程中,经常会有些参数用户可以不关心或者可以根据实际情况去定制实现,这个时候需要使用到默认参数,在C++中,函数的定义和实现本来就支持默认参数,如果需要在golang中实现默认参数,可以参考一下做法: packagemainimport"fmt......
  • go语言的defer
    go语言的defer机制可以避免其他语言时处理错误,要在每个分支执行关闭、回收资源的繁杂问题。百闻不如一见,看的教程再多,也不如自己实际编程,调试来得方便。以下为根据测试代码段进行总结的过程。1.packagemainimport"fmt"functest1(){ fmt.Println("循环开始") varp*......
  • go gmp
    MGPM:machine系统线程,执行实体,通过系统调用clone来创建G:groutine任务和上下文P:虚拟处理器,M需要获得P才能执行否则休眠go的调度本质上是一个生产消费的流程生产端M负责调度循环消费task队列分runnext+本地队列+全局队列来区分优先级,也避免锁本地队列使用的数据结构是......
  • 博学谷学习记录】超强总结,用心分享 | mongodb基础用法
    【博学谷IT技术支持】数据库连接后端数据库连接语法:mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]mongodb://是固定搭配,后边是可选参数用户名加密码,host是要连接服务器的地址,portx是指定的端口,默认27017da......
  • go中的并发学习
    代码源自于https://github.com/lotusirous/go-concurrency-patterns自此对各个示例代码进行调试。1-boringpackagemainimport( "fmt" "math/rand" "time")funcboring(msgstring){ fori:=0;;i++{ fmt.Println(msg,i) time.Sleep(time.D......
  • golang vscode开发环境配置
    1.下载go安装包并安装官网下载地址2.下载vscode并安装官网下载地址3.安装vscodego语言开发扩展(插件)4.切换国内下载源,cmd输入如下代码goenv-wGO111MODULE=ongoenv-wGOPROXY=https://goproxy.cn,direct5.安装vscodego开发工具包windows下vscodeCtrl+Shift+P找......
  • mongocxx c++ 14标准,进行多表联合查询
     #include<mongocxx/client.hpp>#include<mongocxx/instance.hpp>#include<mongocxx/uri.hpp>#include<bsoncxx/builder/stream/document.hpp>#include<bsoncxx/json.hpp>#include<bsoncxx/types.hpp>usingbsoncxx::builder::s......