文章

Python 首批细教程 · 07A:别只会写代码,做一遍 Git + README + Docker 的最小交付

#277 · 2026-05-13 · Python 教程拆解
Reading Path / PYTHON 先抓主张,再转成行动 #277 · Python 教程拆解 · 读完进入产品或下一篇

承上启下:在上一篇《Python 首批细教程 · 06B:用一个小例子彻底看懂 kNN 怎么分类》中,我们完成了 scikit-learn 下的 kNN 分类模型训练与预测,标志着技术核心逻辑的闭环。然而,无论算法或程序写得多么精妙,如果无法标准化地交付给团队或用户,它就仅仅是停留在开发者本机的实验脚本。作为整个拆解系列的最后一篇,我们将以工程交付的视角收官,通过动手创建一个包含 Git 仓库初始化、README 说明、单元测试与 Dockerfile 容器化打包的完整最小项目,跑通规范交付的最后一公里。

对应原仓库Day91-100/91.团队项目开发的问题和解决方案.md92.Docker容器技术详解.md

已提供完整示例工程/tutorial-assets/python-100-days/07a-git-readme-docker/(站点源码路径:blog-src/static/tutorial-assets/python-100-days/07a-git-readme-docker/

学到后面,真正的门槛不是“还能不能再多背一个库”,而是:你能不能把别人接得住的项目交出去。

Step 1:起仓库

cd blog-src/static/tutorial-assets/python-100-days/07a-git-readme-docker
git init

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

Step 3:写 README

README.md



一个最小 Python 项目,用来演示交付流程。

## 运行

```bash
python app/main.py

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

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

Step 6:提交

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

这一步对应原仓库哪部分

  • Git:对应团队协作和版本控制。
  • Docker:对应环境复制和交付。
  • README / 测试:对应“让项目能被别人接住”。

进阶任务

  1. 给项目增加 sub(a, b)
  2. 给 README 增加“项目结构”。
  3. 给 Dockerfile 再补一个 requirements.txt 工作流。

常见坑

  • 只有代码,没有运行说明。
  • 有功能,没有测试入口。
  • 环境完全依赖“作者电脑能跑”。

💡 下一篇预告:伴随着 Git、README 和 Docker 最小交付的完成,我们为期 100 天的 Python 教程拆解系列迎来了圆满收官。回顾整个技术链路,从微观语法地基到宏观架构交付,每一个环节都在走向标准化与工程化。而这一标准化趋势正在被大厂以更宏观的形态推动。在下一篇《Google Skill 标准化与 AI 安全新视角》中,我们将把目光投向当下最前沿的 AI 生态,探讨 Google 近期开源的 Agent Skill 技能包如何为智能体交互制定标准协议,并审视随之而来的 AI 安全新边界。