新手问题 Sequel 在做纯 API 项目时是不是比 ActiveRecord 更有优势?

cysh · 2016年04月11日 · 最后由 geniousli 回复于 2016年04月13日 · 3735 次阅读

纯 API 的项目 Sequel 有什么比较明显的优势吗?

修改了一下标题(原标题:ORM 选择 Sequel 还是 ActiveRecord ?)

共收到 25 条回复

当然是Sequel了 http://sequel.jeremyevans.net/rdoc/files/doc/active_record_rdoc.html ActiveRecord才是没有明显优点

ActiveRecord,遇到问题有人回答。

#1楼 @nouse :trollface: …我其实蛮想知道 Sequel 对比 ActiveRecord 的优势在哪里的?

熟悉度不够,用 Sequel 就是找抽

ActiveRecord 那么多资源,不管是三方扩展库,还是问题解决方案

#3楼 @cysh 链接要看啊,相应的文章也很多。简单来说用pg就应该用sequel,jsonb也支持

新手路过。对于我来说,用 RoR 的一大关键原因在于 ActiveRecord

#5楼 @nouse ActiveRecord也支持jsonb

#5楼 @nouse 链接之前学 Sequel 的时候看过,但除了提到了更灵活(这算明显优势嘛?),不知道还有什么比较明显的优势?(比如查询效率,线程安全之类的?) DB 用 MySQL

#4楼 @huacnlee thx! 熟悉度不是一下就提升上去的吧…如果 Sequel 更好自然有必要去学去用?出于这方面考虑才提出这个问题。望能解答: Sequel 在做纯 API 项目时是不是比 ActiveRecord 更有优势?

#8楼 @cysh 我是说对 Ruby 的熟悉度!

核心维护者就那一个人,你觉得会比 ActiveRecord 好?

我实在无法理解放着那么好的 ActiveRecord 不用,跑去用类似 Sequel 这里库,是怎么想的?!

你选择亲身体验,被多虐几次就知道两者的好坏了

#10楼 @huacnlee 不能这么比吧,其实核心维护者只有一个人更能说明Sequel的设计好:

  1. Sequel 一直是 0 issue的:https://github.com/jeremyevans/sequel/issues
  2. AR3之后,大部分特性其实是从Sequel借鉴来的:http://twin.github.io/activerecord-is-reinventing-sequel/

PS. 其实没有实际项目中用过sequel......

http://www.railsmine.net/2015/09/sequel-vs-active-record-orm-benchmark-postgresql.html?m=1 这个比较一抓一大把

至于维护的人员多嘛,bug多owner懒得修就变成这样了。

再补充一下,sequel作者非常高产,还fork了cuba写了roda,还写过一个对ruby的时间增强的home_run。sequel对于pg的增强我至今没有在activerecord看到,是不是1比0完胜啊。

貌似 sequel 可以直接在 jruby 下运行哇,运行环境从 ruby 换到 jruby 的话不需要换 ORM 啊

#10楼 @huacnlee Ruby 的熟悉度一直在加强中…会继续努力的 😄

#13楼 @nouse 谢谢,链接很有用 :plus1:

#14楼 @ywjno ActiveRecord也可以在JRuby跑,将adapter从pg改成activerecord-jdbcpostgresql-adapter

个人推荐 ActiveRecord。:)

有些时候 AR 里很简单实现的一些功能,在 Sequel 里需要做一些小小的、有时候并不是非常明显的调整。两年多前我写过一篇 blog “抱怨”了一下 Sequel 的 API:http://fredwu.me/post/58910814911/gotchas-in-the-ruby-sequel-gem

#16楼 @richfisher 我知道可以跑,但这需要换驱动的 gem 包不是,sequel 就自带数据库驱动因此在这方面不用考虑运行环境

对了还想到一个好处,sequel 自带 migrate 功能可以直接运行 sequel -m db/migrations postgres://localhost/sequel_test 这样跑数据库迁移,ActiveRecord 有谁知道如何在非 rails 环境下单独使用 migrate 功能的话能否指点一下?

#19楼 @ywjno 需要手动写rake file,不过很简单的。 给你个参考 https://github.com/robbin/ruby_framework_bench/blob/master/grape_on_goliath/Rakefile (这个是robbin写的) 其实常见的framework都有ActiveRecord的相关库的: https://github.com/jhollinger/grape-activerecord How do I use ActiveRecord migrations?(Sinatra) http://www.sinatrarb.com/faq.html#ar-migrations

这一部分其实我也只是一知半解,希望能有人来讲解下rake file的相关

用过了才知道 ActiveRecord 的好,用多了才知道 ActiveRecord 的不好😄 如果不知道 ActiveRecord 有哪些不好,或者可能这些缺点对自己没有影响,就用 ActiveRecord 咯

做项目我会选择 AR,各种插件丰富,遇到问题也容易搜索,migration 也可以脱离 Rails 使用。 写数据脚步什么的,我会用 Sequel,比较直接,感觉用起没有 AR 那么多潜在的规则要求

Sequel有很多超越Activerecord的地方,多用酒知道了

下面是应该主要关注的点吧: 文档:查看sequel跟AR的文档对比 问题解决方案:stack overflow的问题数目 工具数目:比如ranksack,sequel对应的版本实在太烂

实际工作开发: 可以先分别使用两种模型试着写一些小的功能或者常用的sql, 对比一下,看看那个复杂度,耗时更多。

** 我说的都是开发速度哦,而不是性能 **

个人看法: 因为公司原因,接触sequel,适应了AR之后感觉sequel太烂,需要关注太多细节,比如讲所有的callback下载一个after_save函数中,而且还需要关注回调的super调用顺序。还有 在sequel中写sql实在太难。各种可以使用原生sql解决的问题,需要用各种曲折的方法解决。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册