領域語言就是像 SQL,HTML,CSS 等的可以完成某一領域功能的特定領域語言.
在 ThinkPHP 框架中,使用 Model 類封裝數據庫操作行為,定義了若干方法以進行數據庫操作:
where,table,data,field,order,limit,group,having,join ...
想表達的含意就是開發人員不需要直接寫 SQL 語句,只需要通過調用這些用 PHP 定義的若干方法完成數據庫操作.
如果不使用 ThinkPHP 直接寫 PHP 代碼,關系是這樣的:
開發人員 --> 寫 SQL 語句(在代碼中) --> 執行(提交給數據庫)
使用 ThinkPHP Model 后關系變成:
開發人員 --> 調用 Model 的方法 --> Model 轉換成 SQL --> 執行,這中間增多了一層 Model 方法,開發人員不直接寫 SQL 語句,而是調用 Model 的方法讓 Model 生成 SQL 語句.
Model 這一層,實際上是使用 PHP 重新定義 SQL 的表達形式,使用一種語言重新定義另一種語言,而且還是使用一種通用語言重新定義一種領域語言.
這種重新定義如果做到最終極,估計就是使用 PHP 重新定義出 SQL 的表達能力,就是另一個 SQL,就姑且叫它“PQL”吧.Vevb.com
如果是這樣的話,看來我還是直接使用 SQL 等領域語言好了.
# 參考:
2.3 程序設計語言的分類:http://book.51cto.com/art/201007/209600.htm
特定領域語言(domain specific languages)是用于解決特殊領域中特殊問題表示技術和解決方案的程序設計語言,典型的特定領域語言包括正則表達式、層疊樣式表(cascading style sheets,CSS)、SQL查詢語句、標記語言(例如HTML、XML等)等.
新聞熱點
疑難解答
圖片精選