分享 新博文:介绍 Fengche.co 中对 Observer 的使用

poiyzy · 2014年03月20日 · 最后由 bhuztez 回复于 2014年03月21日 · 2522 次阅读

新博客,介绍 Fengche.co 中为什么使用 Observer,希望和大家一起交流 :)

http://yangzhuoyu.com/why-we-use-rails-observer/

最近在一个项目重构把 Observer 都拿掉了,把所有的相关逻辑移到 services 里面,更方便测试 各种逻辑也更容易重用及测试,model 承担的责任也都减少。当然简单的场景 observer 应该够用。

#1 楼 @rociiu 嗯,复杂的场景我们也用 Service。而 Observer 里主要是做那些很小很快的事情。

我記得 Rails 4 是去掉 Observer 的……如果是小事情我更傾向於 callback,不過就像 @poiyzy 說的有時感覺不那麼 OO -_-

#1 楼 @rociiu 能举个例子不? 什么情况下 observer 够用,啥情况下 service 更合适?

Observer 是个坑,Rails 2 的时候我就停止使用了

@xmonkeycn 影响你测试的时候 我的目的是减少 model 的 responsibilities

#7 楼 @swordray 哦,我记得 redmine 里面还有大量的 observer..

#9 楼 @small_fish__ 个人不建议阅读 RedMine 的代码

#1 楼 @rociiu 怎么选择用 concerns,还是 services?只使用 services 了?

@rociiu 我觉得你应该单独发一篇文章出来,仔细解释一下 Observer 的问题和如何用 Services 层去拆解和降低 Model 的复杂度。

Observer 不还是 Callback 么。还不如用N2O

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