化繁为简:把代码搬进数据库函数
Simplify: move code into database functions
这是导读,不是翻译。先用 1 分钟拿到这篇的核心,值得的话再去读 英文原文 →
核心观点
西弗斯发现数据库比外围代码活得更久:同一个数据库用了近二十年,外层却换了好几种语言。于是他主张把数据逻辑写进 PostgreSQL 本身,外部代码只负责传参和返回 JSON。
要点
- “简单”指不纠缠,不等于“容易”
- 约束、触发器、函数和视图足以承载大部分数据逻辑
- 数据库自成一体后,换外层语言就轻松多了
- PL/pgSQL 不优雅,但换来的简单值得
"Databases outlive the applications that access them." —— Derek Sivers,查看原文 →
对你意味着什么
对爱尝试新框架的独立开发者,这是降低重写成本的好策略。但也有代价:数据库里的逻辑难测试、难做版本管理,团队协作门槛更高。可以先从约束和校验入手,再逐步迁移。
同主题推荐
- 为什么你的网站该有一个 /now 页面 —— 一页写清「我最近在忙什么」,也是拒绝的底气
- 用互联网,而不只是用平台 —— 平台来来去去,你的网站和联系方式才长久
- 用了两年 Rails,我为什么回到 PHP —— 新语言显得更好,往往只是因为你变强了