1、课程介绍与目标:本课程的意义、适用人群、前置知识,以及学习路径概览
说实话,我做了十几年后端,见过太多团队在接口选型上翻车。有的项目用了RESTful,结果数据量一大,性能卡得不行;有的硬上gRPC,结果前端同学连调试环境都搭不起来。其实选对接口范式,真不是一拍脑袋就能决定的。
这门课,就是要把我在几个大型项目里踩过的坑、总结出的经验,系统地讲给你听。咱们不讲虚的,直接上干货。
本课程的意义
你可能觉得,接口不就是“客户端怎么调服务端”的问题吗?对,但问题在于:
- 性能差异:RESTful 基于 HTTP/1.1 和 JSON,gRPC 基于 HTTP/2 和 Protobuf。同样一个查用户列表的接口,gRPC 可能快 3~5 倍。
- 开发体验:RESTful 随手就能用 curl 调,gRPC 得先装 protoc、写 .proto 文件。
- 生态兼容:浏览器天生爱 JSON,但 IoT 设备可能更适合二进制。
我参与过一个智能家居平台项目,初期选的是 RESTful,后来设备一多,带宽和延迟都爆了。切换成 gRPC 后,数据包小了 60%,延迟降了 40%。但代价是前端团队花了两周改 SDK。你看,选型没有银弹,只有Trade-off。
这门课会帮你建立一套决策框架,让你在面对新项目时,能快速拍板:用 RESTful 还是 gRPC,或者混合。
适用人群
如果你符合下面任意一条,这门课就是为你准备的:
| 角色 | 典型痛点 |
|---|---|
| 后端开发(1~5年) | 被要求同时提供 RESTful 和 gRPC 接口,不知道怎么权衡;或者写 gRPC 时总遇到死线、超时问题。 |
| 架构师 / 技术负责人 | 需要在技术方案评审时给出选择理由,说服团队和老板。 |
| 全栈 / 前端工程师 | 想理解后端接口选型背后的原理,方便前后端联调时沟通。 |
| 技术管理者 | 评估团队技术栈演进,需要知道引入 gRPC 的性价比和迁移成本。 |
嗯,这里要注意:如果你是刚入门不到半年的新手,建议先补一下 HTTP 基础协议和 Thrift/Protobuf 的基本概念,不然直接上实战会有点吃力。
前置知识
我不要求你什么都会,但下面这几项最好提前掌握:
- HTTP 协议基础:知道 GET/POST/PUT/DELETE,明白状态码 200/404/500 的意义。
- 会用一门后端语言:Java、Go、Node.js 都行,因为课程里会有代码示例(我会用 Go 和 Java 双向演示)。
- 了解 JSON 和 XML:知道怎么序列化、反序列化。
- 命令行基础:会装 protoc 和 grpcurl 这样的工具。
如果你没用过 Protobuf 也没关系,我会在第 3 章专门花一节讲它的核心概念。我曾经带过一个实习生,他完全不会 .proto 语法,但跟着课程一步步走,两周后就能自己写 gRPC 服务了。
学习路径概览
下面这张图是整个课程的知识结构,你可以把它当路线图用。我建议你先花 5 分钟扫一遍,心里有个底。
整个课程分成三个阶段:
- 基础篇(1~3章):带你搞懂 RESTful 和 gRPC 各自的设计哲学、通信模型。
- 对比篇(4~8章):从带宽、延迟、序列化效率、流支持、工具链等维度做硬碰硬对比。
- 实战篇(9~30章):包括决策矩阵、混合架构、迁移策略、性能调优、面试常见问答。
我个人建议的时间投入是:每天 1 小时,持续 3 周。如果你能跟完所有章节并动手敲代码,基本就能独立给出选型建议了。
小提示:每章结尾都配了“自测思考题”和“动手实验”,别偷懒跳过。我曾经带过的学员里,凡是认真做了实验的,面试时都能侃侃而谈,而只看了理论的同学,一问细节就露怯。
课程的终极目标:让你在接到新项目需求时,10 分钟内就能画出接口选型决策树,并且有足够的数据和案例来支撑你的选择——不管是面对产品经理还是技术总监。
好了,基础介绍就到这儿。咱们直接进正文,先从 RESTful 的本质讲起。