返回文章列表

项目实践复盘:把博客功能拆成可交付切片

以 HUAN Lab 博客为例,记录如何把一个个人站点拆成内容、路由、样式、搜索和部署几个可验证切片。

做个人博客很容易一开始就想做完整系统:主题切换、全文搜索、评论、统计、订阅、后台编辑。真正推进时,更稳的方式是把目标拆成可以当天验证的切片。

好的项目节奏不是一次做完所有功能,而是每一步都有可运行、可检查、可继续扩展的结果。

切片顺序

HUAN Lab 的第一轮实践可以按内容链路来排优先级。先让文章能被读取,再让页面能展示,最后补体验增强。

一个可执行的顺序如下:

  • 内容模型:确定 frontmatter 字段和分类枚举
  • 文章读取:从 content/posts 解析 MDX
  • 页面展示:完成列表页、详情页和分类页
  • 阅读体验:补目录、代码高亮、上一篇下一篇
  • 发布链路:接入 GitHub 到 Vercel 自动部署
export function getFeaturedPosts(posts: Post[]) {
  return posts.filter((post) => post.featured).slice(0, 3);
}

这类函数很小,但能让页面组件保持专注。组件负责展示,数据函数负责筛选和排序,后续修改规则时也更容易定位。

验收标准

每个切片都应该有明确的验收方式,而不是只看代码是否写完。博客项目可以用下面几个问题自检:

  • 新增一篇文章后,首页是否能看到它
  • 分类名称写错时,构建是否会失败
  • 代码块、引用、列表在详情页是否正常排版
  • 删除封面图片后,页面是否还能给出清晰反馈
npm run lint
npm run typecheck
npm run build

这些命令不保证体验完美,但能覆盖语法、类型和构建三条底线。对于个人站点来说,这已经能挡住大多数发布前问题。

复盘记录

项目复盘不需要写成长篇报告。最有价值的是记录当时为什么这么做,以及下次遇到类似问题时可以复用什么。

可以固定三个小问题:

  • 本轮完成了什么可见结果
  • 哪个决策降低了后续维护成本
  • 哪个地方需要在下一轮重构或补测试

小结

个人项目也值得用工程化节奏管理。不是为了显得正式,而是为了减少返工,让每次坐下来都有清楚的下一步。