Rails 评论 DHH Callback 的 Video

ksec · 2018年03月16日 · 最后由 matrixbirds 回复于 2018年03月19日 · 2700 次阅读

https://ryanbigg.com/2018/03/on-writing-software-well-2-a-review

想知道在,Ruby China 这里的看法, 个人来说是偏向 Ryan ,Callback 就是 too much magic.

@huacnlee @Rei 怎样看 ?

我认为有点过度解读了!

Callback 仅仅是一个辅助方式,让你可以在通过 Concern 的方式剥离各种各样复杂业务的时候,能将他们(各种 Concern 实现和基础 Model)组织起来,也可以給 Model 设定必要的基础处理流程。

Callback 被许多人看作是 “Callback Hole”,我觉得是理解不够,或者是没有足够的把握好尺度! 这也是理解不够,组织不好(当前也包括我早些时候的一些项目实现,例如 Quora)。

而实际上 Ryan 后面 Mention::EavesdropForMentions 的例子,人家 Basecamp 也在用的:

3 楼 已删除

@huacnlee 同感,有些解读过度的感觉

callback 可以 快速、水平、松耦合 地为软件扩展 辅助复杂 的功能,也就是 Using callbacks to manage auxiliary complexity

比如在 php 的 wordpress 世界中,就利用 callback 像钩子一样,方便地实现了丰富大量的 plugin 。

callback 作为一种设计模式,也和其他的设计模式一样,有长处也有短处,主要看用在什么场合了。

huacnlee 回复

是"Callback Hell"吧,JavaScript 非常常见,Ruby 也有人喜欢用 yield 模仿

nouse 回复

好像 nodejs 里面也用了大量的 callback,只是没有细看过,留下这个印象。

doosolar 回复

nodejs 是因为 low 没办法采用 callback 的

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