小而美公司、一人公司、独立开发者,喜欢分享他们的技术栈、系统架构。有人爱分享,就有人爱看,反正我就挺爱看,爬门缝学学人家的姿势,想着自己回家试试。但大部分看看就完了,试都没试,试了的也常常不理想,最后还回归到传统姿势。
说到底,还是个合适不合适的问题,也许对人家来说,摆那些姿势既好用又出片儿,但对没钱没时间的人来说,不免太花哨太奢侈了。
前文书说过一个百倍回报的系统,今天我就讲讲,在它上面用了哪些不堪的技巧。我这些技巧,用一句话说就是:大衣柜没安把手——抠门。
数据库?
阿里云有专门的数据库 RDS,这玩意就是坑钱的我告诉你,甚至可以推而广之,阿里云上除了 ECS 云主机,其他都是坑钱货!
我最开始想用 SQLite,跑啥数据库服务,造进去多少内存没数啊?创建账号分配权限不麻烦啊?SQLite 多好,就一个文件扔那儿,拷一份就完成数据库备份了!
但后来考虑到即将入库的数据量,再想想马上要建的一堆表,我还是老老实实用了 MySQL,业务面前咱只能认怂。
用 MySQL 可以,但绝不买阿里云的 RDS,不当那个冤大头,让程序和数据库跑在同一台机器上,主打一个低延迟高吞吐,再打一个绿色低碳节约用电,三打一个白骨精。
重启大法好
有个导入 Excel 的功能,多的时候一次数百万行记录,导个几次就把内存吃光了。吃光内存后,服务器就彻底宕机,SSH 连不上,只能在阿里云控制台强制重启。
这显然是内存泄露啊,解决内存泄露吗?遥遥无期呀。我的办法是,每天凌晨三点重启。大脑需要睡眠来清除废物,服务器也需要重启来抖擞精神!
想过写个小监控程序,一旦发现服务不响应了,就调用阿里云接口重启服务器。不过凌晨三点重启之后再没出过事故,这活我就一直拖着没干。
不用 k8s,不用微服务
先跑起业务来大哥!那些高级玩意,等业务发展到一定程度再用(很可能永远用不着)
自己搭点小积木,还弄好几个微服务,纯属自残行为。跟我一起唱 Long live the monolithic!Long live the monolithic!
屏蔽 Stackoverflow
纳尼?没有这个网站怎么写程序?那是以前,现在有了 ChatGPT,还用 stackoverflow 反而会降低效率。
有多少次遇到难题,我想当然认为这个问题对 GPT 太难了,于是按老习惯在谷歌上搜,跳到 stackoverflow 上碰了满头包。绝望之下,只好让 ChatGPT 试试,结果 GPT 出手一剑封喉。
使用 GPT4 还是有点成本,可以用 Phind 代替,也非常好使,它的一个好处是,在答案后面给出参考链接,这些链接往往就指向 stackoverflow,只不过 Phind 帮你梳理远比自己去找效率高。
屏蔽百度
这个还用解释吗?屏蔽了百度,大概率也就屏蔽了 CSDN。
用大家都在用的技术
用新技术还是大家都在用的技术?放在以前,做这个决定还挺复杂,要评估学习成本、开发成本、长期维护成本、社区成熟度这些方面。如今省了,就看 AI 在哪个上面最能帮上忙,就选哪个。一般来讲,就是用的最多、被讨论最多的技术。
我的 CSS 水平很次,就想偷懒用 tw(Tailwind CSS)帮把手,但这玩意太新了…… GPT 的知识库截止到 2021 年,所以我就没选 tw,拿手指甲一点点抠的样式。
最新消息,GPT4 知识库更新到 2023 年了!这下我可就不怂了,tw 用起来,那句话怎么说来着:tw 是前端不可分割的一部分!
以上几种姿势可能观感不佳,传教士侧目,布道者摇头,但它真的帮我解决了一些实际问题。
当我们羽翼未丰的时候,要启动一件困难的事,最好怎么简单怎么来。有个词叫 MNK(Minimal Necessary Knowledge,最少必备知识)说的就是这个意思。在启动之前,最大的阻力是前方一个个的未知,每一个都是一个大大的问号,问号太多自然就知难而退了。因此让自己眼里少一些问号,先跑起来。