李喜的blog

我的折腾记忆:从 Root 模块到这座博客

把散落在 Obsidian 里的项目、踩坑和教训,整理成一篇写给自己的记忆。

我很少回头看自己写过的东西。

直到最近整理 Obsidian,才发现这些年随手记下的项目、踩坑、命令和复盘,已经攒成了一座小小的记忆库。它们大多不体面:有凌晨三点还没跑通的模块,有改错一个字节导致整机卡住的夜晚,也有一些当时觉得天大的问题,后来只用一句“先判层再动手”就概括了。

于是我想,不如把这些记忆整理成一篇文章。不是教程,也不是成绩单,只是一次回头看看。

一开始,只是想改一台手机

我对 Android 的兴趣,是从“想让它按我的想法运行”开始的。

后来接触到 Root、Magisk 和 KernelSU,开始写一些小模块:改一个属性、换一个配置、让某个功能在系统里安静地工作。模块很小,但涉及的东西一点都不少:挂载、权限、启动顺序、不同机型的差异,以及“在我这里能用”和“在别人手机上也能用”之间的距离。

也是从那时候起,我养成了一个习惯:每做完一个模块,就把目录结构、关键文件和踩过的坑记下来。当时只是为了下次不再翻车,后来才发现,这些笔记就是我最早的项目记忆。

踩坑才是主线

如果只看结果,很多东西看起来都挺顺利。但真实的记忆里,大部分时间都花在排查上。

我记过一些很具体的坑:换行符不一致导致脚本在设备上直接报错;打包路径里混进了反斜杠;进程卡住之后,普通的超时和结束方式根本不起作用;还有一些问题,表面上像是网络或服务端,实际上一层层剥开,最后只是一个本地状态判断。

这些经历后来变成了一条我很喜欢的工程原则:先判层,再动手。

先弄清楚问题在哪一层——是脚本、是模块、是系统、是网络,还是调用方——再决定要不要改。不然很容易在错误的地方修很久,最后发现真正的问题在另一层。

还有一条:失败记录也是资产。 成功的步骤只能证明这条路走得通,失败的记录却能告诉未来的自己,哪些方向不用再试。

把记忆交给 Obsidian

笔记越积越多之后,我开始认真整理它们。

我给知识库加了索引、标签和固定的目录:用户偏好、环境信息、项目记忆、经验教训。每新建一条记忆,就在索引里登记一行;每个项目一个文件;每条教训尽量写成“现象、原因、做法”,而不是只留一句“这里有问题”。

后来我开始用 opencode 和 AI 辅助写代码。AI 很快,但它不会自动记得我的环境、我的习惯、我之前踩过的坑。所以我把这些记忆外置到 Obsidian:需要的时候先读索引,再读相关项目,最后才动手。这样它就不只是一个“会写代码的工具”,而是一个知道我做过什么、踩过什么的搭档。

记忆库最大的价值,不是让我记住更多,而是让我不用每次都从零开始。

后来,我给自己造了一个博客

再后来,我把折腾的范围从手机扩展到了 Web。

这个博客是用 Next.js 和 SQLite 搭的。写文章、发朋友圈、传照片、评论、友链、RSS、搜索,都是自己一点点拼起来的。它不追求大而全,更像是一个可以随手改、随手加东西的小屋。

我在里面放了一个音乐播放器,一个会显示当地天气的小胶囊,还有一张旅行地图。它们不是必须的功能,但会让这个站点更像“我”的地方:写累了可以听歌,打开首页能看到今天天气,去过的地方在地图上亮着。

写博客和写模块有点像。模块是在系统里留下自己的痕迹,博客是在互联网上留下自己的痕迹。区别只是,一个跑在手机里,一个跑在浏览器里。

写给以后的自己

我不知道下一个项目会是什么。可能是另一个模块,可能是博客的下一个功能,也可能只是一次没有目的的折腾。

但我想把这几件事继续记下去:

  • 先判层,再动手;
  • 把失败也写下来;
  • 能用简单方法解决,就不要把它复杂化;
  • 做完之后,留下可以复现的步骤;
  • 偶尔回头看看,自己是怎么走到这里的。

这篇文字,也算是在记忆库里新加的一页。

如果你恰好路过,希望这些折腾对你有一点用。没有也没关系——它首先是写给我自己的。

跳到评论 ↓

相关文章

评论 0

还没有评论,来说点什么都行。

写评论

0/1000

评论会经过关键词过滤;带图片的评论需要审核后才会显示。