关于Domain Sepcific Lang
今天在看一些关于CO的东东
里面提到,用从语言派生出来的领域语言再去编写代码会大大加速开发进程
PHP应该是个典型的领域语言(Perl之于文本处理也是这样),虽然不是从什么其他领域派生出来的,但是使用来编写web项目相对其他语言有天生的优势
当有了PHP框架之后,更是针对web做了各种包装,使得获取资源和执行命令更加方便(如Facade之类的应用)
不禁联想到之前看的《黑客与画家》里提到Lisp的方言,也是Lisp针对具体情况下产生的子语言。
如果语言可以派生语言,那么不就可以简单的生成针对对应领域的语言和库了吗,就像PHP之于web开发一样
不过,PHP一路走来,其实经历了很久的发展和改良才成为现在这样适合web的方式,
说明你很难一下就弄清楚针对一个领域的语言到底应该是什么样子的,只有经过不断的思考,从需求的反馈来改进
从这个方面来说对需求的分析和对设计的要求是相近的,只是有了更强大的工具,允许在更大的维度上进行更优秀的设计了
关于Domain Sepcific Lang的更多相关文章
- Openfire Strophe开发中文乱码问题
网站上有很多Openfire Web方案,之前想用Smack 但是jar包支持客户端版本的,还有JDK版本问题 一直没调试成功 估计成功的方法只能拜读源码进行修改了. SparkWeb 官网代码很 ...
- Xmpp学习之Android-smack入门指导
Xmpp学习之Android-smack入门指导 版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请表明出处:http://www.cnblogs.com/cavalier-/p/69404 ...
- 项目收集-AutoMapper使用,事务,Json.Net序列化反序列化,代码生成调用等
using System; using AutoMapper; using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace Console ...
- 使用JMX监控Kafka
监控数据源 JMX RMI方式启动Broker,Consumer,Producer -ea -Dcom.sun.management.jmxremote.authenticate=false -Dco ...
- java.lang.ClassCastException: java.lang.String cannot be cast to com.jy.hfims.domain 映射实体类型错误
今天在做 excel导出的时候,出现了一个问题"java.lang.ClassCastException: java.lang.String cannot be cast to com.do ...
- Caused by: java.lang.InstantiationException: cn.at.bean.domain.ConstantInt
org.springframework.jdbc.UncategorizedSQLException: ConnectionCallback; uncategorized SQLException ...
- java.lang.IllegalArgumentException: An invalid domain [.test.com] was specified for this cookie解决方法
当项目中使用单点登录功能时,通常会使用cookie进行信息的保存,这样就可以在多个子域名上存取用户信息. 比如有三个domain分别为test.com,cml.test.com,b.test.com这 ...
- java.lang.IllegalArgumentException: An invalid domain [.test.com] was specified for this cookie
https://blog.csdn.net/cml_blog/article/details/52135115 当项目中使用单点登录功能时,通常会使用cookie进行信息的保存,这样就可以在多个子域名 ...
- Nginx配置Tomcat8反向代理出现 java.lang.IllegalArgumentException: The character [_] is never valid in a domain name.
在配置Nginx的反向代理,访问反向代理的路径而出现了异常 java.lang.IllegalArgumentException: The character [_] is never valid i ...
随机推荐
- react-native 0.58版本打包图片问题 task ':app:mergeReleaseResources' Error: Duplicate resources
debug没问题,在生成正式apk的时候就如下: google了一下在github上找到了解决方案: github问题指向 在node_modules/react-native/react.gradl ...
- 模板BSGS(SDOI2011计算器) 模板EXBSGS
BSGS和EXBSGS是OI中用于解决A^xΞB(mod C)的常用算法. 1.BSGS BSGS用于A,C互质的情况. 令m=sqrt(C),此时x可表示为i*m+j. 式中i和j都<=sqr ...
- django找不到报错 ‘zsh: command not found: django-admin.py’
>>python -m django --version >> 1.11.4 说明django安装成功,但是django-admin 报错 ‘zsh: command not ...
- MyBaties异常之 ORA-00918: 未明确定义列
原因: 如果a表与b表连接,且a与b中存在两个相同的字段,则必须指明字段是哪个表的 箭头所致位置没有指定ROOM_ID为那个表的,应修改为t1.ROOM_ID
- noi.ac NOIP2018 全国热身赛 第二场 T1 ball
[题解] 可以发现每次推的操作就是把序列中每个数变为下一个数,再打一个减一标记:而每次加球的操作就是把球的位置加上标记,再插入到合适的位置. 用set维护即可. #include<cstdio& ...
- xtu Shortest Path
Acceteped : 23 Submit : 61 Time Limit : 5000 MS Memory Limit : 65536 KB Description 题目描述 N(3≤N≤1 ...
- 56. spring boot中使用@Async实现异步调用【从零开始学Spring Boot】
什么是"异步调用"? "异步调用"对应的是"同步调用",同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执 ...
- MySQL Foreign Key
ntroduction to MySQL foreign key A foreign key is a field in a table that matches another field of a ...
- Archive log restore using RMAN for Logminer (http://www.dba-village.com/village/dvp_forum.OpenThread?ThreadIdA=26816)
Subject: Archive log restore using RMAN for Logminer Author: Edwin Weele van der, Netherlands Date: ...
- 一个WebLoad 脚本范例
//initial the Agenda function InitAgenda(){ wlGlobals.SaveHeaders = true; wlGlobals.SaveSour ...