用数据库函数封装逻辑与查询
Database functions to wrap logic and SQL queries
这是导读,不是翻译。先用 1 分钟拿到这篇的核心,值得的话再去读 英文原文 →
核心观点
需要多条查询配合的操作,比如转账或加入购物车,西弗斯建议写成数据库函数。这样外层代码只管调用,将来有新代码绕过旧逻辑或要换语言时,规则都不会丢。
要点
- “先查、再决定插入还是更新”这类判断适合封装进数据库
- 外层语言可以随意更换,核心数据逻辑保持不变
"data logic should be in the database itself" —— Derek Sivers,查看原文 →
对你意味着什么
如果产品同时有网页、小程序和 App 三个前端,这种做法能避免同一逻辑写三遍。但要权衡:数据库函数的调试和迁移工具不如主流语言成熟,更适合规则稳定的核心操作。
同主题推荐
- 为什么你的网站该有一个 /now 页面 —— 一页写清「我最近在忙什么」,也是拒绝的底气
- 用互联网,而不只是用平台 —— 平台来来去去,你的网站和联系方式才长久
- 用了两年 Rails,我为什么回到 PHP —— 新语言显得更好,往往只是因为你变强了