我正在制作一个小小的消息发送模块.它将处理来自后台工作人员接收的请求的排队消息,以发送电子邮件/ SMS(或适当地进行测试以进行测试).
问题:这是一个模型(在/ app/models下)还是一个lib(在/ lib下).
我想要一些宗教信仰.
理论A :(我当前的理论)除非你是ActionMailer :: Base或ActiveRecord :: Base等的子类,否则你的代码应该进入lib.
理论B :(理论我倾向于)应用特定的东西应该在模型中.任何可能普遍使用的东西都应该在lib中.
理论C:只有"数据模型"应该在"模型"中.但是,ActionMailer子类违反了这条规则.
据我所知,无论哪种方式它都可以正常工作,但我正在寻找一个与另一个相比的任何微妙的功能或哲学原因.
思考?
无论消息是从ActiveRecord还是ActionMailer继承,您可能需要一个模型用于视图和控制器交互的任何对象.在您的情况下,他们将处理Message类的实例 - 您需要一个模型.
至于消息发送模块 - 如果您计划在其他地方重用代码,那么提取到库是很好的,您可以在任何类中包含该模块.
由于这只是一个"小"消息发送模块,您可能希望从模型开始并最终提取到一个单独的模块,如果它可能在其他地方有用或您的模型太乱.
| 归档时间: |
|
| 查看次数: |
1136 次 |
| 最近记录: |