读Ruby for Rails的思考之DSL

DSL是设计用来在某一领域完成特殊任务的语言,而不是一般目的的编程,DSL的指令集相对较窄
从某方面来看,Rails就像一个用Ruby写的DSL,它的领域是交互式数据库驱动的Web程序

对于如下代码
has_many :editions

左边是一个动词,右边像一个配置
其实这是简单的Ruby方法调用,方法名为has_many,参数为一个Ruby symbol object
Rails经常让programming看起来像configuration,省略方法括号是Rails的习惯约束

Rails DSL很大程度上依赖于Ruby的元编程能力,比如 attr_reader :name为你自动生成实例变量@name和get方法

Ruby元编程入门
使用Ruby创建DSL

你可能感兴趣的:(html,编程,Web,Ruby,Rails)