Go 语言项目开发实战
孔令飞
腾讯云资深工程师,前Red Hat、联想云工程师
新⼈⾸单¥69.9
3558 人已学习
课程目录
已更新 36 讲 / 共 54 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 从 0 开始搭建一个企业级 Go 应用
免费
课前必学 (3讲)
01 | IAM系统概述:我们要实现什么样的 Go 项目?
02 | 环境准备:如何安装和配置一个基本的 Go 开发环境?
03 | 项目部署:如何快速部署 IAM 系统?
实战第 1 站:规范设计 (8讲)
04 | 规范设计(上):项目开发杂乱无章,如何规范?
05 | 规范设计(下):commit 信息风格迥异、难以阅读,如何规范?
06 | 目录结构设计:如何组织一个可维护、可扩展的代码目录?
07 | 工作流设计:如何设计合理的多人开发模式?
08 | 研发流程设计(上):如何设计 Go 项目的开发流程?
09 | 研发流程设计(下):如何管理应用的生命周期?
10 | 设计方法:怎么写出优雅的 Go 项目?
11 | 设计模式:Go常用设计模式概述
实战第2站:基础功能设计或开发 (12讲)
12 | API 风格(上):如何设计RESTful API?
13 | API 风格(下):RPC API介绍
14 | 项目管理:如何编写高质量的Makefile?
15 | 研发流程实战:IAM项目是如何进行研发流程管理的?
16 | 代码检查:如何进行静态代码检查?
17 | API 文档:如何生成 Swagger API 文档 ?
18 | 错误处理(上):如何设计一套科学的错误码?
19 | 错误处理(下):如何设计错误包?
20 | 日志处理(上):如何设计日志包并记录日志?
21 | 日志处理(下):手把手教你从 0 编写一个日志包
22 | 应用构建三剑客:Pflag、Viper、Cobra 核心功能介绍
23 | 应用构建实战:如何构建一个优秀的企业应用框架?
实战第3站:服务开发 (10讲)
24 | Web 服务:Web 服务核心功能有哪些,如何实现?
25 | 认证机制:应用程序如何进行访问认证?
26 | IAM项目是如何设计和实现访问认证功能的?
27 | 权限模型:5大权限模型是如何进行资源授权的?
28 | 控制流(上):通过iam-apiserver设计,看Web服务的构建
29|控制流(下):iam-apiserver服务核心功能实现讲解
30 | ORM:CURD 神器 GORM 包介绍及实战
31 | 数据流:通过iam-authz-server设计,看数据流服务的设计
32 | 数据处理:如何高效处理应用程序产生的数据?
33 | SDK 设计(上):如何设计出一个优秀的 Go SDK?
特别放送 (2讲)
特别放送 | 给你一份清晰、可直接套用的Go编码规范
特别放送 | 给你一份Go项目中最常用的Makefile核心语法
Go 语言项目开发实战
15
15
1.0x
00:00/00:00
登录|注册

33 | SDK 设计(上):如何设计出一个优秀的 Go SDK?

你好,我是孔令飞。接下来的两讲,我们来看下如何设计和实现一个优秀的 Go SDK。
后端服务通过 API 接口对外提供应用的功能,但是用户直接调用 API 接口,需要编写 API 接口调用的逻辑,并且需要构造入参和解析返回的数据包,使用起来效率低,而且有一定的开发工作量。
在实际的项目开发中,通常会提供对开发者更友好的 SDK 包,供客户端调用。很多大型服务在发布时都会伴随着 SDK 的发布,例如腾讯云很多产品都提供了 SDK:
既然 SDK 如此重要,那么如何设计一个优秀的 Go SDK 呢?这一讲我就来详细介绍一下。

什么是 SDK?

首先,我们来看下什么是 SDK。
对于 SDK(Software Development Kit,软件开发工具包),不同场景下有不同的解释。但是对于一个 Go 后端服务来说,SDK 通常是指封装了 Go 后端服务 API 接口的软件包,里面通常包含了跟软件相关的库、文档、使用示例、封装好的 API 接口和工具。
调用 SDK 跟调用本地函数没有太大的区别,所以可以极大地提升开发者的开发效率和体验。SDK 可以由服务提供者提供,也可以由其他组织或个人提供。为了鼓励开发者使用其系统或语言,SDK 通常都是免费提供的。
通常,服务提供者会提供不同语言的 SDK,比如针对 Python 开发者会提供 Python 版的 SDK,针对 Go 开发者会提供 Go 版的 SDK。一些比较专业的团队还会有 SDK 自动生成工具,可以根据 API 接口定义,自动生成不同语言的 SDK。例如,Protocol Buffers 的编译工具 protoc,就可以基于 Protobuf 文件生成 C++、Python、Java、JavaScript、PHP 等语言版本的 SDK。阿里云、腾讯云这些一线大厂,也可以基于 API 定义,生成不同编程语言的 SDK。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
该试读文章来自付费专栏《Go 语言项目开发实战》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥69.9
立即订阅
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
返回
顶部