3

自宅创业 - #17 代码重构,以及蚁阅的更新

 2 years ago
source link: https://blog.guyskk.com/notes/onebiz-17
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

自宅创业 - #17 代码重构,以及蚁阅的更新

2022年, 1月13日

感觉时间过的飞快,先记录一下这个月的事情,年终总结要等过年前更新了。

这个月前期主要在做代码重构,提高项目的开发效率。

首先是开源了 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月底的一个下午,连续收到阿里云的几条告警短信,当时我被吓到了。

CDN告警短信

检查了一下违规URL发现都是色图,阿里云检测到之后主动屏蔽了。幸好只是屏蔽了几个URL,没有直接屏蔽我的主域名,收到短信我马上就去把蚁阅图片代理功能关闭了。

估计是有用户订阅了奇奇怪怪的网站,然后图片被缓存到了阿里云CDN上,被阿里云的鉴黄程序扫描到了。为了更彻底的解决这个问题,必须把图片代理功能和主站隔离,这样万一图片域名被屏蔽也不会影响蚁阅其他功能。

具体做法是把图片代理功能单独部署在阿里云-云函数上,用独立子域名,所有图片请求不经过CDN和缓存,另外图片代理链接设置30分钟有效期,避免被分享传播。目前蚁阅图片代理已经更新好了,功能也已经恢复了。

蚁阅的经营情况

访问量统计,基于自建的 Plausible 服务,每天大约是 200 个活跃用户。

蚁阅2021年访问量

收入统计,基于 Beancount介绍),蚁阅 2021 全年收入是 1905 元,大致可以负担服务器开支。

蚁阅2021年收入

对于蚁阅这个产品,我希望保持小众,稳定运行下去,但不太会加新功能了。等其他产品赚到钱了,再考虑把蚁阅做大,目前蚁阅做的越大风险越大。

通过「RSS阅读器」或者关注公众号「自宅创业」可以订阅博客更新,也可以在 关于我 页面找到我的联系方式,欢迎交流!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK