# Go training **Repository Path**: wanchengfu/go-training ## Basic Information - **Project Name**: Go training - **Description**: 学习go语言从0到go一切, 安装好go环境和vs code开始 golang 之旅程 - **Primary Language**: Go - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-01-09 - **Last Updated**: 2023-08-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: 学习, 基础 ## README # Go training #### 介绍 **以下是 Go学习的参考blog** go基础学习blog:https://astaxie.gitbooks.io/build-web-application-with-golang/content/zh/02.2.html go简单服务器搭建blog:https://learnku.com/docs/build-web-application-with-golang/032-go-builds-a-web-server/3169 go的单元测试:https://geektutu.com/post/quick-go-test.html go的roadmap:https://golangroadmap.com 很多golang的学习资源适合学会基础语法后进阶 go与数据库连接等:https://www.topgoer.com/ 也介绍了一些框架 #### 文件架构 文件架构说明 - foundation:go的基本语法,以及搭建简单的服务器,golang的基础学习 - var 列举了go的变量类型以及使用方式 - process 判断,switch以及循环标签break continue - package 关于拓展包 - function 关于闭包,defer,值&参传入,匿名函数 - struc 关于结构体,创建和调用 - http 启动一个简单的浏览器服务器,以及表单的使用 - pointer 关于指针与指针小练习 - chan 关于通道 - go_book: 基于《Go程序设计语言》-Brian W Kernighan(C、go语言发明者),对golang的学习。基于此书把学习路径与习题摘出来进行精简的笔记。与foundation的关系是换个角度去学习golang(先从foundation开始),使golang的学习更加深刻(与foundation是学习是平行级别的)。本书总共13章,每一章形成单独的文件夹进行学习。 - entry_level: 1.入门 - structure:2.程序结构 - basic_dataType:3.基本数据 - compound_dataType:4.复合数据类型 - function:5.函数 - method:6.方法 - interface:7.接口 - goroutine_tunnel:8.通道 - concurrency:9.并发 - package:10.包 - test:11.测试 - reflection:12.反射 - low_level:13.低级编程 - project: go lang 连接my sql 并使用docker 通过gin来部署实现一个简单的controller,model的模型,golang sql连接```go get -u github.com/go-sql-driver/mysql```, sql workbench 打开才可以连 #### 安装教程 1. go get 下载并安装第三方包,可以下github,google,bitbucket 2. go 语言下载(国内有墙):https://go.dev 3. vs code go配置:任何搜索引擎查一下 #### 使用说明 1. VS code go插件安装遇到failed的情况解决方式:terminal输入 ``` go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.io,direct ``` 并重启VS code,解决方案来自于https://zhuanlan.zhihu.com/p/387853200 2. VS code codeRunner 插件自动运行go文件, 更改运行文件:打开setting(快捷键command+,ctrl+) 输入 ```code-runner.executorMap```, go里修改文件路径:将```go:run```改成 ```cd $dir && go run 加上 文件名``` 3. 关于vs code 无法直接使用bufio.NewScanner对os.Stdin进行命令行输入输出,必须使用插件或手动改debug(很麻烦)打断点并且需要使用dlv单开一个服务器进行输入(两个进程,这是bug vscode官方截至2023年1月15日还未修复)。当前只能使用打断点方式处理输入输出,具体流程如下: - a. 首先进入vscode debug中的setting(齿轮icon) - b. 将lanch.json的配置文件中,改为 ``` "version": "0.2.0","configurations": [{"name": "Connect to server","type": "go","request": "attach","mode": "remote","remotePath": "${fileDirname}","port": 2345,"host": "127.0.0.1","apiVersion": 2}]``` - c.然后在包含go代码的文件目录下的termimal里启用一个go dlv的debug服务器 ```dlv debug --headless --listen=:2345 --log --api-version=2``` - d.运行用bufio.NewScanner对os.Stdin进行命令的go 代码 - e.在bufio.NewScanner处打上断点 - f.对改go代码文件使用f5启用debug(connet to server的debug环境下,这个环境可以选的),就可以在dlv的服务器terminal里输入然后每次输入,debug断点会抓取 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)