问 HN:你的“管它傻不傻,能用就行”故事是什么?

工程师和爱好者分享了数十个“管它傻不傻,能用就行”的故事,从基于 SQLite、无头浏览器和 mmap 过的 SSD 构建的生产系统,到拼凑出来的水管、供暖和汽车修理。跨越各种不同领域,这些轶事凸显了一个反复出现的主题:快速、粗糙的方案往往能在多年里胜过“正确”的架构,显示出约束、截止期限和现实世界中的可靠性经常压倒优雅。许多人也指出了其副作用——这些权宜之计一旦在实践中证明有效,往往就会变成永久性基础设施和技术债务。

基础设施与 DevOps 变通方案

  • 很多故事都围绕“重启一下就好”:定时重启树莓派的 cron 任务或脚本、重启不稳定的服务,或者不断重启数据库,直到能删除一张坏表为止。
  • 内存泄漏和结构性崩溃常常通过定期重启、故障转移或计划性重启来“解决”,而不是修复根因;有人认为这实际上就是标准的 DevOps 实践,另一些人则认为这是危险的技术债务。
  • 人们用简单工具绕开复杂的部署栈:用 envsubstsed 做模板,用带 while 循环的单个巨大 serverless 函数来提高鲁棒性,或者用 OpenResty/Lua 硬编码认证。
  • VPN 和防火墙则通过 sshuttle、HAProxy 端口转发技巧,或重启家用路由器以轮换 IP 的脚本来绕过。

家庭、硬件与实体世界的妙招

  • 大量“让它继续活着”的硬件故事:用 Arduino/ESP32 继电器自动给锅炉断电重启、把故障电子设备放进冰箱里“救活”、用磁铁或加热/煮沸来复活硬盘和 CD。
  • 机械土办法:伺服齿轮驱动的恒温器、硬币或冻香肠当散热片、让 CD 托盘来回摆动或移动鼠标以防屏幕熄灭、把打磨过的风扇硬塞进狭小的 PC 机箱。
  • 水管和家用修补包括用空气压缩机或临时拼凑的工具冲开堵塞、把马桶水箱当作植物浇水储水箱,以及临时改造 CPAP 或加湿器。

网页、企业系统与遗留集成

  • 大量使用浏览器自动化和屏幕抓取(Watir、Selenium、Capybara、AutoHotKey)来与古老的 CRM、仅支持 IE6 的供应商网站,以及绿屏大型机系统集成。
  • 创造性地滥用 Google Sheets、Outlook、Access、Lotus Notes 和 Word,通过宏/COM 构建影子系统,因为没有合适的 API 或集成服务器。
  • PDF 和图片生成常常交给无头浏览器(Chrome、Firefox)处理,因为专用转换器不可靠或不一致。

数据、存储与 IPC 变通方案

  • SQLite 无处不在:既可作为 IPC 机制、轻量级服务器数据库,甚至作为协调层;很多人表示,它在自己的工作负载下扩展能力远超预期。
  • 有些系统把整个 SSD mmap 到一个单独的 C++ 结构体或扁平文件中,故意绕过文件系统和数据库以获得巨大速度提升,同时也承认这会带来脆弱性和恢复风险。
  • 其他人则把大量数组硬编码进去(例如 10 万个优惠码),或者把版本控制下的文本文件当作“数据库”,而性能出乎意料地还能接受。

安全、反滥用与策略博弈

  • 一些“其实并不算安全”的措施只是为了安抚扫描器或满足业务需求:比如 CSP upgrade-insecure-requests 只是为了提高评分,或者用隐藏 JavaScript/延时提交字段来防垃圾信息,而不是用 CAPTCHA。
  • 位于 WordPress 和其他应用前面的自制 WAF 和请求过滤器成功挡住了多年的攻击,有时实际上等于重新发明了商业产品。
  • 参与者提到巧妙变通和长期可维护性之间的张力,但整个讨论总体上是在赞美那些能让系统——以及业务——持续运转的务实方案。