坐标广东惠州。GitHub 上的东西基本都长在同一个方向上——给身边的人做点真能用的学习工具。以前 ID 叫 Yihggh,改过来之后老仓库的链接懒得一一换,就一直留到现在。
起因很小。我爸妈老问我「存储满了删什么」「这条中奖短信是真的吗」「照片怎么搬到新手机」。市面上的书要么太浅要么像维修手册,索性自己写了一本,就是你缺失的那门手机课。写着写着没收住:84 章、19 种语言、四种形态,连文言文版都有(书名就叫《手機課》,三个字)。给阿拉伯语和希伯来语调从右往左排版的那几天,我一直在问自己图什么。答案写在首页页脚:愿每一位长辈都能安心用上智能手机。
后来发现要教的不止长辈。高中物化生语数英学习大礼包是给广东高考做的,纯前端、没后端、没账号,学习记录全存浏览器。同类平台靠服务器收学生数据活着,我就想证明不收数据也能做到同样的功能。情境题全是身边的东西:广州塔电梯的超重失重、潮汕工夫茶的水垢、茂名荔枝园的鸡。这个仓库教我的比它教用户的更多——题库里 520 道重复题是一条条比对删掉的;正确答案老扎堆在 A,就把 200 道题的选项整体换位;还发现有个文件因为模板字符串没闭合,自上线起就从未执行过,五个模块安静地躺了两个版本。这些事没人查得出来,但我知道。门禁后来干脆在 CI 里自己注入缺陷,证明自己真的会红——门禁不是永远通过的摆设。
再后来是 SmartSideBAR,给希沃一体机做的侧边工具栏。市面上的教学软件两件事没做好:批注只能画不能认,工具不懂课表。所以它能把手画的圆掰成正圆、手写板书离线转成文字、到点自动切上课模式,放学弹一句「已放学,辛苦了」。有个细节死磕了很久:定时提醒到点必须弹通知,不能只响铃——老师上课戴着耳麦,铃声是听不见的。最早 Electron 写的,后来每个反馈都得改两遍,索性用 C# 整个重写,100MB 压到 32MB。自签根证书的方案也废了:往用户机器里装根 CA 这事风险太大,等真有分发量再买正规证书,SmartScreen 弹窗就点一下。
知债:星穹学途是最新的一个,名字明牌致敬崩坏:星穹铁道(Astral Express 对 Astral Path,铁道对学途)。想解决的事:跨课程卡住你的往往不是眼前这一章,是前面某门课欠的先修债。它把债找出来、排出做得完的计划、陪你一点点销掉。底线写死在代码里:数字只能算出来,AI 不许改分;出题必须带原文页码,没出处不许出;还有一张九个词的禁语表,「太笨」「没救」这类话命中即降级成中性文案。教育产品,这些不是加分项,是准入项。
一些习惯和口味:
- 注释写「为什么」,不写「做了什么」
- 架构文档写给后来接手的人——包括过几个月忘了细节的自己
- README 里每个数字都得有脚本核对,漂移了 CI 会红
- 讨厌宣传腔,专门有个提交叫「重写 README,去掉宣传腔」
- 走过的弯路原原本本写进 release notes,避免下次重走
- 液态玻璃染上瘾了,四个项目没一个逃掉
- AI 写代码用得很凶,但规矩是它打草稿、我签字,合并前每一行自己认过
现在混在 SECTL,一个做班级开源工具的社区,GitHub 组织栏填的也是它。ClassIsland 的代码常去偷师,通知中心和插件系统就是这么学来的;朋友的背诵工具也 fork 下来研究过实现。最近在备赛,答辩脚本写了三份,比写代码还累——演示翻车的预案都备好了,兜底用的录屏就在本地躺着。
B 站同名 @ClassTechStar。过去一年提交一千七百多次,不少落在凌晨两点以后,别学我。
最后一个练习,从书里抄来的:想想哪三样东西丢了会真正心疼,然后确认它们被备份了。
永远相信美好的事情即将发生。




