1
0
mirror of https://github.com/chai2010/advanced-go-programming-book.git synced 2025-05-24 04:22:22 +00:00

update db

This commit is contained in:
Xargin 2018-03-02 19:52:51 +08:00
parent 70e6f66a7f
commit 57ea1d9878

View File

@ -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) 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 可能是失败的设计。其所隐藏的重要细节对于上了规模的系统开发来说至关重要。 当然,我们不能否认 orm 的进步意义orm 的设计初衷是为了让数据的操作和存储的具体实现所剥离。但是上了规模的公司的人们渐渐达成了一个共识由于隐藏重要的细节orm 可能是失败的设计。其所隐藏的重要细节对于上了规模的系统开发来说至关重要。