跳到主要内容

11.1 项目结构与里程碑

一个就业项目要能展示完整开发能力:需求拆解、数据建模、API、前端、测试、部署和复盘。不要一次性堆功能,要按里程碑持续交付。

学习目标

  • 能设计一个适合简历展示的全栈项目结构。
  • 能把功能拆成多个可验收里程碑。
  • 能为每个里程碑定义交付物和验收标准。
  • 能把项目经历转化为面试表达。

推荐项目:学习计划系统

在 Todo 基础上扩展为“学习计划系统”,更贴近学习手册主题,也方便展示复杂度。

功能域功能
计划创建学习计划、设置目标日期、拆分任务
任务新增、完成、筛选、优先级、截止日期
统计完成率、逾期数、连续学习天数
用户登录、个人任务、权限隔离
管理标签管理、计划模板、基础后台

解决方案结构

LearningPlanner/
src/
LearningPlanner.Api/
LearningPlanner.Application/
LearningPlanner.Domain/
LearningPlanner.Infrastructure/
LearningPlanner.Web.Blazor/
LearningPlanner.Web.React/
tests/
LearningPlanner.UnitTests/
LearningPlanner.IntegrationTests/
docs/
architecture.md
api-contract.md
deployment.md

React 和 Blazor 可以二选一作为主前端,另一条路线保留为对比练习,不建议第一版同时做两个完整前端。

里程碑计划

里程碑交付物验收标准
M1 最小闭环任务 CRUD、数据库迁移、列表页能从前端创建并查看任务
M2 业务规则截止日期、优先级、完成状态边界规则有单元测试
M3 用户与权限登录、当前用户任务隔离用户只能看到自己的数据
M4 统计看板完成率、逾期任务、趋势数据来自后端聚合查询
M5 工程化集成测试、Docker、CI提交后自动构建和测试
M6 部署复盘部署说明、架构图、演示脚本能独立演示和讲解项目

每个里程碑的完成定义

  • 有清晰需求说明和接口契约。
  • 后端包含成功路径和失败路径。
  • 前端包含加载、空状态、错误和成功状态。
  • 数据库迁移可重复执行。
  • 至少有一类测试覆盖关键规则。
  • README 记录如何运行和验证。

面试讲解结构

  1. 项目解决什么问题。
  2. 技术栈为什么这样选。
  3. 你负责的核心模块是什么。
  4. 遇到的难点和取舍是什么。
  5. 如何保证质量和可维护性。
  6. 如果继续迭代,下一步会优化什么。

重点难点

  • 就业项目要展示完整闭环,不要只展示 CRUD。
  • 技术点要落到业务案例上,例如并发、权限、错误契约和测试。
  • README 和演示脚本同样重要,它们决定别人能否快速理解项目。
  • 控制范围比堆功能更重要,第一版要优先稳定交付。

常见误区

误区推荐做法
一开始就做大而全先完成可演示纵向切片
只展示页面截图同时展示 API、数据库、测试和部署
简历只写技术名词写清业务结果和你的具体贡献

练习

  • 为学习计划系统写 6 条用户故事。
  • 为 M1 画出前端、API、数据库交互图。
  • 写一段 2 分钟项目讲解稿。

延伸阅读

  • 需求拆解和用户故事。
  • Clean Architecture 项目结构。
  • 简历项目复盘方法。