Notion vs Obsidian:一个开发者的14个月深度实战对比

从2020年底到2024年初,我把所有笔记都放在Notion里——会议记录、架构决策、研究日志全在一个工作区。直到一次在乡下度假,网络时好时坏,我才发现一个扎心的事实:我打不开一半的笔记。Notion的离线模式只缓存了sprint回顾,却漏掉了我想查的系统设计笔记,屏幕上只剩一个灰色背景的加载转圈。从那周起,我开始认真看Obsidian。

之后我没有完全迁移,而是把工具拆成了两半:Notion留给团队协作(项目跟踪、sprint看板、新手指南),个人思考、研究和技术笔记则搬到了Obsidian的仓库里。用了14个月后,我想说的不是“哪个更好”,而是“哪个匹配你的脑子”。

本质差异:云数据库 vs 本地文件系统

最深的分歧不在功能,而在数据存哪儿、结构怎么来。

Notion把你的知识当作结构化数据。每个页面都是数据库里的一个块,每个数据库都有个模式。你事先决定这是任务、笔记还是项目,Notion通过属性、视图和关系来强制这个结构。团队需要一致性时这很强大——每次sprint回顾都用同一个模板,每个客户来电都记同样的字段。代价是加结构需要做决定,新用户常常对着空白页面发呆,不知道该归到工程Wiki还是任务数据库。

Obsidian把你的知识当作网络。它给你一个装满纯文本Markdown文件的文件夹,加上链接工具——[[双链]]、反向链接、图谱视图——然后说:开始写吧。没有数据库,没有模式。一条关于PostgreSQL查询优化的笔记链接到数据库索引的笔记,再链接到你三年前看过的一场演讲。联系从你的写作中自然浮现。代价是结构得自己搭:要么用命名规范(meeting-2024-01-15-主题.md),要么建文件夹层级,要么靠frontmatter加Dataview查询。

14个月下来,我需要“X的当前状态”时用Notion,需要“关于X我过去怎么想的”时用Obsidian。

日常体验:写作、搜索和扩展

这两款工具在开发者每天做的事情上差别最大。

写作和代码片段。 Obsidian就是Markdown编辑器——每个代码块都是真正的围栏代码块,支持语法高亮。从VS Code复制一段代码粘贴进来,直接能用。Notion的代码块也支持高亮,但终端里粘贴可能会丢格式,长文件(比如400行的TypeScript服务)会滚动卡顿。写带代码的文档时,我都在Obsidian里写。

搜索质量。 Notion的全文搜索覆盖所有页面、数据库和评论。AI问答还能更进一步——问“第二季度关于缓存层的决定是什么?”它能从多个页面拼出答案。Obsidian的搜索是本地文件grep:快、确定、只限于你打过字的内容。它不理解上下文,但从不乱编联系。

离线与可迁移。 Obsidian完胜。你的仓库就是一个.md文件目录,可以用VS Code打开、用ripgrep搜索、用rsync备份、用Git做版本管理。就算Obsidian明天倒闭,你的笔记纹丝不动。Notion导出Markdown会丢失数据库关系和块引用,迁移一个用了三年的Notion工作区是按天算的,不是按小时。

扩展性。 Obsidian的插件生态让它变成了一个开发环境。社区贡献了Git集成、任务管理、看板,还有Dataview查询语言——可以把仓库当SQL数据库用,底层依然是纯Markdown。

新手先装三个:Dataview(用类似SQL的语法查询仓库——LIST FROM #architecture WHERE file.cday > date(today) - dur(30 days))、Git(定时自动提交推送,笔记默认就有版本管理)、Templater(动态模板,可以在新笔记里插入日期、文件元数据甚至shell命令输出)。这三个插件能把简单的Markdown文件夹变成可编程的知识系统,而且没有锁定——最差情况是你停用插件,文件还在。

Notion的扩展性走API路线:集成在Notion服务器上创建页面、更新数据库、触发工作流。这对自动化团队工作流(比如Intercom里的一张工单自动在Bug跟踪器里建Notion页面)是正解,但对属于你本地开发环境的个人工具来说就是歪路。

哪种开发者脑子适合哪种工具

观察自己和同事的选择后,我觉得这更像性格匹配,不是功能对比。

Notion适合你,如果你的工作流是团队导向、数据库驱动的。整天管理sprint、跟踪里程碑、维护多人同时编辑的文档,Notion的实时协作和结构化数据库就是它存在的理由。AI功能(工作区问答、自动摘要)让把Notion当运营系统的团队更有优势。

Obsidian适合你,如果你的知识是个人化、互联的。如果你维护Zettelkasten式笔记、记录学习心得、搭建跨年跨职场的第二大脑,Obsidian的纯文本基础会比任何工具都活得久。图谱视图不只是好看——持续使用半年后,它会浮现出你思维中没意识到的模式。我发现自己对数据库性能、Rust内存模型和编译器优化的笔记形成了一个密集的簇,之前我从未有意识地把它们连起来。

如果你决定把Notion当作主要笔记工具,你做的不是UI决定,而是存储格式决定。你的数据以Notion专有的块格式存在Notion的服务器上。导出功能是迁移工具,不是日常备份。最靠谱的办法是务实:协作密集的内容(团队Wiki、sprint看板、新手指南)在Notion里生生死死,而个人长期笔记——那些五年后你还会翻的——放到属于你的纯文本系统里。

两个工具的实操建议

如果选Notion,一开始只建两个数据库,别建二十个。创建一个任务数据库,属性包括状态、优先级、负责人、截止日期,再关联一个项目数据库。用数据库视图(sprint看板用Kanban视图,截止日期用日历视图,积压梳理用表格视图)代替给每个视图单独建页面。装Notion Web Clipper浏览器插件收集研究资料。一个月后打开工作区分析,看看哪些页面真的被读了。每个季度设个提醒导出工作区为HTML+Markdown——你不会主动做,但以后会后悔没做。

如果选Obsidian,忍住第一周装四十个插件的冲动。先装上面说的三个——Dataview、Git、Templater——花两周写笔记,之后再慢慢加。建一个对未来的自己有用的文件夹结构,哪怕现在觉得多余:我用 daily/projects/reference/people/writing/。经常在多台电脑间切换就开Obsidian Sync,或者用Git插件配合私有GitHub仓库自动备份。最重要的是,狂打链接。每个概念、人、项目、想法都套上 [[双链]]。图谱只有链接足够多时才有用。

类似文章