不用封装 SQL, HTML 等领域语言了吧?

领域语言就是像 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”吧。

如果是这样的话,看来我还是直接使用 SQL 等领域语言好了。

# 参考:

2.3 程序设计语言的分类

http://book.51cto.com/art/201007/209600.htm


特定领域语言(domain specific languages)是用于解决特殊领域中特殊问题表示技术和解决方案的程序设计语言。典型的特定领域语言包括正则表达式、层叠样式表(cascading style sheets,CSS)、SQL查询语句、标记语言(例如HTML、XML等)等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值