:::warning 📌 施工中 :::

欢迎阅读。我是本教程编者V3n0

教程的初衷

我不想让这个教程变成某某语言,某某框架的速通指南。这个教程的目的不是给你一堆可以直接复制的代码,而是带你走过从不会到能独立解决问题的完整路径。

对于现实场景的后端开发,真正重要的不是死记某个框架的 API,而是通用的后端思维与解决问题的能力: 后端开发通用的核心概念,从业务需求入手的设计思路,如何通过查阅文档来上手一个从来没有用过的框架/语言,如何组织代码结构,如何 debug…

我不希望读者在跟完一个教程后,脱离示例代码就无从下手。相反,我希望你能在面对陌生问题时,凭借后端开发的共通思路,结合搜索引擎和文档,独立构建出可运行、可维护的功能。

有人会问,后端教程非常非常多,为什么我不直接在这里推荐教程呢?

对于很多后端新手,我主要担心的问题有几点:

  1. 过度依赖某一语言/框架,离开它就举步维艰。
  2. 过度依赖教程,陷入教程的死循环。
  3. 缺少“学习方法”的传授,只教结果,不教过程。

我希望补足的就是这些点。对于一些概念性问题,我会尽可能用通俗的方法讲懂。但是对于一切具体的代码示例,我会完整演示如何查阅文档、定位关键 API、逐步推导到可运行代码,而不是直接贴出最终答案。我会假设自己从未使用过教程中提到的框架或库,这样的演示更接近真实开发中遇到的场景。现实里,你很少会记住所有 API,但快速阅读和理解文档的能力是长期有效的核心竞争力。

本教程不会把每一个概念都讲的非常深入刁钻。对于一些进阶的知识,我会以拓展阅读的形式呈现。

希望这个教程能帮助你把现代后端开发的关键知识点串联起来,为后续的深入学习打下完整框架。

教程技术栈选择

入门篇将会使用 Python FastAPI SQLModel。

  • Python 是一门足够新手友好的后端语言,语法简单,生态丰富。

  • FastAPI, SQLModel 有优秀的官方文档和新手友好设计。FastAPI 和 SQLModel 的文档本身就是足够优秀的后端教程。

在入门篇我希望尽可能减少语言上的门槛,快速讲清现代后端开发的各种基本概念,熟悉开发流程。

进阶篇会使用 Go Gin GORM。

  • Go 语言语法简洁,可读性高,特别适合讲解底层实现和架构设计。

  • Go 天生就很适合微服务架构,可自然过渡到更复杂的后端场景。

在这一阶段,会讲解后端框架的构建原理、应用的底层设计理念,以及缓存、消息队列、微服务、云原生等更高阶的主题。

教程前置知识需求

  1. 掌握至少一门编程语言基础。Python、JavaScript、Java、Go 都可以,但不只是会语法,更重要的是理解函数,理解类和对象,能灵活使用基础数据结构(列表、字典、集合等),理解控制流(循环、分支)、递归、异常处理。这里推荐一个十分权威的神课 CS61A。本人也是通过 CS61A 打开了编程的大门。并且语言使用 Python ,和入门篇衔接上了。

  2. 基础的命令行使用能力。后端学习过程中会频繁接触命令行(CLI),比如:创建/进入目录、运行脚本;安装软件包、运行服务器;使用 Git 进行版本控制;修改配置文件等。虽然不是必须“精通”,但你至少要不排斥和恐惧命令行、能基本操作它。

  3. 基本的英文阅读能力。后端世界几乎一切文档、错误提示、API参考资料……全是英文的,本教程的 SQLModel 文档同样是英文。你不需要能流利写作或口语,但你需要:能读懂开发文档;能大致看懂报错信息;能 Google/Stack Overflow 查英文资料。如果你暂时没有练成,也不用担心,善用翻译工具就行。比如沉浸式翻译浏览器插件。

  4. 畅通的网络环境。后端开发离不开 GitHub、Stack Overflow、官方文档、npm/pip 等包管理平台。如果你不能流畅访问这些网站,找学长私聊琢磨下。

  5. 提问的智慧。你可能听说过《提问的智慧》这篇经典文章。这个文章的语气对新手有点压迫感,有种高高在上令人生畏的感觉,至少我是新手时是这么想的,看完感觉自己都不配提问了。但它确实讲的很好。虽然标题是提问的智慧,但实际上它不只是告诉你怎么问问题,更是在潜移默化地教你怎么分析问题、定位问题,最终自己解决问题,而后者我认为反而是更重要的。你可以在无聊的时候看一看这篇文章。

如何运用本教程

  1. 主动学习:遇到不懂的内容时,第一步不是跳过,而是搜索、查阅文档、比对示例。

  2. 提问方法:参考提问的智慧。它不仅教你如何提问,更能训练你分析、定位、并独立解决问题的能力。

  3. 文档跟读:教程中会多次引导你进入官方文档查找答案,请务必自己操作,而不是只看结果。

  4. 完成作业:多数模块都会布置小作业,建议动手完成。

  5. 拓展阅读:会提供相关资源,按需阅读以拓宽知识面。

  6. 记录学习:建议尝试搭建自己的博客,记录每一步的思考过程和遇到的问题。

  7. 团队合作项目:入门篇和进阶篇教程末尾会安排一个综合性 Project,推荐小组合作完成,以学习协作开发和项目管理,并且任务量可能不适合一个人完成。