多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

modern-software-dev-assignments Week 5 起手项目:用 FastAPI + SQLite + 静态前端搭建 Agent 驱动的极简全栈实验场

modern-software-dev-assignments Week 5 起手项目:用 FastAPI + SQLite + 静态前端搭建 Agent 驱动的极简全栈实验场 示例工程【免费下载链接】modern-software-dev-assignmentsAssignments for CS146S: The Modern Software Dev (Stanford University Fall 2026/2025)项目地址https://gitcode.com/GitHub_Trending/mo/modern-software-dev-assignments点击查看免费下载本文围绕仓库中 week5/README.md 展开讲解这套面向自主编码 Agentautonomous coding agents实验的极简全栈起手应用后端基于 FastAPI SQLiteSQLAlchemy前端为无需 Node 工具链的静态页面配套 pytest 最小测试集、black ruff 格式化和预提交钩子以及一套供 Agent 驱动的开发任务清单。读完本文你将掌握该项目的完整启动流程、目录结构与配置方式理解后端启动、建表与种子数据注入的底层实现并能在此基础上直接开展 Agent 工作流含 Warp 多 Agent 协作的实验。项目定位为 Agent 实验而生的最小全栈 Starter按 week5/README.md 的说明这是一个 minimal full‑stack starter核心目标是让开发者或开发 Agent拥有一个足够小、足够清晰、可快速重置的“实验场”其技术选型刻意保持克制FastAPI 后端 SQLiteSQLAlchemy ORM无需独立数据库服务单文件 SQLite 即可持久化静态前端由 FastAPI 直接托管不需要 Node 工具链即可运行最小测试集pytest覆盖核心 API 行为方便 Agent 验证改动Pre-commitblack ruff保持代码风格一致减少 Agent 引入的格式噪声任务清单Tasks见 week5/docs/TASKS.md用于练习 Agent 驱动的工作流。配套的 week5/assignment.md 进一步说明了它的用途作为 Warp Agentic Development Environment 与多 Agent 工作流的 playground实验范围被严格限定在week5/内的 backend、frontend、logic 与 tests。快速开始QuickstartREADME 给出了三步起手流程其中虚拟环境创建可选用venv或conda两种方式。方式一venvREADME 默认示例cd /path/to/modern-software-dev-assignments python -m venv .venv source .venv/bin/activate pip install -e .[dev]注README 中的cd路径是作者本机路径/Users/mihaileric/...请替换为你克隆仓库后的实际根目录。方式二condaassignment.md 示例conda activate cs146s安装可编辑依赖-e .[dev]会依据仓库根目录的 pyproject.toml 安装运行时依赖与 dev 依赖测试、格式化等工具。可选安装 pre-commit 钩子pre-commit install钩子配置位于 week5/pre-commit-config.yaml包含 black24.4.2、ruffv0.4.8带--fix、end-of-file-fixer 与 trailing-whitespace 四个钩子。启动应用须在week5/目录下cd week5 make run启动成功后http://localhost:8000—— 前端页面http://localhost:8000/docs—— FastAPI 自动生成的交互式 API 文档OpenAPI/Swagger UI。目录结构week5/ ├── backend/ # FastAPI 应用 ├── frontend/ # 由 FastAPI 托管的静态 UI ├── data/ # SQLite 数据库 种子数据 ├── docs/ # 供 Agent 驱动工作流使用的 TASKS ├── Makefile # run / test / format / lint / seed 等目标 └── pre-commit-config.yaml # black ruff 预提交钩子后端内部再细分为路由与业务层backend/app/routers/存放notes.py与action_items.py两个路由模块backend/app/services/extract.py存放从文本提取 Action Item 的纯逻辑函数backend/app/models.py、schemas.py、db.py分别负责 ORM 模型、Pydantic 校验模型与数据库会话管理。后端实现速览启动、建表与种子数据从 week5/backend/app/main.py 的源码可以看到应用的装配方式FastAPI(titleModern Software Dev Starter (Week 5))创建应用实例启动时先确保data/目录存在Path(data).mkdir(...)app.mount(/static, StaticFiles(directoryfrontend))将前端静态资源挂载到/staticGET /直接返回frontend/index.htmlstartup_event()中执行Base.metadata.create_all(bindengine)建表随后调用apply_seed_if_needed()注入种子数据最后include_router挂载 notes 与 action_items 两个路由。数据库会话管理位于 week5/backend/app/db.py通过load_dotenv()读取.env默认数据库路径取自环境变量DATABASE_PATH默认./data/app.dbSQLite 引擎配置了check_same_threadFalse以兼容 FastAPI 的线程模型。apply_seed_if_needed()的逻辑值得注意仅在数据库文件首次创建时执行 week5/data/seed.sql其中预置了notes与action_items两张表的建表语句及示例数据例如 Welcome 笔记和 Try pre-commit 行动项因此删除本地app.db即可重置实验环境。ORM 模型定义在 week5/backend/app/models.pyNoteid、title、content与ActionItemid、description、completed两张表对应 Pydantic 模型见 week5/backend/app/schemas.py。路由层如 week5/backend/app/routers/notes.py当前提供笔记的列表、创建、搜索与单条查询其中搜索使用 SQLAlchemy 的contains实现标题/内容的子串匹配搜索词为空时退化为全量列表——这也是 week5/docs/TASKS.md 中“分页与排序搜索”任务的改造起点。测试在week5/目录下运行cd week5 make test对应 week5/Makefile 中的PYTHONPATH. pytest -q backend/tests测试集位于backend/tests/含test_notes.py、test_action_items.py、test_extract.py等。测试直接针对后端 API 与提取逻辑是 Agent 改动后快速回归的主要手段。格式化与 Lintcd week5 make format cd week5 make lintmake format执行black .并随后ruff check . --fix自动修复make lint仅执行ruff check .做静态检查。这两个命令与 pre-commit 钩子black ruff保持一致是保证 Agent 产出代码风格统一的关键。配置README 说明将week5/下的.env.example复制为.env即可覆盖默认配置最典型的是数据库路径。例如cd week5 cp .env.example .envDATABASE_PATH./data/app.db该变量会被 week5/backend/app/db.py 中的os.getenv(DATABASE_PATH, ./data/app.db)读取修改它即可将数据库迁移到其他位置。同理make run支持通过HOST/PORT环境变量覆盖监听地址与端口默认127.0.0.1:8000方便多实例并行实验。为 Agent 驱动工作流准备的任务清单README 强调项目包含“Tasks to practice agent-driven workflows”任务清单即 week5/docs/TASKS.md。该文件按难度划分了 11 项任务覆盖前后端与测试的典型改造场景例如前端迁移 Vite React复杂替换静态资源为构建产物FastAPI 挂载dist并新增web-install、web-dev、web-build等 Make 目标笔记搜索分页排序中实现GET /notes/search?q...page1page_size10sort...返回items/total/page/page_size结构完整笔记 CRUD 与乐观更新中新增PUT/DELETE /notes/{id}前端做乐观状态更新与错误回滚Action items 过滤与批量完成中GET /action-items?completed...与事务化的POST /action-items/bulk-complete标签多对多关系复杂Tag模型与note_tags关联表配合#hashtags自动提取提取逻辑增强中扩展 week5/backend/app/services/extract.py当前仅支持以!结尾或todo:开头的行支持#hashtags与- [ ] task text语法并新增POST /notes/{id}/extract统一错误响应封装易–中全局异常处理器输出{ ok: false, error: { code: ..., message: ... } }风格 JSON列表分页、索引、测试覆盖率、Vercel 部署等其余任务。这些任务与 week5/assignment.md 的要求相互呼应实现任务时必须同时利用 Warp Drive保存的 prompts、rules 或 MCP 服务器与 Warp 内的多 Agent 工作流例如在不同 Warp 标签页并发处理独立任务并可用git worktree避免 Agent 之间互相覆盖改动最终在writeup.md中记录每个自动化的设计、前后对比、自主级别与多 Agent 协作经验。小结Week 5 起手项目刻意保持“最小”却覆盖了全栈应用的关键构件FastAPI 路由与静态托管、SQLAlchemy SQLite 持久化、种子数据、pytest 测试与 black/ruff 规范。理解 week5/README.md 中的启动、测试、格式化与配置流程再对照 week5/Makefile 与 week5/backend/app/main.py 等源码你就能把整套工具链交给 Agent让它在有限范围内自主改代码、跑测试、过 lint并借此练习保存 Prompt、规则与多 Agent 并发的现代开发工作流。赞分享示例工程【免费下载链接】modern-software-dev-assignmentsAssignments for CS146S: The Modern Software Dev (Stanford University Fall 2026/2025)项目地址https://gitcode.com/GitHub_Trending/mo/modern-software-dev-assignments点击查看免费下载相关推荐FastAPISQLite全栈入门modern-software-dev-assignments week2应用代码结构详解FastAPISQLite全栈入门modern software dev assignments week2应用代码结构详解 从 Free Notes 到示例工程modern-software-dev-assignments技术栈清单FastAPI、SQLite与AI工具链全景modern software dev assignments技术栈清单FastAPI、SQLite与AI工具链全景 modern software dev示例工程modern-software-dev-assignments Week2全流程拆解FastAPISQLite行动项应用进化史modern software dev assignments Week2全流程拆解FastAPISQLite行动项应用进化史 modern softwar示例工程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表