MOJIAN
← 返回札记

开发笔记演示文章

写代码前,先把问题说清楚

一份提问与拆解的札记样例:先弄清要做什么,再决定怎么做。

本文为排版与功能演示,不代表站主真实经历。

先写下要回答的问题

这是一篇演示用途的开发笔记,用于验证代码、目录和复制操作,不是站主的真实项目复盘。

假设准备做一个小型笔记工具。先不挑库,把读者会做的事情写清楚:找到一篇文章,打开它,读完,再回到列表。

把输入和结果分开

“做一个搜索框”描述的是界面;“输入一个词,能找到标题或摘要里相关的文章”才是可以验证的结果。

type Note = { title: string; description: string; tags: string[] };

export function matches(note: Note, query: string): boolean {
  const searchable = [note.title, note.description, ...note.tags].join(' ').toLowerCase();
  return searchable.includes(query.trim().toLowerCase());
}
TypeScript

这段代码只展示一种最小匹配方式。真正使用时,还要定义空输入、大小写、组合筛选和无结果状态。

留一个容易验证的例子

可以先准备一条不涉及真实个人信息的数据:

{
  "title": "一条练习用的札记",
  "description": "用于验证列表和搜索",
  "tags": ["练习", "方法"]
}
JSON

检查边界

  1. 输入为空时显示所有公开内容。
  2. 输入不存在的词时显示空状态。
  3. 只有草稿匹配时,也不能把它显示出来。

把没有完成的部分也写下来

能运行和已经验证是两件事。笔记可以保留没有解决的问题,不必写成一份无所不能的成果介绍。

下面再用另一种语言演示相同的边界:

def visible_notes(notes):
    return [note for note in notes if not note["draft"]]
Python

这只是排版样例,不代表真实系统已经通过某种性能或安全测试。继续阅读 Astro 内容集合文档 ↗(新窗口打开),可以了解内容如何进入静态页面。