月报 | 2024.10 期
受 Juniper Photon 的启发,决定从这个月开始,每月写一篇总结,主要记录分享下过去一个月(2024.10.19~11.18)的产出和思考
过去一个月算是一个比较松弛的状态,全国各地跑了好几个城市,跟几个朋友聊了下近况和准备的事情,也趁着闲暇时间梳理了下之前的一些烂尾项目,把该还的技术债还一还。
技术
这个月做的跟技术相关的事情不多,主要就两个内容:
Blueprint - 一个数据库 migration 小工具
这个小工具早在今年 4 月份就有开始做,当时是因为手头上有好几个 side project 同时在迭代,为了减少管理本地和生产环境的数据表结构的心智负担,需要使用工具来帮我协助我。
一开始是打算用 ORM 框架的 migration 功能来实现,但遇到了几个问题:
- 项目在用的语言有 Go/TypeScript/PHP,并且有的项目是比较小没有用 ORM 的,这就导致了没办法用 ORM 或者是很混乱
- Go 语言虽然是大部分项目采用的语言,但恰巧那个时间点在 GORM 上用得比较难受(GORM 有一些设定比较奇怪,提过 issue 但作者认为是 feature),正在慢慢转向 XORM 或者纯原生 SQL
简单来说就是需要这样一个工具:简单通用,跟编程语言无关,不依赖第三方库,它只需要提供这几个功能:
- 用
.sql
/_rollback.sql
一对文件作为一个 migration,可以快速创建一对文件 - 识别未执行的 migrations 并执行
- 回滚 migration
需求明确且简单,最后决定自己做一个,于是就有了这么一个项目:Blueprint (是的,灵感来源于 Laravel 的 Migration)
在四月份的时候因为事情比较多,只实现了 快速创建 .sql 文件
和 执行 migration
这俩功能,现在把回滚
、导出已有表结构
也实现了,开源到 GitHub 上了:https://github.com/YianAndCode/blueprint
垃圾邮件
早些时候部署了一个自建邮局,最近一看数据库发现已经有一百多万行数据了,然而真实邮件也就不到一万封,剩下的全是被人用脚本跑的垃圾邮件。
看了下 GitHub 上的 issue,发现原作也被垃圾邮件困扰,后来迭代了几个版本去对抗垃圾邮件,哈哈
虽然说用新版代码再部署能缓解,但当务之急也需要先处理下数据库里的垃圾邮件数据,不然在我的小机器上性能已经很糟糕了。分析了一下垃圾邮件的一些特点,写了个后台任务跑了几个简单的策略(具体的策略以后再写文章分享),竟然就把 98% 的垃圾邮件清理掉了,数据表文件也从 5GB 瘦身到了 200MB 内。
生活
过去一个月算是半个空中飞人,一共飞了四次,上一次飞那么多的还是在 2020 年出差🤣写飞行日志都已经从兴奋到有点麻木了,今年打卡了的国内航司有海航、国航、深航、南航四家,都愿意帮忙写(不一定是机长写),有几次出乎我意料的,机组很亲切热情地留言互动。
最近一个月去了成都、佛山、南京、上海这几个地方见朋友,去了成都熊猫基地、南京红山动物园、上海博物馆(埃及展),第一次知道小熊猫这种可爱的物种 :-P
去朋友在上海新开的咖啡馆&酒吧的时候突然被抓去帮着拍了一组产品宣传图,突发奇想,或许我也可以尝试接些商业拍摄的单子?hhh
BTW,今年集齐了北京、东京、南京,如果按照维基百科对于“西京”的解释是可以指:中国成都、日本京都等地,那也算是去过西京了🤣