前言
这份后端学习路线源自 roadmap.sh,是全球开发者广泛参考的后端技术学习指南。它清晰梳理了从基础原理到架构设计的核心知识点,并标注了学习优先级,帮助你在后端技术体系中高效构建知识体系,避免盲目学习。(参考图见尾部)
图例说明
在开始之前,请先了解图中标记的含义,这将帮助你判断学习的优先级:
❤️ 个人推荐 / 意见:核心必学内容,是后端开发的基石,必须掌握。
✅ 替代选项 — 选择此项或是紫色项目:选其一深入即可,通常是不同的技术方案或框架,无需全部学习。
☑ 不必严格按照路线图的顺序(随时可学):可灵活安排学习顺序,属于进阶或补充性知识。
⚫ 我不推荐:优先级较低或可跳过,在当前技术环境下必要性不高。
互联网基础与前端知识 🌐
后端开发离不开对互联网和前端的理解,这是构建服务的基础。
❤️ 互联网是如何运作的?
❤️ 什么是 HTTP?
❤️ 浏览器及其工作原理?
❤️ DNS 及其工作原理?
❤️ 什么是域名 (Domain Name)?
❤️ 什么是主机托管 (Hosting)?
✅ HTML
☑ CSS
❤️ JavaScript
操作系统和基础知识 💻
操作系统是后端服务运行的根基,掌握其原理能让你写出更高效、稳定的代码。
❤️ 终端机的使用
❤️ 操作系统如何运作
❤️ 行程管理(Process Management)
❤️ 执行绪(Thread)和并行(Concurrency)
❤️ 基础的终端机指令(grep, awk, sed, lsof, curl, wget, tail, head, less, find, ssh, kill)
❤️ 记忆体管理
❤️ 行程间通讯(IPC)
❤️ I/O 管理
❤️ POSIX 的基础认知(stdin, stdout, stderr, pipes)
❤️ 基础的网络概念
学习一门语言 📚
选择一门后端语言深入学习,理解其运行时特性(如并行、内存模型)是进阶的关键。
✅ Java
✅ C#
✅ PHP
☑ Rust
☑ Go
❤️ JavaScript
❤️ Python
✅ Ruby
版本控制系统 (VCS) 🛠️
现代后端开发离不开版本控制,它是团队协作和代码管理的核心工具。
☑ 版本控制系统的定义及使用价值
❤️ Git 的基本用法
☑ 仓库代管(Repo Hosting)服务
✅ 注册账号并学习使用 GitHub
❤️ GitHub
☑ GitLab
☑ Bitbucket
数据库 🗄️
数据库是后端服务存储数据的核心,关系型与 NoSQL 数据库各有适用场景。
关系式数据库
❤️ PostgreSQL
✅ MySQL
✅ MariaDB
☑ MS SQL
☑ Oracle
NoSQL 数据库
❤️ 文件资料库(MongoDB, CouchDB)
✅ 栏位资料库(Cassandra)
☑ 时序型资料库(InfluxDB, TimescaleDB)
☑ 即时资料库(Firebase, RethinkDB)
更多关于资料库
❤️ ORM(物件关系映射)
❤️ ACID
❤️ 交易(Transaction)
❤️ N+1 问题
❤️ 资料库正规化(Normalization)
❤️ 索引(Index)及其运作方式
☑ 资料复写(Replication)
☑ 分片(Sharding)策略
☑ CAP 定理
学习 API 相关知识 🚀
API 是后端服务对外交互的核心,掌握不同类型的 API 设计与实现至关重要。
❤️ Cookie Based
❤️ OAuth
❤️ Basic Authentication
❤️ Token Authentication
❤️ JWT
❤️ OpenID
☑ SAML
☑ HATEOAS
❤️ OpenAPI 规范以及 Swagger
❤️ 认证(Authentication)
❤️ REST
☑ 阅读 Roy Fielding 的论文
☑ JSON API
☑ SOAP
❤️ gRPC
缓存 (Caching) 🚀
缓存是提升后端服务性能的关键手段,合理使用缓存能显著降低数据库压力。
❤️ Redis
✅ Memcached
☑ CDN
☑ 伺服器端(Server Side)
☑ 用户端(Client Side)
网络安全知识 🔒
安全是后端服务不可忽视的环节,掌握常见安全机制与风险防范是必备能力。
❤️ MD5 以及为什么不要使用它
❤️ SHA 家族
☑ scrypt
❤️ bcrypt
❤️ 杂凑(Hashing)演算法
❤️ HTTPS
❤️ 内容安全政策(CSP)
❤️ CORS
❤️ SSL/TLS
❤️ OWASP 安全风险
测试 (Testing) ✅
测试是保障后端服务质量的核心,不同类型的测试覆盖不同的质量维度。
❤️ 整合测试(Integration Testing)
❤️ 单元测试(Unit Testing)
❤️ 功能测试(Functional Testing)
☑ CI/CD(持续整合/持续交付)
设计和开发原则 📐
遵循良好的设计原则能让代码更易维护、扩展,是资深后端开发者的核心素养。
☑ 四人帮(GOF)设计模式
☑ 领域驱动设计(DDD)
☑ 测试驱动开发(TDD)
❤️ SOLID
❤️ KISS
❤️ YAGNI
❤️ DRY
搜索引擎(Search Engine)
❤️ Elasticsearch
✅ Solr
架构模式 🏗️
架构模式决定了系统的扩展性与维护性,不同场景下选择合适的架构至关重要。
☑ 整合型*(Monolithic)应用程式
❤️ 微服务(Microservice)
☑ 服务导向架构(SOA)
☑ CQRS 和事件来源模式
☑ 无伺服器(Serverless)
*译注:又译作单体式
容器化 vs 虚拟化 (Containerization / Virtualization) 🐳
容器化技术简化了部署与环境一致性,是现代后端部署的主流方式。
❤️ Docker
⚫ rkt
⚫ LXC
讯息代理*(Message Broker)
❤️ RabbitMQ
✅ Kafka
*译注:又译作讯息中介
GraphQL 📊
GraphQL 提供了更灵活的 API 查询方式,适用于复杂数据场景的后端服务。
❤️ Apollo
✅ Relay Modern
图资料库* (Graph Database) 🗄️
图资料库擅长处理复杂的关联数据,适用于社交网络、知识图谱等场景。
❤️ Neo4j
*译注:又译作图形资料库、图数据库
WebSocket 🔌
WebSocket 实现了双向实时通信,是实时应用(如聊天、直播)的核心技术。
缓解策略(Mitigation Strategy)
☑ 从容退化(Graceful Degradation)
☑ 请求频率限制(Throttle)
☑ 背压(Backpressure)
☑ 负载转移(Loadshifting)
☑ 断路器(Circuit Breaker)
*译注:又译作反压
网页服务器 (Web Server) 🌐
网页服务器是后端服务的入口,选择合适的服务器能提升服务性能与稳定性。
❤️ Nginx
✅ Apache
☑ Caddy
☑ MS IIS
规模化建设 📈
当服务用户量增长时,规模化建设是保障服务可用性与性能的关键。
❤️ 迁移策略(Migration Strategy)
❤️ 水平 vs 垂直扩展(Horizontal vs Vertical Scaling)
以可观测性(Observability)为前提进行建设
☑ 仪表(Instrumentation)
☑ 监测(Monitoring)
☑ 遥测(Telemetry)
☑ 指标纪录以及其他可观测的项目
☑ 可以在出错时帮助你除错和解决问题
持续学习 📖
后端技术生态迭代迅速,从云原生到 Serverless,持续学习新工具与最佳实践是保持竞争力的核心。
图
信息来源
台湾正体中文翻译原作者:goodjack/developer-roadmap-chinese / littlegoodjack
路线图完整版及更多资源:http://roadmap.sh