Oct 20 2025
https://github.com/zhu327/pingsix
PingSIX 自从上次重构之后, 我一直在考虑如何扩展这个项目的功能与使用场景, 有2个方向可以考虑:
- 支持proxy-wasm插件
- 实现pingsix-ingress-controller
在调研了proxy-wasm的相关功能后, 结论是由于pingora面向的场景是CDN的反向代理, 所以没有考虑过方便的修改请求体与响应体, 这就造成很难基于pingora来实现proxy-wasm的ABI, 如果我要自己定义一个wasm的接口协议, 没法复用社区现有的proxy-wasm插件, 那就没必要了, 不如直接写Rust的插件. 相关参考内容:
在放弃了proxy-wasm的支持后, 我开始调研如何实现pingsix-ingress-controller, 由于pingsix的的资源定义是参考apisix来实现的, 所以就直接参考apisix-ingress-controller来实现我们自己的pingsix-ingress-controller.
Oct 16 2025
这是最近在小组内做的一次技术分享的文字稿,总体来说我觉得没有表达出特别硬核的内容,我本身也希望说这次分享不用讲的太硬核,在分享的开头还设计了互动环节,分享的过程中也尝试加入一些问答来互动,奈何现公司的技术氛围确实比较沉闷,似乎同事都比较I,好在最后的问答环节有几个比较好的问题,总体来说还算是一次成功的分享吧,希望自己能输出更多的好内容。
P1: 我们写的代码是写给谁看的?
- (🎤 互动环节): “大家有没有过接手一个项目时,看到的第一感觉是:我该从哪下手?结果花了三天才搞明白一个功能的逻辑。有过类似经历的兄弟举个手我看看?”
- 小说家写小说给读者,建筑师盖房子给业主… 那我们程序员写代码,最终是写给未来的自己,和接手我们代码的同事看的。
- 代码的可维护性,决定了我们是在“创造价值”还是在“创造负债”。
P2: 举几个代码坏味道的例子?
- (🎤 互动环节): “看过《重构》的同学应该都知道代码坏味道。来,大家一起吐槽一下,你在项目里见过最痛苦的代码坏味道是什么?” (引导大家说出几个)
- 其实按照我朴素的理解,能让我快速理清逻辑的就是好代码,理解起来很费劲的,那肯定就充满坏味道。
- 正如我在入职后接手的
kitam项目,它就充满了这些味道:
- 代码逻辑不内聚:功能实现像天女散花。
- 分层过多且混乱:一个请求要穿越重重关卡。
- 外部依赖离散:数据库、缓存的调用没有统一规范。
Sep 2 2025
说到“Vibe Coding”,这个词最近在开发者圈子里越来越流行。在过去,我的实践很大程度上还停留在比较初级的阶段:把需求和代码片段在 ChatGPT、Google AI Studio 或是 Grok 之间来回地复制粘贴。来到新公司后,虽然开通了 GitHub Copilot,体验有所提升,但感觉它更多时候还是一个“超级智能补全”工具。直到今年7月份,公司给配上了 Cursor,我的编程体验才真正开启了一场变革,正式进入了 Vibe Coding 的奇妙旅程。
恰好,距离我上次更新个人项目 PingSIX 已经有一段时间了。PingSIX 是一个我基于 Cloudflare 高性能框架 Pingora 开发的 API 网关。两周前,Pingora 发布了 0.6.0 版本,这给了我一个绝佳的契机。我决定利用这个机会,彻底实践一次全程使用 Cursor 的 Vibe Coding,对 PingSIX 进行一次大重构。
这次重构断断续续花了一周时间,最终新增了 6636 行代码,删除了 3578 行。这不仅仅是数字上的变化,整个项目在架构、可维护性、可读性、安全性及性能上,都达到了一个我自己非常满意的状态。
Aug 4 2025
最近在新公司接手了一个历史悠久的项目,功能不多,代码量却不小。深入其中,才发现有太多太多的槽点,简直让人头大。每当要新增一个功能或者修复一个 Bug,都感觉像是在雷区里跳舞,步步惊心。
总结下来,这个项目主要有这么几个“硬伤”:
- 代码逻辑不内聚:同一个功能的实现,像天女散花一样分散在好几个不同的文件里,想理清完整的逻辑链条,得在 IDE 里跳来跳去,极其耗费心智。
- 分层过多且混乱:一个简单的请求,要穿越重重关卡,经过好几个层级的调用才能抵达终点。有时你都分不清某一层到底是干嘛的,感觉纯粹是为了分层而分层。
- 内部自研框架不好用:项目依赖了一个内部的
kgo 框架,但文档缺失,设计理念也比较陈旧,出了问题排查起来非常困难。
- 外部依赖离散:对数据库、缓存、外部 API 的调用封装得五花八门,没有统一的规范和入口,整个项目像一个杂乱的“百宝箱”。
恰好,Leader 对这个项目制定了新的方向与目标,之前这些遗留问题实实在在成了我们前进路上的绊脚石。因此,一次彻底的架构升级与重构势在必行。同时,部门内也正在推广项目规范化和最佳实践输出,这简直是天赐良机。
很久以前我就读过《架构整洁之道》这本书,在之前的项目中也或多或少受到一些启发,但从未有机会从一个项目初始就完整地贯彻整洁架构的理念。这次,我决定抓住机会,来一场彻彻底底的整洁架构实践。在这个过程中,我感觉自己对整洁架构的理解,以及对 SOLID 原则的落地方式,都有了前所未有的深入体会。
Jul 7 2025
前言
我一直是个重度的书签使用者,多年来都依赖 Pocket 来收藏和沉淀那些在网上看到的、值得一读的文章。然而,最近 Pocket 宣布其通知服务即将关闭,这对我来说像是一个信号,是时候去寻找一个更稳定、更可控的替代品了。
我的探索之旅就这样开始了:
- Raindrop.io:社区里很多人推荐,功能也确实强大。但不知道是不是网络原因,我这边访问起来总是感觉有点慢,而且用惯了 Pocket 的我,对它的界面和交互逻辑始终有些不太习惯。
- 自建服务:作为程序员,第一反应自然是自己动手。我找到了像 linkding 这样的优秀开源项目。我尝试把它部署在 fly.io 的免费实例上,但 linkding 对资源的要求不低,最低配的 256M 内存实例直接就 OOM (Out of Memory) 了,升级配置又意味着成本。
- 从零开始写一个? 这个念头一闪而过。我甚至构思好了技术选型:参照 linkding 的功能,用我最近在学习的 Rust 实现后端,部署在 Cloudflare Workers 上,再配上 Cloudflare D1 的 SQLite 数据库。这套方案 Serverless、成本极低,堪称完美。但转念一想,这工程量可不小,对于业余项目来说,我实在没有那么多时间投入进去。
就在我快要放弃,准备将就着用某个方案时,我想起了一篇以前收藏过的文章。