From 57ea1d98784521367a11c1a1368a7986511a1851 Mon Sep 17 00:00:00 2001 From: Xargin Date: Fri, 2 Mar 2018 19:52:51 +0800 Subject: [PATCH] update db --- ch6-web/ch6-05-database.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/ch6-web/ch6-05-database.md b/ch6-web/ch6-05-database.md index 06f67ea..54ed203 100644 --- a/ch6-web/ch6-05-database.md +++ b/ch6-web/ch6-05-database.md @@ -154,9 +154,7 @@ num, err := o.QueryTable("cardgroup").Filter("Cards__Card__Name", cardName).All( num, err := o.QueryTable("cardgroup").Filter("Cards__Card__Name", cardName).All(&cardgroups) ``` -你可以看得出来这个 Filter 是有表 join 的操作么?当然了,对 beego orm 有过深入使用经验的用户还是会觉得这是在吹毛求疵。但这样的分析想证明的是,orm 想从设计上隐去太多的细节。而方便的代价是其背后的运行完全失控。其实就是说: - -你都不知道自己在干些什么事情。 +你可以看得出来这个 Filter 是有表 join 的操作么?当然了,对 beego orm 有过深入使用经验的用户还是会觉得这是在吹毛求疵。但这样的分析想证明的是,orm 想从设计上隐去太多的细节。而方便的代价是其背后的运行完全失控。这样的项目在经过几任维护人员之后,将变得面目全非,难以维护。 当然,我们不能否认 orm 的进步意义,orm 的设计初衷是为了让数据的操作和存储的具体实现所剥离。但是上了规模的公司的人们渐渐达成了一个共识,由于隐藏重要的细节,orm 可能是失败的设计。其所隐藏的重要细节对于上了规模的系统开发来说至关重要。