讀Ruby for Rails的思考之DSL

2021-08-29 08:22:49 字數 457 閱讀 5866

dsl是設計用來在某一領域完成特殊任務的語言,而不是一般目的的程式設計,dsl的指令集相對較窄

從某方面來看,rails就像乙個用ruby寫的dsl,它的領域是互動式資料庫驅動的web程式

對於如下**

[code]

has_many :editions

[/code]

左邊是乙個動詞,右邊像乙個配置

其實這是簡單的ruby方法呼叫,方法名為has_many,引數為乙個ruby symbol object

rails經常讓programming看起來像configuration,省略方法括號是rails的習慣約束

rails dsl很大程度上依賴於ruby的元程式設計能力,比如[b]attr_reader :name[/b]為你自動生成例項變數@name和get方法

[url=元程式設計入門[/url]

[url=使用ruby建立dsl[/url]

推薦系統之我讀,我思,我惑

年前,開始系統接觸推薦系統。說到這,我想提下,最早知道推薦系統,是源於研一的時候,一次實驗室組會,乙個本科生的畢設。他是用周的heat spread 方法,其實就是利用二部圖方法進行推薦。資料是乙個使用者和物品的連線關係的二部圖。其實,這個方法很簡單,也很容易實現。但是,後來,開始接觸項亮的博士 的...

髒讀,不可重複的讀,虛讀

引用 髒讀dirty reads 當事務讀取還未被提交的資料時,就會發生這種事件。舉例來說 transaction 1 修改了一行資料,然後 transaction 2 在 transaction 1 還未提交修改操作之前讀取了被修改的行。如果 transaction 1 回滾了修改操作,那麼 tr...

髒讀,不可重複的讀,虛讀

引用 髒讀dirty reads 當事務讀取還未被提交的資料時,就會發生這種事件。舉例來說 transaction 1 修改了一行資料,然後 transaction 2 在 transaction 1 還未提交修改操作之前讀取了被修改的行。如果 transaction 1 回滾了修改操作,那麼 tr...