自宅创业 - #17 代码重构,以及蚁阅的更新
感觉时间过的飞快,先记录一下这个月的事情,年终总结要等过年前更新了。
代码重构
这个月前期主要在做代码重构,提高项目的开发效率。
首先是开源了 Hami-Vuex 这个库,我也将蚁阅和果蔬时节两个项目的前端状态管理换成了 Hami-Vuex。重构之后代码更加模块化了,代码提示也非常友好,可以参考 PR#11。
其实很早在蚁阅的前端代码中就有部分模块化的尝试,但写法算不上优雅,在果蔬时节中把这个尝试继续完善,最终抽象成了一个完整的库。
另一个重构是把果蔬时节的小程序端和后台管理界面代码拆分,原本是写在一起,类似这样:
src/
pages/
admin/
xxx.vue
app/
xxx.vue
store/
admin/
xxx.js
app/
xxx.js
package.json
当初用了很取巧的办法(条件编译)在一套代码里运行不同的界面。为了方便修改和部署,决定拆分成两个独立的目录,可以分别打包部署:
admin/
src/
pages/
store/
package.json
app/
src/
pages/
store/
package.json
shared/
components/
package.json
其中有部分代码需要复用,放在 shared/
目录中。为了复用代码,尝试了 Monorepo 的模式,例如 yarn workspace, pnpm workspace, npm link,踩了一堆坑。最后发现解决办法是修改一个不起眼的 Webpack配置,这样文件软链接(符号链接)才能正常使用。
蚁阅图片代理更新
在12月底的一个下午,连续收到阿里云的几条告警短信,当时我被吓到了。
检查了一下违规URL发现都是色图,阿里云检测到之后主动屏蔽了。幸好只是屏蔽了几个URL,没有直接屏蔽我的主域名,收到短信我马上就去把蚁阅图片代理功能关闭了。
估计是有用户订阅了奇奇怪怪的网站,然后图片被缓存到了阿里云CDN上,被阿里云的鉴黄程序扫描到了。为了更彻底的解决这个问题,必须把图片代理功能和主站隔离,这样万一图片域名被屏蔽也不会影响蚁阅其他功能。
具体做法是把图片代理功能单独部署在阿里云-云函数上,用独立子域名,所有图片请求不经过CDN和缓存,另外图片代理链接设置30分钟有效期,避免被分享传播。目前蚁阅图片代理已经更新好了,功能也已经恢复了。
蚁阅的经营情况
访问量统计,基于自建的 Plausible 服务,每天大约是 200 个活跃用户。
收入统计,基于 Beancount(介绍),蚁阅 2021 全年收入是 1905 元,大致可以负担服务器开支。
对于蚁阅这个产品,我希望保持小众,稳定运行下去,但不太会加新功能了。等其他产品赚到钱了,再考虑把蚁阅做大,目前蚁阅做的越大风险越大。
最后
通过「RSS阅读器」或者关注公众号「自宅创业」可以订阅博客更新,也可以在 关于我 页面找到我的联系方式,欢迎交流!