Skip to content

Latest commit

 

History

History
141 lines (105 loc) · 6.38 KB

README.md

File metadata and controls

141 lines (105 loc) · 6.38 KB

Go 后端训练营

前言

  • 代码风格参考 (大概看看就行): Google 发布的《Go 代码规范》Google Style Guides
  • 该方案并不需要你学习的多深入,里面的大概了解基础就行,到有需求时能知道有这么个东西,能去找出来用(但个人有时间时可以对提到的内容加深、扩展,更之后的时间参考扩展内容)

有些英文文档可以使用浏览器翻译配合着看,推荐翻译插件:沉浸式翻译:最受欢迎的双语对照网页翻译插件

第一/二周

作业:memory todolist

数据保存在内存中的待做清单

  • 实现 增删改查,列出全部 共 5 个接口
    • 请自行设计路由,学习 RESTful API,参考:ruanyifeng restful_api
    • 参考:
      > curl -X GET http://127.0.0.1:8080/tasks
      {
        "tasks":[
          {
              "id":1,
              "title":"吃饭",
              "completed":false
          },
          {
              "id":2,
              "title":"睡觉",
              "completed":true
          }
        ]
      }
  • 使用 curl 进行测试
    • 注意保留测试的 curl 脚本及结果,一并上传到代码仓库中
      • 学习 curl 基本使用,并尝试在终端发出 HTTP 请求,例如 curl -X GET [http://127.0.0.1:8080/ping](http://127.0.0.1:8080/ping%60), 和上面直接在浏览器访问应该能得到相同结果
      • 至于 curl 如何发送 POST 等其他请求方法,如何添加 form,json 等参数请自行搜索文档(熟练使用搜索引擎是程序员的必备技能)
    • 也可以使用 apifox,postman 进行测试,使用更加方便
  • 学习 git 的基本操作(如 pull,push)
    • **!建议周六周日做完就先注册 **** github ****,并把这个 **** TODO list 提交到代码仓库(可参考: github提交 pr_提交 pr 是什么意思_@才华有限公司的博客-CSDN 博客
    • forks 学习↓
    • http://doc.yonyoucloud.com/doc/wiki/project/github-basics/fork-example-repo.html
    • forks 被用于去更改别人的项目(贡献代码给已经开源的项目)或者使用别人的项目作为你自己想法的初始开发点。

学习任务

第三/四周

作业:db todolist

数据存储在数据库中的 todolist

https://gorm.io/zh\_CN/docs/models.html#gorm-Model

参考 [go 嵌入结构体]

(https://gorm.io/zh_CN/docs/models.html#%E5%B5%8C%E5%85%A5%E7%BB%93%E6%9E%84%E4%BD%93) (也顺便了解 go 的面向对象写法)

  • 根据需要添加其他各种数据类型的字段,int,string,bool,日期等
  • 为之前的 demo 添加数据库支持
  • 为之前的 demo 添加分页查询 API

学习任务

  • 安装配置 sqlite 或者 mysql 数据库(推荐使用 sqlite,简单)
  • 学习数据库基本知识 (sql 基础语法)
  • 学习 gorm 参考:<https://gorm.io/zh_CN/docs/index.html>,了解如何使用 go 语言操作数据库,包括
    • 数据表的创建
    • 对数据的增删改查操作

gorm

扩展(grpc)

作业:rpc todolist

基于 rpc 的 todolist

  • 将之前写的 demo 用 rpc 框架(grpc)实现,并使用客户端向服务端调用接口 (不需要全写,实现一个接口,意思意思就行)

学习任务

附录

资料

官方教程 官方教程,简单易懂
Go 入门指南
C 语言中文网的 Go 教程 除了部分内容付费外也挺好的
菜鸟教程 可以看,稍微有点过时
微软提供的教程 评价不错
Go 语言圣经
Go Web 编程
Go 语言高级编程 内容更多更细,例子也更多
go 语言设计与实现 语言的实现,进阶材料
RPC

拓展内容(可在之后的学习中慢慢看,不在两周要求内)

  • 了解 python

  • 了解 Redis

  • 了解消息队列 例如 Rabbitmq

  • 了解 Elasticsearch

  • 了解 日志,监控 prometheus,grafana

  • 了解 nginx

  • 了解 环境变量

  • 了解 Bash 脚本

  • 了解 Makefile

  • http/rpc协议