Am I doing it wrong?
前天在 GitHub Gist 上看到一个有趣的讨论。
事情的起源是 @justinko 因为自己写的一段代码而失去了一份工作合约。那么究竟是什么样的代码「惹火」了雇主呢?
在那样项目中,当用户发表评论后,后台需要做的不仅仅是在数据库中插入一条评论记录,还需要识别出评论的语言、检查是否是垃圾评论、发送邮件以及同步到 Twitter 和 Facebook。@justinko 觉得这些代码既不应该属于 controller 也不应该属于 User model, 也不应该用 ActiveRecord 的 callbacks 来实现。
于是他新建了一个 PORO (Plain Old Ruby Object) 来处理这些逻辑。代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | |

