星洛 axis 的小站

少写点代码

写完的东西是要维护的。维护的成本跟代码量基本成正比,所以最划算的优化是

写完的东西是要维护的。维护的成本跟代码量基本成正比,所以最划算的优化是 不优化。

三个问题,写完之前先问

  1. 这个功能真的有人用吗? 没想清楚给谁用的功能,写完也没人点。
  2. 能不能用已有的东西拼出来? 一个 Markdown 文件加一个模板,往往比一套 CMS 更耐用。
  3. 出问题的时候我要怎么知道? 没有日志和告警的功能,等于上线即失联。

依赖也是债

每加一个依赖,你就在别人的发布节奏上绑了一根线。升级、破坏性变更、 供应链问题,都得跟着处理。

我倾向的边界是:

  • 能用标准库就不引第三方
  • 引了就要能说清它解决了什么问题,以及删掉它会怎样
  • 只在构建期用的工具,不要带进运行环境

这个站运行时只有 Flask、Flask-Login、bcrypt、Markdown 几个包, pip list 一屏能看完。两年后回来看,还有很大概率能直接跑起来。

简单的判断标准

一个改动如果没法在十分钟内解释给不写代码的人,通常说明它太复杂了, 或者我还没想清楚。这时候应该停下来拆一拆,而不是继续往上堆。

留出口

数据结构比接口活得久。改接口容易,改表结构难。所以:

  • 数据库字段宁可留空,不要塞语义不明的东西
  • 配置项全部走环境变量,不写死在代码里
  • 内容与展示分离:文案在数据里,模板只负责排版

做到这三条,换前端、换部署方式都是小事。