开发笔记演示文章
写代码前,先把问题说清楚
一份提问与拆解的札记样例:先弄清要做什么,再决定怎么做。
本文为排版与功能演示,不代表站主真实经历。
先写下要回答的问题
这是一篇演示用途的开发笔记,用于验证代码、目录和复制操作,不是站主的真实项目复盘。
假设准备做一个小型笔记工具。先不挑库,把读者会做的事情写清楚:找到一篇文章,打开它,读完,再回到列表。
把输入和结果分开
“做一个搜索框”描述的是界面;“输入一个词,能找到标题或摘要里相关的文章”才是可以验证的结果。
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());
}这段代码只展示一种最小匹配方式。真正使用时,还要定义空输入、大小写、组合筛选和无结果状态。
留一个容易验证的例子
可以先准备一条不涉及真实个人信息的数据:
{
"title": "一条练习用的札记",
"description": "用于验证列表和搜索",
"tags": ["练习", "方法"]
}检查边界
- 输入为空时显示所有公开内容。
- 输入不存在的词时显示空状态。
- 只有草稿匹配时,也不能把它显示出来。
把没有完成的部分也写下来
能运行和已经验证是两件事。笔记可以保留没有解决的问题,不必写成一份无所不能的成果介绍。
下面再用另一种语言演示相同的边界:
def visible_notes(notes):
return [note for note in notes if not note["draft"]]这只是排版样例,不代表真实系统已经通过某种性能或安全测试。继续阅读 Astro 内容集合文档 ↗(新窗口打开),可以了解内容如何进入静态页面。