开发环境基础¶
学习目标¶
学完本章后,学习者应该能够:
- 理解开发环境对后端学习的重要性。
- 掌握命令行、Git、编辑器、HTTP 调试工具的基本用途。
- 能启动一个本地服务,并用工具验证它是否真的可访问。
- 理解“本地能跑”和“环境可复现”的差别。
为什么开发环境很重要¶
后端工程师每天都在和环境打交道:
- 本地开发环境。
- 测试环境。
- 预发环境。
- 生产环境。
- CI/CD 构建环境。
- Docker 容器环境。
- Kubernetes 集群环境。
很多问题不是代码逻辑错,而是环境不一致:
- 本地有配置,测试环境没有。
- 本地数据库版本和线上不同。
- 本地端口没冲突,服务器上端口被占用。
- 本地文件路径存在,容器里不存在。
- 本地时区正确,容器里时区不一致。
所以从第一天开始,就要养成“环境可复现”的习惯。
命令行基础¶
后端工程师必须能使用命令行完成基本操作。
常见任务:
- 查看当前目录。
- 创建、移动、删除文件。
- 查看环境变量。
- 启动程序。
- 查看端口监听。
- 查看进程。
- 查看日志。
重点不是记住所有命令,而是知道遇到问题时该查什么。
Git 基础¶
Git 是后端工程师协作的基础。
必须掌握:
git status:查看工作区状态。git diff:查看修改内容。git add:暂存修改。git commit:提交修改。git log:查看历史。git branch:查看分支。git switch:切换分支。git pull:拉取远程更新。git push:推送远程分支。
一个基本工作流:
在团队中,Git 不只是保存代码,更是记录协作过程。好的提交信息应该说明本次修改解决了什么问题。
编辑器与工程目录¶
推荐学习者至少熟悉一个主力编辑器,例如 VS Code 或 GoLand。
需要掌握:
- 打开项目目录。
- 全局搜索文件。
- 跳转定义。
- 查看 Git 变更。
- 运行终端命令。
- 格式化代码。
- 配置 Go 插件。
- 查看测试结果。
后端项目通常不是单文件脚本,而是一组目录和模块。学习时要尽早习惯从项目结构理解代码。
HTTP 调试工具¶
后端服务最常见的入口是 HTTP API。调试 HTTP 可以使用:
- 浏览器。
curl。- Postman。
- Apifox。
- HTTPie。
- IDE 内置 HTTP Client。
例如:
重点观察:
- 状态码。
- 响应头。
- 响应体。
- 请求耗时。
- 错误信息。
Docker 本地环境初识¶
Docker 可以让学习者用更稳定的方式启动数据库、Redis、消息队列等依赖。
例如启动 PostgreSQL 和 Redis 时,不必在本机手动安装多个服务,而可以使用 Docker Compose 管理。
本阶段不要求深入 Docker 原理,只需要理解:
- 镜像是运行环境的模板。
- 容器是镜像运行起来后的实例。
- 端口映射决定本机如何访问容器服务。
- volume 用来持久化数据。
- compose 文件用来描述多个服务。
后续云原生章节会深入 Docker 和 Kubernetes。
必会检查方法¶
当你启动一个本地后端服务后,不要只看控制台有没有报错,要做完整验证:
- 进程是否存在。
- 端口是否监听。
- HTTP 请求是否返回。
- 日志是否正常输出。
- 配置是否加载正确。
常见误区¶
- 误区一:控制台显示启动成功,就一定能访问。
端口可能没监听、监听地址可能不对、防火墙可能拦截、服务可能卡在初始化。
- 误区二:本地装得越多越好。
环境越随意,越难复现。能用 Docker Compose 固化的依赖,尽量固化。
- 误区三:不会命令行也能做后端。
可以短期写代码,但很难排查真实问题。
实战任务¶
步骤一:启动当前 MkDocs 项目。
步骤二:用浏览器访问。
步骤三:用命令行验证。
步骤四:记录观察结果。
- 哪个进程监听了 8000 端口?
- HTTP 状态码是多少?
- 如果访问失败,你会先检查什么?
面试题¶
1. 为什么后端工程师必须熟悉命令行?¶
参考答案
后端服务通常运行在服务器、容器或 CI/CD 环境里,很多操作没有图形界面。命令行可以用来启动服务、查看进程、检查端口、读取日志、验证 HTTP 请求、管理 Git、排查网络和定位环境问题。
熟悉命令行不是为了炫技,而是为了在问题发生时能快速验证事实。例如服务打不开时,可以用命令确认进程是否存在、端口是否监听、HTTP 是否返回,而不是只凭感觉猜。
2. git status 和 git diff 分别解决什么问题?¶
参考答案
git status 用来查看当前工作区和暂存区的整体状态,例如哪些文件被修改、哪些文件未跟踪、哪些修改已经暂存。它回答的是“现在仓库处于什么状态”。
git diff 用来查看具体修改内容。它回答的是“到底改了什么”。提交前通常应该先看 git status 确认范围,再看 git diff 检查内容,避免把无关修改提交进去。
3. 如何确认一个本地服务真的启动成功?¶
参考答案
不能只看控制台输出“启动成功”。至少要确认进程存在、端口正在监听、监听地址正确、HTTP 请求能返回预期状态码、日志没有明显错误,必要时还要检查配置和依赖是否连接成功。
例如在 Windows 上可以用 netstat -ano | findstr :8080 查看端口,用 Invoke-WebRequest 请求健康检查接口。在 Linux 或 macOS 上可以用 ss -lntp 和 curl。
4. Docker 对本地开发环境有什么价值?¶
参考答案
Docker 可以把数据库、Redis、消息队列等依赖用容器方式启动,减少本机手动安装和版本不一致的问题。配合 Docker Compose,可以把多个依赖服务写成一份配置,让团队成员用相同方式启动本地环境。
它的核心价值是可复现、易清理、隔离性好。尤其是教学项目中,Docker 能让学习者更快获得一致的实验环境。
5. 本地环境和生产环境不一致可能带来哪些问题?¶
参考答案
可能导致本地正常、线上失败。例如操作系统不同、数据库版本不同、环境变量缺失、时区不一致、文件路径不同、端口绑定不同、容器资源限制不同、第三方服务地址不同,都可能引发问题。
工程上要通过配置管理、Docker、CI/CD、自动化测试和部署规范来减少环境差异。遇到问题时,也要把“环境差异”作为重要排查方向。