FrankHB
2020-01-04 22:20:07 +08:00
正常是看到 DBMS 就有焦虑感。只不过业务上抖 M 惯了很多人才没感觉罢了。
这和所谓防御性编程贩卖的焦虑本质上是一样的,虽然就影响范围来讲,往往更严重。
本来是系统内部的 contract,因为 DBMS 和上层业务逻辑的隔离多了一个间接层,因为实现缺陷的问题导致你不得单独考虑风险。这不但让你有焦虑感,一定情况下还成为一个 attack surface。在 DBMS 不是最终用户需要感知的实现细节的情况下,这就是歪曲系统需求的原罪。
很遗憾,如何有效地、系统地尊重准确地表达需求而不弱化外部指定的整体接口约束,这是一个从理论 CS 开始一直就缺乏足够重视一直到头疼医头脚疼医脚也还没解决的问题。工业界的某些人刚刚才认识到 artificially widening narrow contracts considered harmful。理论界这方面整体反而更呵呵就是了。这应该是这里的人都推动不了的;所以你如果干不掉 DB,继续忍几十年好了。