如果 2024 是野蛮生长,那 2025 就是「沉淀」。
不再什么都想做,开始想清楚什么值得做。
大三
大三上学期课变少了,但项目变多了。或者说,我开始主动找项目做,而不是等老师布置。这种转变发生得很自然——当你写了足够多的代码之后,会从「学习技术」变成「用技术解决问题」,甚至变成「用技术表达自己」。
广州的冬天下了几场小雨。我在图书馆靠窗的位置,戴着耳机,一写就是一下午。窗外是灰蒙蒙的天,屏幕上是黑底绿字的终端。那段时间的专注力是前所未有的。
Idrop.in:第一个「产品」
最有成就感的项目是 Idrop.in 云集——一个智能文件收集与管理平台。
之前做的项目大多是工具和脚本:一个爬虫、一个自动签到、一个课程作业。但 Idrop.in 不一样。它有完整的用户系统、大文件分片上传与断点续传、权限控制、AI 智能批阅、实时统计看板。后���是 Java 21 + Spring Boot 3.2 + MyBatis Plus + PostgreSQL 16,前端是 Next.js 14 + React 18 + Tailwind CSS,文件存储用 MinIO,还支持七牛云和阿里云 OSS 的动态切换。前后端分离,从数据库设计到 API 接口到前端交互,每一层都是自己写的。
做这个项目的过程中第一次体会到了「产品思维」和「技术实现」的差距。比如文件上传——技术上用 MinIO SDK 几行代码就搞定了,但产品上要考虑 5MB 分片、文件大小限制、格式校验、进度条反馈、失败重试、断点续传、秒传判断。每一个看似简单的功能背后都藏着一堆边界情况。还做了 CI/CD 流水线,每次推送 main 分支自动构建 Docker 镜像发布到 Docker Hub。
这是我第一个真正意义上的「产品」,而不只是一个 demo。
眼智医
眼智医 OculiChat 是另一个我引以为豪的项目——眼底智能辅助诊疗系统。用深度学习模型分析眼底图像,辅助医生进行早期病变筛查。
虽然是课程项目,但做的过程中接触了医疗 AI 的落地场景:数据标注的成本、模型推理的延迟要求、医生对「AI 辅助」的接受度。这些不是技术问题,是产品问题、是信任问题。写代码很快,但理解一个领域的复杂性需要时间。
有一天调试模型的时候,我把自己的眼底照片传了上去。系统返回「未检测到明显病变」,我松了口气,然后忍不住笑了——这大概是我做过的最能让人安心的功能。
从手机到硬件
移动端方面,生灵集 是用 Jetpack Compose 写的动植物科普社交 App。Kotlin、Retrofit、ExoPlayer、CameraX——Android 开发的技术栈算是完整地过了一遍。最让我头疼的是 RecyclerView 的性能优化和 CameraX 在不同机型上的兼容性。Android 碎片化这个问题,只有亲自踩过坑才知道有多痛。
IoT 领域也没落下。用 ESP8266 做了一个美的空调遥控器——从焊接电路板到解析红外信号,从写固件到做 Web 控制面板。夏天在宿舍里,把空调用开发板控制起来的那一刻,室友说「你是不是闲得慌」。但那种软硬件联调成功的快乐,只有做过的人才懂。
还折腾了 Apple Find My 兼容标签(NinjiaTag),虽然是 fork 的项目,但也借此学到了 BLE 广播协议和苹果 Find My 网络的工作原理。
学术
编译原理大作业做了从词法分析到语法树的完整实现,用 C 语言一行一行写的——没用 Flex/Bison,纯手搓。过程很痛苦,但写完之后对编译器的理解从「知道」变成了「懂了」。
用 ResNet18 做工业零件缺陷检测,验证集准确率 98.33%。数字很好看,但背后是无数次调参、数据增强、学习率调度的反复实验。深度学习不是调包侠,是炼丹师。
写了广商教务系统的成绩导出工具(gcc-cjcx),帮自己和同学省去了手动截图成绩单的麻烦。这种「解决自己痛点」的小工具,写起来最有动力。
博客大升级
博客也经历了一次大手术:Mix Space 从 v8 升级到 v10,前端从 Shiro 换成了 Shiroi(白い)。三台服务器的运维(一台香港、两台 Oracle 免费实例)、MongoDB 的自动备份、Nginx 配置的优化、CORS 跨域调试、CDN 缓存策略——运维能力就是在这个过程中被逼出来的。
有一次升级数据库的时候不小心把 MongoDB 的认证搞崩了,凌晨三点对着终端一脸绝望。修了两个小时才恢复。从那以后我养成了一个习惯:改任何配置之前先备份,改完之后先验证。
里程碑
- GitHub 仓库数达到 126 个
- 获得 Starstruck x2 徽章
- 项目覆盖 Web / Mobile / IoT / AI 四个领域
- 博客完成 Mix Space v8 → v10 大版本升级
- wps_script 稳定在 139 Stars
- 第一次做出了完整的「产品」而非「项目」
技术栈
TypeScript · Java · Kotlin · Python · PyTorch · ESP8266/Arduino · Jetpack Compose · Next.js · Docker
从前端到后端,从移动端到嵌入式,从深度学习到运维。不敢说精通任何一个,但至少每一个都用真实项目踩过坑。技术的广度像是在画一张地图,而深度需要在某些节点上停下来挖掘。
开源
继续维护 wps_script,新开了十几个仓库。开始意识到一个道理:开源不在多,在精。一个维护良好的项目,比十个荒废的仓库有价值得多。
明年要做减法。把核心项目做好,其余的该归档归档。
电子垃圾
- 三台云服务器(一台香港 ¥400/年、两台 Oracle 白嫖)
- ESP8266 开发板 ×3(一块焊坏了)
- cp02 蓝牙热敏打印机(用来折腾 BLE 协议)
- 一副降噪耳机(图书馆生产力工具)
关于未来
大四了。实习、毕业论文、找工作——三座山同时压过来。
说不焦虑是假的。打开招聘软件,看到「3-5 年经验」的要求,会忍不住怀疑自己做的这些东西到底有没有用。但转念一想,126 个仓库、139 个 Star、四个领域的项目经验——这些不是凭空出现的,是一行一行代码、一个一个深夜堆出来的。
代码是我表达自己的方式,开源是我和世界连接的桥梁。不管明年多忙,博客不能停,GitHub 不能停。这些东西构成了一个叫「小柒」的开发者的轮廓,而这个轮廓还在不断生长。
保持好奇心。保持饥饿感。
「我们终此一生,就是要摆脱他人的期待,找到真正的自己。」——伍绮诗《无声告白》