Rails 关于重构,代码组织的疑问

sforce100 · 2013年03月19日 · 最后由 gazeldx 回复于 2013年03月20日 · 3219 次阅读

近期看了下重构的资料,提到‘Skinny Controller, Fat Model’。 1.那么 model,controller 需要定义共用函数,有人就定义 concern model 来包裹共用函数。而 Rails 4 已经内建支持 Concern。 大家会这样用么??? 2.假如 helper 里面需要定义共用函数呢?那么 mvc 都共用的函数呢??该怎么组织比较好呢??

1、“那么 model,controller 需要定义共用函数”

这不太正常,一件事要不在 model 做,要不在 controller 做。

concern 用在 model 和 model、controller 和 controller 共享代码。

2、Controller 和 helper 共用,有个 helper_method 宏。

全局都要用的逻辑,抽取成库,比如 Nokogiri。

#1 楼 @Rei 哦..我表述有误...我的意思也是 concern 用在 model 和 model、controller 和 controller 共享代码。谢谢

#2 楼 @sforce100 之前已经这样用了,这就是 Ruby 里面 Module 的用法

https://github.com/ruby-china/ruby-china/tree/master/app/models/mongoid

Concern 只是把这种用法提炼成模式。

#3 楼 @Rei 搭车问个问题,Concern 的设计只是给 model 或者 controller 相关的代码找了一个地方放置吗?

#5 楼 @zlx_star Concern 其实就是 Module

#6 楼 @Rei +1 我也是这样理解

使用 Concern 额外的好处是解决 Module 自己的依赖关系与写代码的时候组织清晰些

Fat model 对于简单的应用可行。大型的应用时就。。。

可以来尝试我的 Datamappify 哟 :D https://codeclimate.com/github/fredwu/datamappify

看了这段对话,使我开始阅读《Agile Web Development with Rails Edition 4》电子书,DHH 大作。

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