我已经和Ruby及其许多网络框架合作了大约一年了。
我知道rails很大程度上是使用'元编程'构建的。虽然我试图检查来源,但通常并非所有这些都有意义。
我试图发布一个小宝石,并使用了一些方法,如_send
,instance_eval
,class_eval
这很酷,但作为一般原则我们被告知远离eval
以各种形式出现。
其他编程结构我知道我可以在哪里使用。就像应用程序中的数据序列化一样,或者在制作Web应用程序时我可以/应该实现Builder Pattern。
我的问题分为两部分:
答案 0 :(得分:2)
你曾经使用过attr_accessor
吗?然后你使用了元编程:它是一种生成方法的方法。
答案 1 :(得分:1)
我发现元编程主要是库API的领域。在创建最终用户应用程序时,通常不会直接使用它。但是你可以肯定,你的应用所依赖的许多宝石都会广泛使用它。 Rails就是一个很好的例子。它使用了大量Ruby的元编程方法来使所有Rails魔法成为可能。