在他的RailsConf演讲中大约19:00 ,David Heinemeier Hansson谈到了以下方面的缺点instance_eval:
很长一段时间我咆哮并且反对
instance_eval,这是不使用屈服参数(如do |people|)的概念,只是直接do something然后评估你来自哪个范围内的那个块里的东西(我甚至不知道那是不是连贯的解释)很长一段时间我都不喜欢这样,因为从某种意义上说它感觉更复杂.如果你想把你自己的代码放在那里你会触发已经存在的东西吗?你要覆盖一些东西吗?当你产生一个特定的变量时,你可以将所有东西都链接起来,你可以知道[你]并没有搞乱其他人的东西
这听起来很有趣,但是a)我不知道如何instance_eval在第一时间起作用和b)我不明白为什么它可能是坏的/增加复杂性.
谁能解释一下?