文章

Python 教程拆解索引 · 07:项目交付、工具链与表达

#255 · 2026-05-13 · Python 教程拆解

说明:本文基于 Day91-100/番外篇/公开课/更新日志.md 做原创教学整理,不替代原教程本身。

系列导航06 数据智能|07 收官与延展

本篇对应材料Day91-100/番外篇/公开课/更新日志.md

定位更正:这一页现在只作为“收官专题入口”,不再把团队协作、Docker、测试、面试、工具链全塞进一篇教程正文。

本章细教程

已经拆开的源文件

原仓库文件 主题 教程
Day91-100/91.团队项目开发的问题和解决方案.md + 92.Docker容器技术详解.md Git、README、测试入口、Docker 最小交付 07A

下一批应该继续拆的文件

  • Day91-100/94.网络API接口设计.md
  • Day91-100/96.软件测试和自动化测试.md
  • Day91-100/98.项目部署上线和性能调优.md
  • 番外篇/PEP8风格指南.md
  • 番外篇/Python编程惯例.md

很多人走到最后,会形成一个错觉:我会 Python、会 Django、会 FastAPI、会一点爬虫和数据分析,所以应该算学会了。

其实还没有。

因为真正让人从“会写代码”走向“能交付项目”的,是下面这些东西:

  • Git
  • README
  • 测试
  • 部署
  • Docker
  • 文档
  • 表达

所以最后一篇,我们不讲空话,做一个最小交付练习

今天你要做出的结果

你会完成一个最小项目骨架,至少包含:

  1. 一个可运行脚本;
  2. 一个 README;
  3. 一个 Git 仓库;
  4. 一个 Dockerfile;
  5. 一个简单测试入口。

Step 1:先建项目骨架

mkdir -p practice/day07/tiny_project
cd practice/day07/tiny_project
git init
mkdir app tests
touch app/main.py README.md Dockerfile

Step 2:写一个最小可运行程序

编辑 app/main.py

def add(a: int, b: int) -> int:
    return a + b


if __name__ == "__main__":
    print(add(2, 3))

运行:

python app/main.py

输出:

5

Step 3:写 README,而不是只留代码

编辑 README.md



一个最小 Python 项目,用来练习项目交付。

## 运行

```bash
python app/main.py

预期输出

5

很多初学者最忽视的就是这一步,但项目交付里 README 是第一张脸。

## Step 4:给它加一个测试

新建 `tests/test_main.py`:

```python
from app.main import add


def test_add():
    assert add(2, 3) == 5

如果你本机有 pytest,可以安装后运行:

pip install pytest
pytest

这一步对应的就是 Day96 一类内容:不是为了追求测试覆盖率数字,而是为了给重构和交付留安全网。

Step 5:再补一个 Dockerfile

编辑 Dockerfile

FROM python:3.12-slim
WORKDIR /app
COPY app ./app
CMD ["python", "app/main.py"]

构建并运行:

docker build -t tiny-project-demo .
docker run --rm tiny-project-demo

如果你的机器装了 Docker,这一步就能直接跑通。

Step 6:提交第一版

git add .
git commit -m "init tiny project"

到这里你才算真正做完了一个“可以交付、可以描述、可以重现”的最小项目。

这一步为什么比“继续刷知识点”更重要

因为企业和团队看的不只是你会不会写某个函数,而是:

  • 你能不能把项目组织起来;
  • 你能不能让别人跑起来;
  • 你能不能给项目留下说明;
  • 你有没有最基本的测试和发布意识。

这也是为什么 Day91-100番外篇公开课 值得放到最后一起看:它们解决的是“项目交付”和“职业表达”的问题。

番外篇和公开课这时怎么用

到了这个阶段,再看这些材料就不再是“顺手看看”,而是有明确用途:

  • PEP8风格指南.mdPython编程惯例.md:整理代码风格;
  • 英语面试.mdPython数据分析师面试题.md:练表达;
  • 玩转PyCharm.md:补工具链;
  • 年薪50W+的Python程序员如何写代码.md:补工程视角。

本篇练习

  1. tiny_project 增加一个减法函数和对应测试。
  2. README 里增加“项目结构”小节。
  3. 如果你已经会一点 Web,把 app/main.py 换成一个 FastAPI 或 Flask 小服务。

常见坑

  • 坑 1:项目只有代码,没有说明。 别人根本接不住。
  • 坑 2:从来不测。 那你一改就可能退化。
  • 坑 3:觉得 Docker、Git、README 不算“技术”。 项目交付里它们恰恰很技术。

上一篇Python 教程拆解 · 06:数据分析与机器学习
回到起点Python 教程拆解 · 01:按源文件拆,而不是把很多天并成一篇