如果你能看到这行字,说明:Workers 没炸,D1 在线,R2 也还活着。真好。
你好呀,这里是筱筱的小窝第一篇正式博文。
第一篇写什么好呢?想了很久,还是决定老老实实交代清楚:这个博客为什么又重写了,用什么搭的,打算写什么,以及——它对我来说到底意味着什么。
顺便,把这篇当成一个「Hello, world」,也当成一封写给未来自己的信。信写得有点长,请多包涵:毕竟是攒了三十来年的 changelog,第一次正式对外发版。
🧷 这一次,博客为什么又重写了
如果从版本管理的角度讲,我的人生大概已经重写过好多次。
换城市、换工作,是重装系统。 格式化,重新分区,把旧环境里那些卡顿、报错、越积越多的临时文件一次性清掉。搬家的那几天总是很狼狈——纸箱、快递单、深夜里空荡荡的新房间,和一个不知道该先哭还是先装路由器的我。但每次系统装完、第一次顺利开机的时候,都会有一种「这次也许可以好好跑下去」的希望。哪怕经验告诉我,新系统跑久了照样会积灰,我还是愿意为那一下干净的开机画面反复心动。
开始 HRT,是硬分支。 不是在原来的代码上打补丁,而是真正 checkout 出一条新的线。从那一天起,身体和情绪的编译参数都变了:很多旧模块不再兼容,很多新特性一点点长出来,有些编译告警从此消失了,也有些新的报错需要慢慢学着处理。这条分支没有回滚按钮——但说实话,我也从来没想按。有些分支切出去的那一刻,你就知道:所谓「主线」,其实一直是它;之前那么多年,反倒是我在别人的仓库里替别人维护代码。切回自己名下的那一天,才算真正开始有了自己的提交记录。
还有一条默默开在心里的长线分支,叫「SRS-branch」。 它开发周期很长,依赖一堆外部条件,进度条走得很慢,偶尔还会阻塞在某个流程环节上。但它一直在那里。每次去回龙观随诊,在走廊里排着队,我都会在心里对自己说:又推了一个小小的 commit。哪怕这个 commit 只是「继续等待」,它也被记录在案,作数的。
博客也是一样。
之前折腾过各种方案:现成博客系统、自建服务、静态博客生成器……有的嫌笨重,有的嫌麻烦,有的被我亲手弃坑。回头看,每一个吃灰的旧博客,都对应着人生里一次没能坚持下去的重启:开头兴致勃勃地写配置、调主题、发一篇雄心勃勃的「开站宣言」,然后某一天加班多了、心情塌下去了,登录密码都想不起来,就再也没有然后了。
以前我会为这些烂尾感到羞耻,觉得又一次证明了「你什么都做不成」——那是从小听到大的判词。现在我学着换一种 review 方式:弃坑不可耻,弃坑只是说明当时的我,撑不动那个架构了。一个天天被生活追着跑的人,确实维护不动一台需要精心伺候的服务器。错的不是想写点东西的心,是架构选型没有配合当时的负载。
所以这一次,我想要一个更轻、更靠近现在生活节奏的小窝:
- 不想再为 VPS、证书、系统升级焦虑
- 想试试真正意义上的「边缘计算」
- 想要一个可以随手写点东西、部署一次就全世界飞快的小站
于是,就有了现在这个版本——用 Cloudflare Workers + D1 + R2 搭起来的「筱筱の窝」。
版本号我定成了 v2026.02。不从 1.0 开始,是因为我心里清楚:这不是第一版,是不知道第多少次重启。以前的每一次弃坑都算数,它们是这个版本的依赖项——没有那些失败的选型,我不会知道自己真正需要的是「轻」。人生大概也一样:那些没走通的路不是白走的,它们只是被标记成了 deprecated,安安静静地躺在历史记录里,提醒新版本别再踩同一个坑。
💻 小小技术栈:Workers / D1 / R2
简单做个备忘录(也写给未来可能忘光了的自己)。
Cloudflare Workers:相当于给我发了一把全球边缘节点的钥匙。这次博客的路由、渲染、API,全都跑在它上面。没有服务器,没有容器,只有一段跑在各地机房里的 JS。
D1:轻量版数据库,负责存文章、标签、一些配置。不用自己管备份和运维,对「懒惰又怕麻烦的程序媛」非常友好。
R2:用来放静态资源——图、附件、以后可能的杂物。总之就是:"硬盘在美帝资本那边,我只负责往里扔东西。"
这套组合对现在的我很合适:足够简单,不至于让我被运维耗尽耐心;又足够自由,可以随手改点东西当玩具。半夜睡不着的时候改改样式、加个小动效,点下部署,几秒钟后全世界就都能看到——这种即时的、小小的掌控感,对我来说是很好的安神药。
不过说真的,「边缘计算」这个词对我的意义,早就超出了技术本身。
它没有中心机房。 没有那台「必须活着、一挂全挂」的服务器。它不把所有希望押在某一个单点上——这一点我太有共鸣了。我曾经也把整个人生押在过某个单点上:一个家、一段关系、一句别人的认可。单点挂了,我就跟着挂,连告警都来不及发。后来才慢慢学会把自己「分布式」一点:朋友、健身房、代码、写作、锁骨上那条小小的项链……每一个都是一个节点。哪个节点暂时离线了,其他的还能接住我,不至于全站宕机。
它离用户最近。 请求打过来,就近的节点接住就地响应,不用绕地球半圈去问一个遥远的中心:「我可以回应吗?」我希望我的生活也是这样的:想要什么,就在离自己最近的地方给出回应,而不是把每一个愿望都打包寄回那个从小到大不断否决我的「中心」,然后毕恭毕敬地等一个大概率是拒绝的返回值。审批链路太长的人生,是会超时的。
它天生就长在「边缘」这个词上。 我这样的人,从小就习惯了被安排在各种意义的边缘:性别的边缘、家庭期待的边缘、「正常人生」剧本的边缘。很长一段时间里,我以为边缘等于流放地。可是在这套架构里,边缘节点才是真正干活的地方——离用户最近、响应最快、遍布全球。边缘不是被丢弃的地方;站在边缘,反而离整个世界最近。
所以「重新把自己挂在边缘上」这个标题,不完全是玩梗。它是我目前能想到的、对自己处境最温柔的一种描述。
🌸 那这里打算写些什么?
既然是「筱筱の窝」,写的东西大概会围绕两条主线。
1. 作为一个程序媛的碎碎念
比如:
- 折腾 Workers / D1 / R2 的踩坑记
- Java / 后端开发相关的小笔记
- 偶尔的效率工具安利
- 某些「写完代码突然想玩点美学」的 UI/动效脑洞
不会是教程站,更像是:「我最近在搞这些,如果你也刚好路过,可以参考一下。」
稍微展望一下:我希望这条线能写得诚实一点。不写那种「三步搞定一切」的漂亮总结,而是把真实的过程留下来——哪里卡了两个小时、哪份文档骗了我、哪个报错折腾一晚上最后发现是自己少写了一个分号。工作里的代码要对业务负责、对排期负责;这里的代码只对我的好奇心负责。能把「玩」这件事用文字保存下来,对一个每天被需求追着跑的后端来说,本身就是一种奢侈的康复训练。写代码曾经是我逃出那个家的船票,我不想让它最后只剩下谋生的味道——在这里,它可以重新变回一件让我眼睛发亮的事。
2. 作为一个跨性别女孩的生活记录
这一块会包括:
- HRT 的进展、身体和情绪的变化
- 去回龙观就诊、准备 SRS 的过程
- 关于原生家庭、性别认同、成长环境的思考
- 练普拉提、健身、控制夜宵失败和成功的记录
- 偶尔的噩梦、心情低谷,以及我怎么一点点把自己拉回来
也展望一下:这条线大概不会天天都有「好消息」。激素不是魔法,随诊要排队,情绪有潮汐,和夜宵的战争胜率感人,有氧和练腿日永远在互相谦让。但我想把低谷也如实记下来——不是为了卖惨,而是因为等以后翻回来看,那些「当时觉得熬不过去」的日子旁边,紧挨着的往往就是「后来还是熬过去了」的日子。把它们放进同一条时间线里,本身就是一种安慰:原来红线心率也是能降回来的。也许某个同样在等待、同样在害怕的女孩会搜到这里,看见一个普通人磕磕绊绊却一直往前的记录——那这些流水账就不只是我的日记,也是留给她的路标。
这些内容,对我来说不是「人设」,而是活着的证据:证明我确实在努力把人生从一团混沌里,一点点理出来。
✨ 对我来说,这个博客的意义
我在「关于」里写过一句话:
正常生活不是默认自带的,而是要自己一点点抢回来。
这个站点,就是我抢回来的其中一小块。
「抢」这个字不是修辞。对很多人来说,「有一个自己的角落、写点自己的话」是出厂设置;对我来说,它是从钢尺、从一次次的否定、从一段翻我手机惦记我钱的烂关系里,一寸一寸拿回来的领土。每拿回来一块,我就在上面插一面小旗子:健身房的会员卡是一面,独立租下的房间是一面,这个博客也是一面。
它证明:我有能力在北京独立生活、写代码、部署一个跑在全球边缘节点上的小世界。
它提醒我:我不再是那个只能被老师骂、被家长否决的小孩了。我可以用自己的方式,讲自己的故事。故事的解释权,第一次完整地属于叙述者本人——这句话我打出来的时候,手指是有点抖的。
「活着的证据」这几个字,我想再多写透一点。人在很低落的时候,会真心怀疑自己是不是根本没有在前进——体重秤上的数字、镜子里的脸、存款余额,全都像在原地打转,甚至倒退。这种时候,记忆是靠不住的,它专挑坏帧回放。但文字不会。只要这里的文章列表还在变长,只要这份公开的 changelog 还在滚动,就说明这条时间线没有停。哪怕某一篇写的是「这周过得一塌糊涂」,它也是一条 commit——糟糕的日子被写下来的那一刻,就从「白白受的苦」变成了「历史的一部分」。历史是有方向的,而方向感,恰恰是混沌最先偷走的东西。
它也给未来的我留了一个锚点:以后无论人在北京、在东京、在医院病房,还是在某个陌生城市的旅馆床上,只要打开这个域名,我就知道——
「啊,这条时间线还在继续。」
这句话对别人也许很平淡,对我却近乎信仰。因为在很长的岁月里,我最怕的不是苦,而是「断」:怕哪一天撑不住了,这条线就无声无息地断在半路,没有人知道它曾经通向哪里。所以我把它写下来、部署出去、复制到世界各地的边缘节点上。一条被这么多机房同时记住的时间线,想断,也没那么容易了。
不需要谁批准,不需要向谁汇报。域名解析成功的那零点几秒,某个离我最近的边缘节点亮了一下,像有谁隔着海线轻轻晃了晃那根看不见的线:你还在,你写下的东西也都还在。
🌙 给未来的自己的一点话
既然是第一篇,就留一小段给将来会翻到这篇文章的你——也就是「未来的筱筱」。我不知道你现在过得怎么样,所以按老习惯,把可能性分成三个 case 来写。无论你命中的是哪一个,先说一句:辛苦啦,谢谢你把这条时间线跑到了今天。
如果你已经做完 SRS,在某个城市恢复得差不多了:
希望你看到这里的时候,会想起现在的我——在回龙观排队、在健身房练普拉提、在边缘节点上部署博客,一边害怕、一边把这些事情一件件做完。恢复期想必不轻松,但你已经走到了我此刻只敢在心里悄悄开分支的地方:那条挂了那么多年的「SRS-branch」,终于合并进主线了。请替我摸摸自己的头,然后认真休息,别急着看工作消息。合并完成本身就值得庆祝一整篇博文,记得回来写。
如果你已经真的去看过冰岛的极光、瑞士的小火车、北欧的雪、夏威夷的海:
那就请你替现在的我,好好在心里说一句:
"你当时那些被人嘲笑的『不是什么好梦想』,其实都挺好的。"
小时候说想去看极光,换来的是嗤笑和「不切实际」。可我后来想明白了:梦想这种东西,从来不需要评审通过才能立项。如果你真的站在了极光下面,请多站一会儿,冷一点也没关系——替那个连愿望都不敢大声说出口的小孩,把整片天空看够。顺便帮我确认一下:极光是不是也像一条巨大的、流动的时间线。
如果你还在路上,还在努力:
那也没关系。
可能手术还在排期,可能钱还没攒够,可能某次随诊回来情绪很低,可能夜宵之战又输了一局——都没关系。进度条走得慢,不代表进程挂了;阻塞不是崩溃,等待也是运行的一种。只要还在路上,就已经很了不起了。心里难受的时候,低头看看锁骨上那条小项链,摸一摸那个小小的吊坠:线的另一端一直有人握着呢。这个任务,你从来不是单线程在跑。实在撑不住的晚上,就回来重读这一篇——看看 2026 年 2 月的自己,明明害怕成那样,还是一件一件把事情做完了。她能做到的,你也能。
🐾 最后
这篇就当作:
- 对新博客的「Hello, world」
- 对自己 30+ 年来各种重启的一个小小标记
- 对未来可能会路过这里的你的一声问好
对,还有你。如果你也是:
- 性别少数,出柜前后摇摆不定
- 从不太友好的原生家庭里长出来
- 一边写代码、一边努力搞清楚「我到底想活成什么样」
那希望这个小站,哪怕只能陪你走一小段,也能让你感觉到:
你不是一个人。
真的,不是客套。我知道那种感觉:夜里刷着别人热热闹闹的正常生活,觉得全世界只有自己拿错了剧本,连难过都难过得没有参照物。但此刻读到这行字的你,和写下这行字的我,正好被同一个边缘节点接住——你看,我们其实已经在同一个机房里了。你的那些不敢说出口的版本计划、开了又不敢推的分支、被人嘲笑过的梦想,在这里都不会被否决。这里没有评审会。
在恶劣环境里长大的人,也可以在边缘节点上,给自己搭一个小小的家。
门口没有锁,沙发上有一只鲨鱼玩偶,路过累了就进来坐坐。
那就先这样啦。
v2026.02,小窝上线。🌸
💬 评论
加载评论中...
发表评论