我目前正在研究元编程。我猜Rails在很大程度上使用元编程。这是我目前所理解的。
我一共有三个问题。
如果您可以在使用Ruby/Rails中解释这一点,这将对我有很大帮助。谢谢!
发布于 2017-08-14 15:04:38
元编程是使用程序来操作程序.这确实是一个非常宽泛的定义,甚至可能包括自动调试和二进制补丁开发。
宏和反射之间最明显的区别是前者使用不同于对象语言(被操纵的语言)的元语言,而后者使用对象语言本身作为元语言。此外,宏更多地与生成相关联,例如条件编译和模板扩展;反射与检查和操作,如成员迭代和绕过隐私限制。但潜水越多,边界越模糊。
就Rails而言,最流行的元编程模式可能是ActiveRecord。它使用反射列出需要映射到数据库表和列的类和类成员。类似地,任何ORM项目都需要相当多的元编程。
Rails以许多其他方式使用元编程,但我对它还不太熟悉。我在研究中偶然发现了这样一篇博文:元编程Ruby和Rails反模式(第2部分第1部分)。您可以使用只在运行时知道的名称定义方法,并使用元编程按需定义属性。
由于元编程是一个非常重要的概念,我通常将其概括为“自定义编译器/运行时”。最后,如果您想做一些需要编译器或运行时提供信息的事情,即a.k.a。从正在运行的代码本身来看,这可能是元编程。
https://stackoverflow.com/questions/44563584
复制相似问题