2025-12-27 08:00:00
最近临时在帮朋友做一些外包,基本上代码都是 AI 写的,我想如果不是有 AI, 我大概不会帮这个忙,因为即使这些活不难,我还是要写很多代码。但现在,我可以一个人同时做 2-3 个项目。
在这个过程中,更加让我确定了对于程序员来说,软件开发的范式已经彻底彻底改变了。生成代码再也不是程序员「应该」做的事情,而是应该被放手给 AI 做的事。
这也让我对判断一个程序员的能力从代码能力转变成了使用 AI 的能力,我想,如果我现在要为团队招程序员,我会在面试时着重了解这个人如何使用 AI 完成一个需求。
对于程序员来说,「使用 AI 的能力」包含很多维度,这些维度综合起来,才决定 AI 是否真正能成为程序员的杠杆:
软件是为解决用户的需求而生的,对业务充分理解,才能给 AI 足够的业务场景上下文,才能让 AI 写出覆盖边界条件的代码。
对业务的理解同时决定了程序员是否可以做好数据库建模。在接我朋友的外包项目时,我发现我人工干预最多的就是数据库建模。只要我思考好建模,AI 就能基于这个数据库模型编写任何接口。
如果能让 AI 限定在特定的技术栈中,你会发现 AI 更能稳定发挥,更可控。让 AI 「带着镣铐跳舞」。无论用什么技术栈,重点都是给 AI 一条稳定的轨道。比如我在所有项目的 AGENT.md 中都会列出非常细节的选型,例如 CC Mate 的 https://github.com/djyde/ccmate/blob/main/CLAUDE.md
当 AI 知道技术栈后,通过 context7 这样的 MCP, 它能在生成代码时,找到对应的文档作为上下文,生成出更不容易出错的代码。换句话说,确定好技术栈,让 AI 成为这个技术栈的专家为你编写代码。
因此,在这个层面,程序员的「使用 AI 的能力」意味着,这个程序员知道什么样的场景适合什么样的技术栈,也侧面反映了这个程序员对技术社区是否保持敏锐的嗅觉。这是我认为 AI 时代程序员的一种硬实力。
在《代码之外》听友线下见面会中,有听友提问,在 vibe coding 的时候,AI 只能做些一次性的软件,多次迭代后就会变成灾难。我的回答是,这是因为没有给 AI 提供一个你设计好的工程架构,让他在这个架构中行动。在这个新的时代,程序员应该以架构师的角度来工作。
我在 AI coding 一个项目前,我的脑海里会大概有一个工程架构的设计,比如,通用工具应该被统一放到一个什么文件,前端页面应该如何组织,接口应该遵循什么样的规范,错误处理应该怎么做等等。只要架构设计好,写在 AGENT.md 中,AI 自然会按照你的设计去做,而不是让 AI 天马行空地发挥。
不仅是在启动这个项目前要做好架构的思考,在维护的过程中,你指挥 AI 完成一个新的需求时,就应该思考完成这个需求的时候,将会有什么代码被写在哪一个地方。这个场景也适合使用各个 AI coding agent 的 Plan Mode 来完成,当 AI 告诉你它将要如何行动时,适当二次确认它要如何组织新的代码。
做到以上三个理解,我相信程序员可以游刃有余地使用 AI. 但我曾经在很多场合接触一些在一线写代码的程序员,发现他们对 AI 的接受程度是如此地低。很大程度上,我认为是一个缺乏以上三个理解的程序员,很难对 AI 建立信任关系,合作关系。
和我合作的一位程序员,在共同完成一个需求的时候,我在他旁边观察了一下他如何使用 AI, 结果只是非常浅地使用 auto complete. 我问他,为什么不尝试让 AI 完整地完成这个需求,他表示他认为 AI 不能胜任这个任务。
我说:
满足了这两个条件,你只需要把接口文档给 AI, 然后告诉 AI 这次的需求,再告诉 AI 一点提示,大概是在哪个文件中修改。以现在旗舰模型的能力,AI 大概率能一次性完成。
他将信将疑,我直接在他电脑上给他演示这个操作,果然,AI 直接完美地完成了这个需求,不到 2 分钟。
而同时我也在思考,到底 AI 时代是否还需要程序员,或说需要怎样的程序员,好像渐渐有了答案。
2025-10-08 08:00:00
最近我在编程上一个很大的变化是把持续月付了将近 1 年的 Cursor 换成了 Claude Code. 之前一直不用 Claude Code 原因有二:
这次转变的契机在于,上个月我竟然把 $20 的 cursor pro 额度花光了(我日常使用的是 Claude Sonnet 4),只能用 Auto Mode, 这使我的生产力断崖式地下降。这时候,恰好智谱推出了「编码畅玩套餐」(并非广告,智谱看到的话可以联系我打钱),推出了兼容 Claude Code 的接口,价格还相当便宜。于是我开始再次尝试 Claude Code.
最初我还是非常不习惯不在 editor 里操作 AI, 因为觉得这样很没有安全感。不过在慢慢磨合之后感觉没有我想象中那么糟糕。
在 Claude Code 中可以使用 /ide 连接 IDE, 连接后 Claude Code 可以识别出当前 IDE 打开的文件是什么,这样能达到 Cursor 类似的效果。所以 Claude Code 也能得知我希望的是结合指定文件作为改动基准。
在 Cursor 中我还会手动 @ 不同的文件指定 AI 修改的文件,出乎我意料的是在 Claude Code 中 @ 文件的体验也相当不错,所以在体验方面,Claude Code 基本可以对齐我使用 Cursor 时的习惯。
另外一个常用的场景是我会选择具体的代码行让 AI 改动,这一点在 Cursor 做得很好。Claude Code 连接了 IDE 后也能识别到。

不过我感觉实际 Claude Code 并没有很「在意」我选的行,它经常会失控多改些东西,我不确定这是模型还是 Claude Code 的调校问题,我认为 Cursor 在这个场景是有做专门的 prompt 调校的。
Cursor 做得非常好的其中一个体验是它的 Restore, 你可以随时在 AI 改动的点撤销改动,也可以直接 Undo all 撤销整个会话的改动。这一点 Claude Code 还是逊色不少,现在我不得不在下一次改动前 git commit 我当前的改动。
Claude Code 2.0 之后新增了 /rewind 命令,也可以基于对话历史进行回撤,但远不如 Cursor 在 GUI 上做得好。而且如果你关闭了当前的对话后,也无法再进行回撤了。
在 Claude Code 中使用 MCP 一开始让我相当困惑。当我在项目路径通过 claude mcp add 安装 MCP 后,我发现在其它项目中并没有这个 MCP, 后来我才知道,需要指定安装的 scope, 默认是项目范围,如果要安装全局跨项目的 MCP, 需要加一个 --scope user 参数:
claude mcp add --transport http hubspot --scope user https://mcp.hubspot.com/anthropic
我使用的 MCP 只有 exa 和 context7, 这两个 MCP 都是用于查找文档的。我在 Cursor 中从来不用,因为 Cursor 可以直接在设置中输入文档地址进行索引,对话时用 @docs 就能把文档加到上下文中。这一块我还是喜欢 Cursor 的体验,当然 context7 和 exa 也能完成任务。
Claude Code 让我比较喜欢的是 Plan Mode. 对 AI 描述要做的事情,它先给你输出一份它的行动计划,我 review 完觉得 ok 才开始做,不 ok 就进一步沟通,直到满意为止。
说实话在使用 GLM 之前,我对它的质量持怀疑态度。经过一个月深度使用后,我认为它远超了我的预期,并且个人感觉非常非常接近 Claude Sonnet 4 的水平(我用 Sonnet 4.5 还不多,所以无法对比)。
在此之前,我一直用的是 Sonnet 4, 可以说 Sonnet 4 和我磨合得已经相当好了,它就像跟了我一年的 engineer, 我对它的能力和做事风格相当地熟悉,所以能很好地彼此配合完成任务。因此在接触 GLM 4.6 的期间,我认为我是很有话语权把它们两个进行对比的。
首先是速度,GLM 4.6 在速度和质量取得了很好的平衡,平均速度我认为比 sonnet 4 更快一点点,偶尔抽风会特别慢。
质量上,我认为从 bug 的数量上来看,和 sonnet 4 没有我能感知到的差别。我的代码主要以前端 TypeScript 和 Rust 为主,在生成 Rust 代码时,GLM 和 sonnet 4 基本一样一气呵成,偶尔会有错误,但把错误日志再输入给它时,就能修好。
无论是前端还是后端还是什么语言,对于这两个模型,我的经验认为,只要你能给到足够的文档作为上下文(例如使用 exa, context7), 效果都会非常好。因为生成功能性的代码主要需要的能力是按照文档进行推理,对于目前旗舰级的模型来说已经不是特别难的事。

而我认为最能体现一个模型真正的编程智能的任务是重构。因为模型 agent 需要自己对整个 codebase 进行理解、搜索、规划重构方案的流程不是照着文档抄那么简单。我特意使用了 GLM 对某个项目进行了技术栈的重构,比如在一个充满 useEffect 的 React 应用,我让它用 @tanstack/react-query 进行重构,GLM 十分出色地完成了任务,而且速度相当快,准确率很高,偶尔出错时,它自动参考 lint error 重新修改也能完成任务。
用一个比喻来总结 GLM 4.6 和 Sonnet 的对比,我认为如果说 Sonnet 是 P7 级别的工程师,那么 GLM 4.6 是 P6+ 级别的。有时候 GLM 完成的任务,你需要再提醒多那么一句,它才能达到完美。
但考虑到这是一个只需要 40 人民币一个月(首月 20)的模型,我觉得完全可以接受了。
顺便分享一下如果要在 Claude Code 中使用 GLM 需要怎么配置。
最简单的方法是使用我最近做的 CC Mate 这个小工具。安装好 Claude Code 后,在 CC Mate 填一下 API Key, 所有的配置都会帮你处理好,这时打开 Claude Code 就已经是在使用 GLM 了。

CC Mate 支持多个配置随意切换,所以如果你想用 Kimi 也可以创建一个 Kimi 的配置。
另外 CC Mate 还有管理全局 MCP 的功能,你可以一键把我文中提到的 context7 和 exa 安装到全局 MCP 当中。

注意:安装完 MCP 后,需要在 Claude Code 中使用 /mcp 给它们登录授权。
首先购买「编码畅玩套餐」, 然后新建一个 API key.
然后手动修改配置文件 ~/.claude/settings.json 如下:
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "your-api-key",
"ANTHROPIC_BASE_URL": "https://open.bigmodel.cn/api/anthropic",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "GLM-4.5-Air",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "GLM-4.6",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "GLM-4.6",
"ANTHROPIC_MODEL": "GLM-4.6"
}
}
配置后,你能正常使用 Claude Code, 但你会发现,如果你使用 Claude Code 的 VS Code 插件,你是进不去的,它强制要求你先登录 Claude 账号。所以你需要再添加一个文件 ~/.claude/config.json:
{
"primaryApiKey": "xxx"
}
xxx 只是一个占位符,什么内容都无所谓。
这时你就可以正常使用 Claude Code 的 VS Code 插件了 (这个配置在 CC Mate 中也已经帮你做好了)。
P.S. CC Mate 的开发过程完全使用 Claude Code + GLM 4.6, 基本 80% 的代码都是 AI 编写的,我只作为架构设计以及 UI 设计。
2025-04-09 08:00:00

最近又写了一本小书。
这本小书定价 29 元,你可以在 这里 购买 PDF 版本。如果你有特殊需求,也可以购买 Markdown + PDF 版本,价格是 49 元(为了增加盗版成本)。
这本书篇幅不长,但因为比较小众,所以定价稍高,请读者自行斟酌购买。
这是一本关于浏览器插件开发的书。这本书面向的是那些希望开发自己的浏览器插件满足自己需求的,也许你是专业的前端程序员,或是略懂前端代码的后端人员,在 AI 的加持下,大概都能从中受益。
之所以想写这本书,是因为我在过去一两年开发过不少浏览器插件(如微信读书笔记同步助手 Notepal, 浏览器 AI 助手 SumBuddy, 专注插件 等等标签 等等),积累了不少经验。这几年越来越多人开始做浏览器插件,尤其是在 AI 时代,浏览器插件作为重要的输入入口,能做的事情越来越多。我想可以把这些经验分享出来,让更多人可以开发满足自己需求的插件。
插件开发其实不是一件很难的事,特别是现在出现了一些成熟的框架,比如 Plasmo, WXT, CRXJS 等。这些插件把代码构建、打包过程都封装得很好,开发者只需要关心插件的逻辑即可。
我自己用过 Plasmo 和 WXT, 这本书我会使用 WXT 进行教学。因为经过自己的长期实践,我认为 WXT 比 Plasmo 的设计更加合理,配套的工具更好用。当然每个框架有每个框架的利弊,即使你想使用其它框架,你还是能从这本书收获很多框架以外的知识,因为框架只是辅助。
另外,本书以 Manifest V3 为背景编写,不会讨论 Manifest V2 的内容。如果你不知道两者具体的区别,你也不需要知道(因为我也不知道)。简单来说 V3 比 V2 在安全性上做了更严格的控制,这一点虽然备受争议,但对于大部分的情况不会有太大的影响。
本书在涉及 UI 开发的部分我会使用 React, 这是我自己日常使用的库,对于使用 Vue, Svelte 等其它库的读者,也不需要担心,用什么框架并不是那么重要。并且 WXT 也支持不同的 UI 库。如果你想用其它库,翻看 WXT 的文档即可。
本书的实战中,我不引入任何样式库,因为会增加额外的和插件开发无关的复杂度。请读者不要计较实例的美观性。
读这本书前,我默认读者了解以下技术:
读完这本书后,读者能学习到开发一个浏览器最重要的几个知识点:
这几个知识点贯穿了所有实际场景必需的元素,我在开发自己的插件时,基本是围绕这三个基本的功能展开。至于其它更多的插件 API, 读者应该自己按照需求查看文档使用。
在讲解消息传递的实例中,我用 AI 消息流作为例子讲解,对于需要开发 AI 相关的浏览器插件的读者应该很有启发。


2025-04-01 08:00:00
在 AI 越来越强大的这段时间里,我思考得比较多的一个问题是,我们是否高估了智力的重要性。
引起这个思考的原因有很多,一是大语言模型的进化程度让我感受到,语言模型在智能(推理、学习速度、知识广度等)方面已经远远超越人类,而这样的智能是每个人都能运用的。也就是说,人类完全可以把需要智能的行动交给 AI 处理,人类更多地是负责决策层面的工作。
二是因为我自己就是一个智力平平的人,小学当我学到除法的时候,我花了很长时间才理解除法是什么。我在开始学 JavaScript 的时候,也花了很长时间理解什么是 callback, 为什么函数能作为参数被传递和调用。
但我这个智力平平的人还是得到了算是不错的成果。我总是对别人说,我不是一个很聪明的人,我只是 13 岁就开始学编程,笨鸟先飞罢了,很多人大学学一年就能超过我的水平。所以我才更深刻地体会到,正常水平的技术,往往通过时间可以弥补,在这条水平线,不需要很高的智力。
不过,即使通过时间可以弥补智力的不足,但不是很多人能在这段时间里坚持下去。这也引出了我认为智力被高估的同时显现出来了另一个问题 —— 自我效能 (self-efficacy) 的重要性被远远低估了。
所谓的自我效能,是指相信自己有能力成功完成特定任务或应对特定情况的信心。很多复杂的因素决定了一个人自我效能的高低,这并非天生的。成长过程中长辈的态度、通过对他人的观察、个体与环境互动等等都影响一个人的自我效能水平。
在同样面对一个问题,自我效能低的人,看到的往往全是问题,最终放弃。而自我效能高的人,有强大的信念认为可以解决问题。前者也许在智力上比后者更高,但后者可以通过这种信念一直前进,超越前者。

尤其是在 AI 时代,智力变成了一种更容易弥补的差距。我认为智力是边际效益递减的,除非超过了某个阈值。但这永远是很小一部分的人。像我这样智力平平的人是多数,我们只是站在了巨人的肩膀上。就像 Dijkstra 只有一个,这个世界也需要他这样的天才,但我们还是可以享受他给我们带来的成果。
这不是反智,而是我认为,智力水平有一个临界点,对于临界点以下的人,智力的重要性被高估了,因为智能越来越不稀缺,稀缺的是自我效能,是主动利用智能的人。
自我效能是完全可以通过后天训练的。自我效能是心理学家 Albert Bandura 提出的概念。他总结了影响自我效能的四种因素:
个体通过亲身成功完成任务的经验来建立自信。反复的成功会增强自我效能,而失败(尤其是早期或没有应对策略时的失败)则会削弱它。
我觉得这里指的「成功」并非大成功,而是细微的成功。例如在我学习编程的早期,我通过写出各种各样的小程序获得这种成功感,对我建立技术自信有很大的帮助。
观察与自己相似的人成功完成任务,会提升观察者对自己也能做到的信念。看到别人能行,会觉得“我也许也可以”。
对我来说,小时候读的名人(科技精英)传记就是一种 Modeling, 尤其是李开复的《世界因你不同》,这些「洗脑」式的输入,会让我越来越希望自己能成为这样的人。
乔布斯有一句广为流传的话,他说
Life can be much broader once you discover one simple fact: Everything around you that you call life was made up by people that were no smarter than you.
一旦你认识到一个简单的事实——你周围那些你称之为“生活”的东西,都是由并不比你聪明的人创造出来的——你的人生就会变得更为广阔。
乔布斯从更极端的思路获得高度的自我效能感 —— 通过对比别人不行,觉得自己可以。
受到他人的鼓励和积极评价可以增强自我效能感。而负面评价则会削弱它。
这个条件比较被动,这里不谈。
个体在面对任务时的生理反应和情绪状态会被解读为自身能力的信号。如果将紧张解读为“我不行”的证据,自我效能会降低;如果解读为“兴奋”或“迎接挑战”,则可能不会降低甚至会提升。
在这个方面,我面对舞台的经验可以充分论证。记得第一次面对众人做技术分享和第一次上台唱歌,我紧张得不行,表现都很糟糕。随着不断地强迫自己上台,我发现自信完全取决于自己的念头,我学会在上台前欺骗自己是一个有很多粉丝的人,台下的人对我非常崇拜,或很喜欢听我唱歌,这样的念头让我在台上的表现有很大很大的改进。
人是事件的反应器,通过刻意训练,是可以掌控自己的反应的。
以上是我对 AI 时代的到来的其中一点思考,希望能鼓励到和我一样智力平平的人。
2025-02-09 08:00:00
我从两年前开始放弃了所有笔记软件,换用 Apple Notes 记录我的所有笔记。这个举动缘于我读了 Tiago Forte 的一本书 The PARA method.

可能大家比较熟悉他的另一本书 Build The Second Brain, 是关于如何使用笔记软件构建自己的「第二大脑」。这本书也有提到他的 PARA 理论(我在我之前的文章也有提到过我如何应用这个理论管理我的笔记)。两本书都读过以后,我认为 The PARA Method 这本书更偏向实操,我从中收获了更多的方法论。如果你只想读一本,那么我推荐读这一本。
读完这本书后,我立即在 Apple Notes 中基于 PARA 方法建立起了笔记组织的形式,这一套组织形式一直用到了两年后的今天都没有改变过。也就是说,这两年来,在做笔记时我再也没有花过时间去想应该如何组织我的笔记,光从这一点,就让我受益颇深,我可以没有任何心智负担地迅速记下我需要的东西,不用担心我应该怎么记,一切都是那么的简单。
这篇文章就是想和你分享我如何在 Apple Notes 记笔记,我在 PARA 的基础上根据我自己的实际场景做了一点小小的改良。希望对你也有所启发。
在分享方法论之前,我想先解释为什么我选择了 Apple Notes. 我认为 Apple Notes 有很多优点。
当然 Apple Notes 也有缺点,但两年使用下来,我没有因为这些缺点感到被限制,比如:
Apple Notes 支持的格式有限,只有最基本的列表、标题、加粗等等的文字样式格式。但我用下来发现,我根本不需要使用什么高级的格式。有人问我 Apple Notes 不支持代码块,你是怎么记代码相关的笔记的?我说我基本不会把代码片段作为笔记来记。比较多的场景是一些 JSON 格式的片段,我只会直接粘贴到笔记里,不加任何的格式。
我找到了两条比较经典的笔记:


可以看到,里面不仅有 JSON, 还有 toml, 还有命令行。甚至还会有 spell check 的红线让它显示得很丑。但是我一点也不在意。因为它们是拿来用的,不是拿来看的,我不在乎它好不好看,只要我需要用到的时候能找到拿来用就好了。
也就是说,「美观」在我记笔记的需求里排不上什么优先级,我的最高优先级是能快速打开,快速记录,让我记东西的摩擦力降到最低。能帮我当下的想法、要处理的事情相关的信息记下来才是最重要的。所以我看过很多人把 Notion 模板做得很漂亮,也不为所动,因为对我来说这不是我需要的东西。不可否认,美观的笔记系统能给人情绪价值,它没有对错之分,只要合适自己就好。所以最重要的是知道自己是否需要,如果你认为这对你来说不是很重要,就回归简单吧。
Apple Notes 也没有「双链」功能,这是现代流行的笔记软件中很重要的功能,我在用 Logseq 的时候也被这个功能打动,因为它能把相关的笔记自然地关联到一起,带来额外的启发。最初用 Apple Notes 时我也担心会不会因此失去了这个优势,但用下来才发现,我并不是那么的需要它,即使没有,也没有让我感觉因为没有了他而失去了灵感。
Apple Notes 的标签功能也很弱,但我不使用标签。
虽然在之前的博客也提到过 PARA, 但我还是想在这里简短地解释一下我所理解的 PARA 是什么。
PARA 的全称是 Project, Area, Resource, Archive. 翻译成中文就是「项目」「领域」「资源」「归档」。它代表了一个笔记应该放在什么地方以及一个笔记的流动过程。

没错,在 PARA 的方法论中,笔记是可以「流动」的,它有时候在 Project, 当项目结束后,它不再被需要,就会流动到 Archive. 如果它在以后有利用价值,它可能会流动到 Area 或者 Resource.
理解 PARA 的关键是理解 PARA 的哲学:你记下的笔记应该要服务于你的行动。
也就是说,在 PARA 的系统里,当你想要把东西记下来时,你的 mindset 应该是,这条笔记和我接下来的行动有什么关系?如果没有关系,那么它应该放在 Area 还是 Resource?
在 The PARA Method 一书中,开篇的一句话能解释这个哲学:
Every word in this book is designed to do one thing: propel you forward into taking action
这本书中的每一个词都是为了一个目的:推动你付诸行动。
简单了解了 PARA 后,看看我如何在 Apple Notes 中使用 PARA.
我在 Apple Notes 中会单独建立一个 PARA 目录:

里面有基本的 Projects, Areas, Resources, Archived 文件夹。在这个基础上,我有两个改良,第一个是添加了一个 Drafts 文件夹,用于记录我日常的零碎想法:

这些想法一般是在手机上记录下来,在有空的时候进行深度思考和研究,有些会最终成为一篇推文,或者基于想法变成一篇博客文章。
第二个改良是增加了一个 Inbox 文件夹,用来存放打算做的项目,这些项目还没进行深入的思考,不确定是否立项来做。如果想清楚要做,我会把它拖动到 Projects 中。否则直接拖到 Archive 归档。
Projects 目录是我最常用的,因为里面都是当前正在进行的项目:

比如,当我决定要写一篇长文,就会在 Projects 中新建一个文件夹,比如现在这篇文章,就是在 Apple Notes 里写的。有了这个文件夹后,当我看到任何和这个项目相关的信息,就会把它记在这个文件夹当中:

也就是说,当我看到任何关于 Note taking 主题的值得记下来的东西时,我很清楚要把它放在哪里,因为它和我正在进行的项目有关系。
这也解决了一个很普遍的问题,很多人想记笔记,想有「第二大脑」,却不知道应该记什么,或者记下来很多,最后都只是放在自己的笔记软件里,发挥不出任何作用。而在 PARA 的系统中,你清楚地知道你应该记什么笔记,因为你知道哪些信息和你正在做的事情有关系。这些笔记才是真正能发挥作用的。
比如我即将写一篇在我 30 岁时发布的博客文章,虽然还没开始写,但它是我的一个 Project, 那么当我读到和这个主题相关的信息,就会把它记在这个 Project 里,当我真正写这篇文章的时候,能直接参考它们,对于我来说,这才是有用的笔记:

Projects 不仅仅是项目,它还可以是即将到来的一个事件(Event),也可以是你正在研究的一个课题。比如你约了一个重要的人,你需要记下来这次约会需要准备点什么。约会结束后,就把它拖动到 Archive.
再举一个例子,比如你正在开发一个软件,可能需要记一些技术相关的笔记。在以往,可能你会把这些笔记按主题记下来,比如 React, Vue, Rust, 前端, 后端之类的分类。但在 PARA 中,你应该为你正在开发的软件创建一个 Project,无论你想记下来的技术笔记是什么分类,都放到这个 Project 当中。这样记下来的笔记才是真正有价值的,因为它真实地服务于你正在开发的项目,你在开发时可以反复在一个地方参考。
项目结束后,你可以将整个 Project 拖到 Archive, 不需要再管它。如果你认为 Project 中的一些笔记有复用的价值,就把它拖到 Areas 或 Resources 当中。Apple Notes 的拖动十分方便。但按照我的经验,一般来说直接 Archive 整个 Project 也没什么问题,因为它不是被删了,你还是能通过搜索重新找到它。这时 Archive 的笔记又会「流动」到 Project 当中。
我自己的 Areas 和 Resources 其实很少碰,基本只在 Projects 和 Archive 中活跃:

使用 PARA 的另一个好处在于,只要展开我的 Projects 目录,我能一目了然我正在做的事情。我不再需要单独的 Todo 工具,因为 Projects 就是我的 Todo, 而且 Apple Notes 也有 checklist 功能。这也是 The PARA Method 中所说的:
You will gain greater focus on what matters most: You will have greater clarity about what’s important so you can intentionally move your life into alignment with your interests and goals.
你将更加专注于最重要的事情:你会更清晰地了解什么是重要的,从而有意识地将你的生活与自身兴趣和目标协调一致。
善用搜索。虽然只是关键字查询,但按照我的经验来看,这就足够了。比如我在 Apple Notes 记过我常用的 API key, 我只要搜索 azure 这个词,我就能立刻找到,我甚至都不知道它被我放在哪里了:

不需要迁移。在新的工具重新开始,需要用到的时候才在旧的工具重新找回,有必要时再复制过来。反正没人要求你用新的工具就把旧的数据都删掉。而且,我相信你最后会发现,你并不怎么需要找回你的旧数据 😂 这两年我就没打开过我以前一直用的 Logseq, 也没有做任何迁移。
以上的分享不一定适合所有人,但它非常适合我,我也从这套系统中得到了很大的解放。你甚至可以什么系统都不用,在同一个文件夹记下来所有东西,最后你会意识到,重要的不是把笔记放在哪里,而是感谢自己当初记了下来。这就是为什么降低记录的摩擦力是如此地重要。
PARA 是一个方法,你不一定要用 Apple Notes, 你可以在所有的工具用它。不要让工具阻碍了自己最重要的事 —— take action. 真正有用的笔记是帮助你 take action 的笔记。
P.S. 这篇文章在 Apple Notes 写成:

2025-02-08 08:00:00
趁着国补,把手头用了 5 年的 MacBook Air M1 换成了 MacBook Pro 14 寸 M4. 顺便手动重新配置新电脑,在此记录一下每次设置新电脑时我会做的一些设置和必装的软件。
把点按切换成轻点:

我不喜欢用触摸板点按拖动来移动窗口,觉得有点费力,所以我会调整为三指拖移。旧版本的 OS X 可以直接在系统设置中调整,新版本的 macOS 竟然把它归类到辅助功能里了:

把 Control 键和 Caps Lock 键互换。因为我需要频繁使用 Control 键,Caps Lock 的位置是最合适的,这也是 HHKB 的默认布局:

取消 Spotlight 的所有索引,因为我用 Raycast, Spotlight 的索引会浪费计算资源:
