Python 首批细教程 · 07A:别只会写代码,做一遍 Git + README + Docker 的最小交付
承上启下:在上一篇《Python 首批细教程 · 06B:用一个小例子彻底看懂 kNN 怎么分类》中,我们完成了
scikit-learn下的 kNN 分类模型训练与预测,标志着技术核心逻辑的闭环。然而,无论算法或程序写得多么精妙,如果无法标准化地交付给团队或用户,它就仅仅是停留在开发者本机的实验脚本。作为整个拆解系列的最后一篇,我们将以工程交付的视角收官,通过动手创建一个包含 Git 仓库初始化、README 说明、单元测试与 Dockerfile 容器化打包的完整最小项目,跑通规范交付的最后一公里。
对应原仓库:
Day91-100/91.团队项目开发的问题和解决方案.md、92.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 / 测试:对应“让项目能被别人接住”。
进阶任务
- 给项目增加
sub(a, b)。 - 给 README 增加“项目结构”。
- 给 Dockerfile 再补一个
requirements.txt工作流。
常见坑
- 只有代码,没有运行说明。
- 有功能,没有测试入口。
- 环境完全依赖“作者电脑能跑”。
💡 下一篇预告:伴随着 Git、README 和 Docker 最小交付的完成,我们为期 100 天的 Python 教程拆解系列迎来了圆满收官。回顾整个技术链路,从微观语法地基到宏观架构交付,每一个环节都在走向标准化与工程化。而这一标准化趋势正在被大厂以更宏观的形态推动。在下一篇《Google Skill 标准化与 AI 安全新视角》中,我们将把目光投向当下最前沿的 AI 生态,探讨 Google 近期开源的 Agent Skill 技能包如何为智能体交互制定标准协议,并审视随之而来的 AI 安全新边界。