从零开发企业级Go应用,从设计、开发、测试到部署,带你从零实现高质量的Go应用

你会学到什么?

  1. 掌握 Go 项目的开发流程、思路: 本课程是一个从零开发、一步一步的课程,学习完本课程,你能够清晰的知道如何进行Go项目开发,以及背后的开发思路;
  2. 掌握 Go 应用的核心功能和开发方法  本课程包含了大部分项目开发中用到的核心功能点,学完课程之后,你能够学会如何开发这些核心功能;
  3. 掌握 Go 语言开发的最佳实践: 本课程的实战项目,都是使用最佳实践来构建的,所以学习完,你能够掌握每一个功能点的最佳实践案例;
  4. 生产可用的项目脚手架: 本课程最终会交付一个高质量、生产可用的项目源码,你可以直接拿来二次开发应用于项目中。

课程简介

我们知道,Go 兼具静态编译语言的高性能以及动态语言的高开发效率,拥有很多其他优秀语言特性,例如:简单学习周期短;支持多返回值;具有丰富的内置类型;跨平台等。同时,因为云原生技术栈语言组成中,Go 语言占比 63% ,可以说,如果学会 Go 语言,你可以很轻松地在云原生圈子游走。

而且,2021、2022 年连续两年在腾讯内部,Go 取代 C++ 成为最热门编程语言。其他大厂例如:Google、Facebook、阿里、京东、今日头条、小米、滴滴、七牛云、360 等都在大量使用 Go,并对外放出很多 Go 就业岗位。

Go 持续火爆,很多 IT 从业者都在转 Go,学习 Go。在我看来,学习 Go 语言可以分为 4 个阶段,见下图。

从零开发企业级Go应用,从设计、开发、测试到部署,带你从零实现高质量的Go应用

Go 语言语法简单,你可以在很快时间学习完 Go 的基础语法,学习完 Go 基础语法之后,接下来的阶段一定是编码实战。这时你可以通过阅读优秀开源项目的源码实现,来学习开源项目是如何构建的,例如:Gin、Kubernetes、Etcd、GORM 等。

不过,这种方式更适合具有一定 Go 编程能力的人,虽说项目有丰富的文档,但这些文档,是部署、使用文档,并不是教你如何开发这个项目。你看完之后,能学到很多编程技巧,但这些编程技巧更多是你根据代码理解出来的, 对于一个 Go 初学者,更重要的是搞懂项目背后的思考、开发流程、开发方法等,这些项目并没有介绍。

此时,大家需要一个内容全面、高质量、可以快速学习的 Go 实战课程,来作为学习完 Go 基础语法之后的必修课程。本课程会从第 2 个阶段开始,手把手带你基于 Go 语言开发一款 Web 应用,快速提升 Go 研发能力,成为一个真正的 Go Coder。

通过本课程你能够学习到的技能图谱如下图所示:

从零开发企业级Go应用,从设计、开发、测试到部署,带你从零实现高质量的Go应用

此外本课程还具有以下特点:

  • 清晰的功能开发步骤: 本课程会通过盖楼式的课程安排,教你一步一步构建一个完整的项目,通过这种方式可以使你了解一个企业应用的构建步骤和思路,解决“不知道从哪个地方入手开发”的迷惑;
  • 从理论到最佳实践: 本课程在介绍如何构建一个功能的时候,会介绍我的思考过程,并选择一种最佳构建方法,之后会使用该最佳实践实现该功能;
  • 完整的代码解读: 为了降低你的学习难度,本课程会尽量注释一些难以理解的代码行/块,并介绍相关的知识点;
  • 来自一线企业的开发经验: 我始终觉得课程的精髓,是来自我研发过程中的一些经验和思考,所以课程中,也会大量穿插这类经验和思考,帮助你学习一些 Code 之外的灵魂内容;
  • 一个生产级可用的、高质量的项目源码: 实战项目的每一个功能点构建,都是遵循最佳实践的方式去构建的,并且交付的是一套企业功能就绪的完整源码,可供你学习后,直接拿来二次开发。这种方式不仅能提高你的开发效率,还能够协助你在学习完 Go 基础语法之后,尽快从事 Go 工作需求开发。
  • 课程内容涵盖Go 项目开发的各个阶段: 能够学习到 Go 项目开发的核心阶段,以及每个阶段中的核心开发工作。每个阶段,你可以学习到的内容如下:
    • 设计阶段: 本课程会介绍设计阶段的一些核心设计项,例如:代码规范、版本规范、接口规范、日志规范、错误规范、提交规范以及代码目录结构设计。因为这些规范设计内容较多,本课程不会一一详细介绍,但会给出我已经整理好的规范文档,供你深入学习。通过设计阶段的学习,你能够掌握 Go 项目开发中的一些核心设计点,并采用一种最佳的设计方法,提升整个 Go 项目的质量。
    • 开发阶段: 本课程会从零开始,一步一步教你构建出整个 Go 应用,在构建过程中,会展示一种比较好的功能开发流程,介绍如何实现项目中的重要功能点,背后的思考、以及来自我一线企业项目的开发经验。
    • 测试阶段: 测试阶段会介绍开发中最常需要的测试用例:单元测试、性能测试,会介绍如何编写这些测试用例,也会介绍如何进行性能测试和性能分析,提高整个应用的接口性能。
    • 部署阶段: 部署阶段会直接基于 Kubernetes 集群进行部署。会介绍部署过程中的核心知识和流程,引领进入云原生世界的大门。

课程目录

开篇词:如何精进 Go 开发能力?
实战准备:如何快速部署项目,准备试验环境?
项目设计:如何开发一个易扩展、易维护的 Go 应用?
开发第一步:如何初始化 Go 项目?
应用构建:如何构建一个高质量的 Go 应用?
应用构建:Go 应用如何优雅地读取配置?
基础功能:如何设计日志包,并记录日志?
基础功能:如何给应用添加版本信息,方便排查问题?
基础功能:如何开发一个简单的 Web 服务?
基础功能:Web 服务如何添加中间件、跨域、优雅关停功能?
基础功能:业务如何返回优雅的错误码?
业务架构:如何设计、开发简洁架构?
应用安全:应用认证功能如何设计、实现?
应用安全:应用授权功能如何设计、实现?
应用安全:如何使用 HTTPS 协议通信,确保通信安全?
gRPC 服务:如何实现一个 gRPC 服务器?
项目测试:Go 代码测试种类有哪些,如何编写测试用例?
性能测试:如何进行代码性能分析?提升代码性能的手段有哪些?
性能测试:如何测试、分析并优化 API 接口性能?
项目管理:如何进行静态代码检查?
项目管理:如何通过 Makefile 来高效管理你的项目?
应用部署:应用软件传统部署方案介绍
应用部署:敲开云原生世界大门,云原生部署方案设计
应用部署:云原生部署实战入门
如何开发一个优雅的 Go 应用?
开发技巧:Go 常用开发技巧分享
代码规范:Go 编码规范
鸟瞰 Go 语言:Go 语言生态圈介绍
结果导向:Go 开发者如何找工作?
附录

作者介绍

孔令飞,腾讯云容器技术专家、前联想云研发主管、前 Red Hat 高级研发工程师。拥有超过7 年的 Go 项目开发和管理经验。除此之外,还在云计算领域有非常丰富的实践经验,对Kubernetes/Docker、Serverless、微服务等技术有深入的理解。

(0)
上一篇 2023年3月7日 上午9:31
下一篇 2023年3月7日 下午8:24

相关推荐

发表回复

登录后才能评论