关于Domain Sepcific Lang

今天在看一些关于CO的东东

里面提到,用从语言派生出来的领域语言再去编写代码会大大加速开发进程

PHP应该是个典型的领域语言(Perl之于文本处理也是这样),虽然不是从什么其他领域派生出来的,但是使用来编写web项目相对其他语言有天生的优势

当有了PHP框架之后,更是针对web做了各种包装,使得获取资源和执行命令更加方便(如Facade之类的应用)

不禁联想到之前看的《黑客与画家》里提到Lisp的方言,也是Lisp针对具体情况下产生的子语言。

如果语言可以派生语言,那么不就可以简单的生成针对对应领域的语言和库了吗,就像PHP之于web开发一样

不过,PHP一路走来,其实经历了很久的发展和改良才成为现在这样适合web的方式,

说明你很难一下就弄清楚针对一个领域的语言到底应该是什么样子的,只有经过不断的思考,从需求的反馈来改进

从这个方面来说对需求的分析和对设计的要求是相近的,只是有了更强大的工具,允许在更大的维度上进行更优秀的设计了

时间: 2024-10-11 13:08:53

关于Domain Sepcific Lang的相关文章

python模块介绍- google 谷歌搜索引擎python接口

简介 google 模块是谷歌搜索引擎python接口,系用urllib2在google上进行搜索,使用BeautifulSoup进行解释外部封装,非google官方接口. 功能:谷歌搜索引擎python接口 类型:外部模块 当前版本:1.0.5(查看日期2013-12-22) 下载地址: https://pypi.python.org/pypi/google 月下载量:1万左右 平台:跨平台 安装 从https://pypi.python.org/pypi/setuptools下载最新版本的s

Hadoop之HDFS命令

概述 所有的HDFS命令都调用bin/hdfs脚本文件,如果运行hdfs脚本没有带任何参数的话,则打印所有命令的描述. 使用: hdfs [SHELL_OPTIONS] COMMAND [GENERIC_OPTIONS] [COMMAND_OPTIONS] Hadoop是一个参数解析框架,采用解析泛型选项以及运行类. 命令参数 描述 --config --loglevel 指定一个默认的配置文件目录,默认值是: ${HADOOP_PREFIX}/conf. 重载Log级别.有效的日志级别包含:F

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.domain.xxx": 公司用hibernate,查询时候可以用sql和hql,用什么一般看心情,第一次查询用的是select g.* from persion g ,site s where g.wz=s.dz(当然都是简写); 当get实体导出的 时候出现了" java.lang.Cla

java.lang.IllegalArgumentException: An invalid domain [.test.com] was specified for this cookie

https://blog.csdn.net/cml_blog/article/details/52135115 当项目中使用单点登录功能时,通常会使用cookie进行信息的保存,这样就可以在多个子域名上存取用户信息. 比如有三个domain分别为test.com,cml.test.com,b.test.com这三个域名下的cookie是需要互相访问的.这时会在response上写入cookie信息 Cookie cookie = new Cookie("testCookie", &qu

java.lang.ClassNotFoundException: Cannot find class: User

org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession. ### The error may exist in dao/UserMapper.xml ### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.lang.RuntimeExc

js实现跨域(jsonp, iframe+window.name, iframe+window.domain, iframe+window.postMessage)

一.浏览器同源策略 首先我们需要了解一下浏览器的同源策略,关于同源策略可以仔细看看知乎上的一个解释.传送门 总之:同协议,domain(或ip),同端口视为同一个域,一个域内的脚本仅仅具有本域内的权限,可以理解为本域脚本只能读写本域内的资源,而无法访问其它域的资源.这种安全限制称为同源策略. ( 现代浏览器在安全性和可用性之间选择了一个平衡点.在遵循同源策略的基础上,选择性地为同源策略"开放了后门". 例如img script style等标签,都允许垮域引用资源.) 下表给出了相对 

Caused by: java.lang.ClassCastException: org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializer错误解决办法

严重: Failed to initialize end point associated with ProtocolHandler ["http-bio-8080"] java.net.BindException: Address already in use <null>:8080 at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:407) at org.apache.tomcat.util.

解决Exception: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

在项目中添加src中添加NativeIO类 /** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF lice

Maven--java.lang.NoClassDefFoundError: org/codehaus/plexus/compiler/util/scan/InclusionScanException

maven报错 java.lang.NoClassDefFoundError: org/codehaus/plexus/compiler/util/scan/InclusionScanException 问题的解决方案会在文章的中间给出,请一步一步阅读. Maven是一个非常强大的构建工具,能够帮助我们自动化构建过程,从清理.编译.测试到生成报告,再到打包和部署,Maven都可以. Maven对于项目目录结构.测试用例命名方法等内容有既定的规则,只要遵循这些规则,用户在项目间切换的时候就免去了额