你好,欢迎学习本课程。本课程是一个 Go 项目开发极速入门课程。旨在帮助刚学习完 Go 基础语法的 Go 开发者,快速掌握如何开发一个功能相对全面的 Go 项目。
本开篇词会介绍下本课程,以使你对本课程有个初步的了解,便于后面的学习。
作者介绍
这里先来介绍下我自己。
- 孔令飞,字节跳动资深云原生开发工程师、前腾讯云容器开发专家。
- 《企业级 Go 项目开发实战》、《从零开发企业级 Go 应用》唯一作者;《Kubernetes调度器权威指南》(写作中)作者。
- 云原生 AI 实战营知识星球 星主(欢迎大家加入我的星球,学习更多 Go、云原生、AI Infra 相关课程)
- 有过多个国内外知名项目的设计和开发经验。工作经验主要聚焦在 Go、云原生和 AI Infra 领域。
本课程写作背景
我写过很多课程,但在运营课程的过程中,发现还是有部分学生期望能有一个 0 基础快速入门的课程。另外,我自己最近也在学习 AI,因为平时工作比较忙,所以学习过程中也很期待能有一个 AI 实战 Hello World 课程,能够带我极速入门 AI。我期望能够通过这个极速入门课程,在很短时间内,让 AI 从黑盒变成白盒,扫除因知识盲区带来的恐惧感,以及由此带来的过门犹豫症。
考虑到学生的真实诉求,以及自己的学习体验,我决定出一个极速入门课程。该课程类似于一个 Go 项目开发 Hello World,能够让你在极短的时间内入门 Go 项目开发。并由此在未来展开更多的深度学习。
课程目标
基于课程的写作目的,本课程的目标如下:以最小的学习难度,让大家尽快了解如何开发一个功能相对完备的高质量 Go 项目。
本课程的目标开发者是:刚学习完 Go 基础语法,想快速了解如何开发一个 Go 项目的 Go 开发者。
如果你想进阶学习 Go 项目开发技术,可以学习本课程的进阶课程:
- 中级工程师进阶课:Go 项目开发中级实战课(对应的实战项目为:miniblog)。中级实战课基于技术入门实战课进行升级,包含了更多的技术点,例如:gRPC、gRPC-Gateway、授权、性能测试、性能分析、静态代码检查、Makefile、OpenAPI、自定义日质包、自定义错误包,更强大的校验机制等。
- 专家级工程师进阶课:Go 项目开发中级实战课(对应的实战项目为:onex)。专家级实战课可以直接让你进阶为 Go 开发专家,本套课程包含了 99 节高质量课程及 15w 行高质量源码。
上述 2 个课程匹配的实战项目代码的开发风格、软件架构是 fastgo 项目的进阶。
Go 项目开发极速入门课特点
因为本课程的目标是能够让你在极端的时间内,相对全面的学习 Go 项目开发,所以本课程具有以下特点:
- 学习时间短: 课程能够让你在很短时间内快速入门 Go 项目开发,预估时间为 1.5 个小时;
- 内容全面: 虽然是极速入门课课,但课程的内容仍然相对全面,包含了 Go 项目开发中的重要开发内容;
- 内容基础: 因为课程内容相对全面,要压缩学习时间,所以,本课程,不会讲太多、太复杂的开发知识,只会讲开发过程中比较基础的知识;
- 符合最佳实践: 虽然课程内容基础,但仍然符合最佳实践。
Go 项目开发极速入门课实现的功能
在 Go 项目开发中,开发最多的功能是 Web 服务,Web 服务通常包含 2 类接口类型:RPC 接口和 HTTP 接口。其中 HTTP 接口最多。所以,本课程选择了 Go 项目开发中,最高频的开发功能场景:开发一个对外提供 HTTP 接口的 Web 服务(这里简称为 API 服务器)。
我们有多种方法可以用来构建 API 服务器,很多企业构建 API 时,采用一种叫 REST 风格的方式来构建 API,它虽然调用性能不及 RPC,但维护性和扩展性更好,也更通用。所以,本课程采用 REST 风格来构建 API 服务器。此外,在媒体类型上选择了 JSON,因为它的内容更加紧凑,数据展现形式直观易懂,开发测试都非常方便。REST + JSON,这也是 Go API 开发中很常用的组合。
构建一个简单的 API 服务器很简单,但构建一个生产就绪的 API 服务还有很多工作要做。所谓的生产就绪,至少需要满足如下各方面:
- 需要读取配置文件、记录日志;
- 需要对数据库做增删改查等操作;
- 需要返回错误规范的错误信息;
- 需要进行请求身份验证;
- 需要保证 API 接口的高可用、高性能、高并发;
- …
可以看到要构建一个可以运行在生产环境中的 API 服务器有许多工作要做。本课程希望花尽可能短的时间,来教你了解和学习 Go API 开发的所有环节和功能点。因为本课程是一个极速入门课程,所以课程讲解方式会很干练,直接。不会过多介绍背后的开发原因及相关的知识点。
你会学到什么
本课程是一个实战类的课程,旨在让你花尽可能短的时间,一步一步,毫无门槛的构建出一个 API 服务器。从开发准备到 API 设计,再到 API 实现、测试和部署,每一步都详细介绍了如何去构建。通过本课程的学习,你将学到如下知识点:
知识点很多,跟着课程一节一节进行学习,你将完整的学会如何用 Go 进行项目开发。