2025 年对我来说,是一个节奏明显不一样的年份。
工作本身发生了一些变化,一方面是内容上的调整,另一方面也因为单位的特殊性,涉及比较高的保密要求,很多事情并不适合写出来。再加上整体节奏不像去年那样紧绷,我不再每天十几个小时泡在公司里,于是突然多出了一部分可以自由支配的时间。
这些时间我几乎没有拿去“休息”,而是顺手用来做了一些事情。 它们大多发生在工作之外,也基本不和工作直接相关。
之所以会这么做,其实和我的一些想法有关。
我并不是什么大厂背景的技术人,也没有年薪几十、上百万的预期。对我来说,世界并不只是由头部互联网公司组成的,更多的是数量庞大的普通公司、民营企业,而它们中的大多数,甚至还没真正走到“追逐前沿技术”的阶段。很多时候,连负载均衡这种事情,都是相当遥远的。
也正因为如此,我对所谓的年龄焦虑、技术斩杀线之类的说法,并没有太强的感受。
在我看来,去掉互联网的泡沫之后,只要我能够持续创造出有价值的东西,就一定能拿到与之相匹配的回报。只不过在泡沫之中,这种“匹配价值的回报”,往往会显得不那么诱人,甚至远低于某些人的心理预期。
但时代的浪潮并不是靠个人意志就能左右的。正是因为太多人执着于攀登那些遥不可及的浪尖,才会在浪潮退去的时候,来不及反应,被拍得措手不及。
这当然只是我个人的理解,并不是什么结论,也谈不上评判。 只是基于这样的想法,比起焦虑那些还没真正落地的技术,或者遥遥无期的方案,我更愿意把时间花在一件事上:尽量稳固自己的基本盘
至少让我自己,始终是一个在未来还能持续创造价值的人。
这篇文章想记录的,就是在这样的心态下,这一年里,我在这些空出来的时间里,都折腾了些什么。
一月-从一个自用项目开始的祛魅#
2025 年的开头,我把之前写的积分商城和弹幕机器人整理了一下,正式开源,并补上了 Docker 部署方案。
这算是我比较完整地、从实战角度重新审视 Docker 的一次机会。结论其实挺简单的:
如果真的涉及多实例、复杂部署、负载均衡,那 Docker 确实很好用; 但如果只是一个一台服务器就能跑得很舒服的小项目,它也没有被说得那么“神”。
对我来说,这更像是一次技术祛魅。 不是说 Docker 不重要,而是它并不需要出现在每一个项目里。
这个月还顺手给机器人补了禁言一类的基础能力,整体还是“我自己用得顺就行”的阶段。
二月-开始意识到有人在用#
二月做的事情不算多,但对我来说很重要。
我开始收到一些使用者的反馈,于是给积分商城和弹幕机器人补了两个看起来很小的功能:
- 兑换成功后的邮件通知
- 虚拟商品支持只填写邮箱,不再强制填地址
这些功能本身没什么技术含量,但它们让我第一次清楚地意识到一件事:
这个东西,已经不是只给我自己用的了。
从这个时候开始,我对这个项目的态度发生了一点变化。
三月-开始有意识地把东西封装出来#
三月是一个很明显的转折点。
一方面,我帮朋友做了一个记录奶茶消费的小程序。 虽然这个事情最后并没有继续推进,但让我完整地重温了一次微信小程序的开发流程,也顺手写了一篇博客记录。
另一方面,我开始认真思考一件以前其实没怎么想过的事:
工作中反复遇到的这些东西,能不能少写几遍?
于是这个月我做了不少偏“基础建设”的事情:
- 整理了一套 webman + vue3 + naiveui 的后台脚手架
- 用 Go 写了一个很简单的错误日志收集小站,顺便熟悉 Go
- 把公司里一直在用的 MySQL 备份脚本整理完善后开源
- 给积分商城和弹幕机器人加了签到系统
从这个阶段开始,我做项目时的关注点慢慢从
功能写没写完 变成了 下次还要不要再写一遍
四月-封装开始变成一件很自然的事#
四月基本可以算是一个「封装月」。
我把之前在项目里零零碎碎用到的一些功能,开始系统性地拆出来,变成独立的包:
手机号归属地查询 ↗、身份证归属地查询 ↗、地址解析 ↗、URL 签名 ↗、TOTP 校验 ↗、规则引擎 ↗,还有一堆 utils ↗ 级别的小工具。
它们大多不复杂,也谈不上什么设计模式,但都有一个共同点:
我真的在项目里反复用到它们。
同一时间,积分商城和弹幕机器人也加上了 PK 播报能力,开始慢慢往「更像一个完整系统」的方向走。
五月-从我在用到我要维护#
五月我开始认真对待 GitHub 上的这些仓库。
我给不少项目补了双语 README,重构了积分商城和弹幕机器人的管理后台,也终于给商城首页加上了分页这个功能,还有一些校验之类的。
其实一开始就该有,只是当初完全没想到真的会有这么多人用。
也是在这个阶段,我第一次明确意识到:这个项目不能再按“自用工具”的标准来对待了。
这个月我还沉迷了一阵子 AI,给自己搞了一套每日热点新闻推送,每天早上自动收集、处理,只留下我真正可能感兴趣的内容。纯粹是为了让自己少刷一点无意义的信息流。
六到八月-系统开始变复杂#
这几个月,积分商城和弹幕机器人的变化开始变得比较明显:
- 拆分货币体系(因为根据需求加入了签到系统,而签到系统得到的奖励代币又要跟上舰的积分有所区别)
- 引入返利和双货币逻辑
- 完善了接口加密逻辑,分别封装成 npm 包和 PHP 包
- 给项目接口的加密方式都升级成了封装的 AES + RSA 混合加密
这些变化大多不是「我想加」,而是有人真的反馈过来了需要使用,以及有认真的在使用的过程中遇到了问题,于是不得不去想更合理的设计。
与此同时,我也继续把工作中那些「懒得一次次封装」的东西独立出来,比如 ip138接口封装 ↗、促销策略引擎 ↗、ID 生成器 ↗,还有一个让老板自己查数据库的小工具 ↗。
有些工具,说实话,做出来就是为了让我清净一点。
九到十月-换工具解决问题#
这段时间我做的事情跨度有点大。
B 站小小的发力,更新了一轮风控,大部分接口都需要通过 WBI 签名鉴权了,不过好在问题不是很大,顺利解决了。
直播间数据流也迎来了一波更新,部分数据开始通过 protobuf 传输,protobuf 逆向确实让我头疼了两天,不过好在 B 站对这一部分貌似也是浅尝辄止,并没有大范围推广,因此解决这个问题并没有产生天大的工作量。
也首次尝试用 Wails 和 Go 做桌面应用。
还有一个天大的事情,九月份我发现了一个不是很健康的,带颜色的小说网站的漏洞。
色情果然是除战争外的第一生产力推动力量,火速用 python 搞了个简易爬虫,爬了人家八万多篇小短文,可惜人家在十二月中的时候改版了整个系统,在后端把爬虫堵死了。
虽然说感觉如果可以伪造IP,好好做一个爬虫的话应该还可以爬,但是他一个月都更新不了30篇,八万多篇已经不知道是他多少年的存货了,我也不想在这个事情上折腾太久,八万多篇都不知道看到猴年马月了。
然后因为想要更高效的筛选小说,比如我搜索一个情景或者剧情方向,就给我找到最符合方向的小说,因此用到了向量搜索,去研究了 Milvus,做了向量数据库的 REST 封装并且公开了。
当然只是公开了向量数据库相关的封装,并没有公开小说,公开那玩意违法,只能我自己享用了。
以前的我可能会在需要实现某种功能时投入更高的技术能力硬莽过去,而现在,在工作中慢慢失去了那股热情的我,在面对一些语言天生劣势的时候比起硬莽可能会更加倾向于去更换具备足够优势的语言。
感觉就好像年轻的时候坚信一力降十会,老了之后跟别人讲一巧破百拙
不过只要解决了问题就好,了解的东西增加了之后确实会慢慢摆脱那种既分高下也决生死的冲劲,我说不上这是不是好事,但目前想来也还不觉得是个坏事。
同一时间,在我使用了一段时间 Hexo 作为自己的博客框架后,也渐渐感到不太满意,最后决定把博客迁移到 Astro,并顺手把之前散落在各处的 demo 和小工具慢慢收拢回来。
十一到十二月-开始维护自己的空间#
年底的节奏明显慢了下来,可能工作上的事情多了一点点,出差那些让我没有那么多闲心去折腾别的。
我把更多精力放在整理和维护上: 继续打磨 Astro 博客,补文档,做提问箱,完善小工具页面;
给积分商城和弹幕机器人补齐文档;
把错误日志相关的工具重新整理了一下;
顺手写了一些真正能长期用的小工具。
这些事情本身并不刺激,但它们让我第一次产生了一种比较踏实的感觉:有些东西,我可能会一直维护下去。
写在最后#
我一直不觉得自己是个会写文章的人。
对我来说,大多数博客的产生方式都很固定:先遇到一个问题,解决它,然后顺手记下来。
回头看这一年,做过的东西确实不少,但真正重要的,可能并不是具体写了多少代码、开了多少仓库,而是我越来越清楚自己想要什么样的节奏。
不是在浪尖上冲刺,也不是彻底躺平,而是尽量让自己始终处在一个还能持续产出、也能长期维持的状态里。
比起对某项技术的热情,或者研究了多少看起来很厉害的东西,我可能更在意的,是自己在未来的环境里,能不能持续创造出有价值的东西。
当然,也会有人觉得,进入所谓的 AI 时代之后,很多事情老板张张嘴、让 AI 做就行了,那这些东西自然也就不值钱了。
但实际情况往往没这么简单。
老板对着 AI 随便描述一句需求,和一个有经验的人带着明确的问题、约束和判断去用 AI,最终得到的结果,差别是非常大的。
工具在变,但解决问题的经验,以及看问题、拆问题、兜底问题的能力,并不会因此消失。它们也许会随着泡沫的起落而被低估,但很难真正变得一文不值。
就像过去的八级钳工一样。随着数控机床的精度不断提高,单纯去和机器比精度,确实已经没有太多意义了。但在非标场景下如何处理问题,设备出现异常时如何兜底,这些才是八级工真正有价值的地方。
对我来说,这一年做的很多事情,本质上也是在不断积累这些东西。
它们不一定时髦,也未必耀眼,但至少让我确信一件事:只要还能持续解决问题,我就还站在牌桌上