DSL的本质:领域构建的半成品】的更多相关文章

DSL的本质是使用通用和专用语言构建领域的半成品: 实际上是构建了一个世界观.小宇宙的半成品: 这个半成品包含领域的基本要素.联系方式和基本运行规律: 开发者使用这个半成品平台进行开发能达到事半功倍.开发效率大大提高的效果. 使用这个dsl技术能够使用专业的技术进行直观的应用构建,这种构建基于声明式编程,减轻专业的计算机编程技术的负担. 所以开发一方面是自己构建DSL,另一方面是查找定位使用现成的dsl技术的过程.…
本来是很想写关于VS的DSL的文章的,有点小忙,就一直在拖延,忽然有看见了"<在Visual Studio 2012中使用VMSDK开发特定领域语言>",又有写的欲望了,这段时间没事,而且处于寂寞无聊的状态,就准备写一个关于自己应用DSL(Domain-Specific Languages)经验的小系列,不讲详细的系统的技术,只讲具体应用中用到的.而且作为编程的新手,就分享一下仅有的一点点经验,不知道能不能坚持下来. 我用过的是VS2010,那这篇文章就针对VS2010的D…
介绍 我们将通过例⼦介绍和解释⼀些显式规则.在实现领域驱动设计时,应该遵循这些规则并将其应⽤到解决⽅案中. 领域划分 首先我们先对比下Blog.Core和本次重构设计上的偏差,可以看到多了一个博客管理和类别管理. 根据上面得到的业务脑图我们可以看到包含Blog(博客),Post(文章),Comment(评论),Tag(标签),User(用户),根据脑图画出领域图来指明关系. 领域图连接地址:https://www.processon.com/view/link/611365c00e3e7407d…
DSL(Domain Specific Language)是针对某一领域,具有受限表达性的一种计算机程序设计语言. 常用于聚焦指定的领域或问题,这就要求 DSL 具备强大的表现力,同时在使用起来要简单.由于其使用简单的特性,DSL 通常不会像 Java,C++等语言将其应用于一般性的编程任务. 对于 Groovy 来说,一个伟大的 DSL 产物就是新一代构建工具--Gradle,接下来让我们看下有哪些特性来支撑Groovy方便的编写DSL: 一.原理 1.闭包 官方定义是"Groovy中的闭包是…
阅读目录 开篇介绍 1.1示例介绍 (OnlineExamination在线考试系统介绍) 1.2分析.建模 (对真实业务进行分析.模型化) 1.2.1 用例分析 (提取系统的所有功能需求) 1.3系统设计.建模 (技术化业务模型) 1.3.1 枚举类型的使用 (别让枚举类型成为数值型对象) 1.3.2 基础数据.业务数据 (显示实体和隐式过程) 1.3.3 模型在数据库中的主外键关联问题 (面向对象模型与关系模型的天然抗阻) 1.3.4 角色.类型 (区分类型与面向对象概念) 1.3.5 名词…
Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言. 构建工具就是对你的项目进行编译,运行,签名,打包,依赖,管理等一系列功能的合集,传统的构建工具有Make,Ant,Maven,lvy等, 而Gradle是新一代自动化构建工具,它是一个独立的项目,与AS,Android无关. 在项目的根目录有个build.gradle文件,里面有这么一句代码: classpath 'com.…
开篇介绍 在开始这篇富有某种奇妙感觉的文章之旅时我们先短暂的讨论一下关于软件开发方法论的简要: 纵观软件开发方法论,从瀑布模型.螺旋模型.RUP(统一软件开发过程).XP(极限编程).Agile(敏捷开发)一路走来,他们的好他们的美,我想接触过的人都会口口称赞,都是大师们一身的经验结晶最后沉淀为专业的技术方向.技术领域,带领我们软件开发者们永无止境的前进,目睹一场又一场的美景一桌又一桌盛宴.他们在不断的开辟新的领域,称为伟大的科学家一点都不为过. 但是为什么这么多方法论都没有能在企业中大面积的普…
DSL编程:有人将DSL编程称之为声明式(Declarative)编程.DSL是在模型之上建立的一种更加灵活的对 模型化的理解和使用方式.语义模型是DSL的核心.内部DSL:用通用语言的语法表示DSL,需要安装某种风格使用这种语言.外部DSL:在主程序设计语言之外,用一种单独的语言表示领域专有语言.可以是定制语法,或者遵循另外一种语法,如XML.DSL定义:针对某一领域,具有受限表达性的一种计算机程序设计语言.外部DSL:不同于应用系统主要使用语言(c,java,c++,c#)的语言.内部DSL…
阅读目录 开篇介绍 1.1示例介绍 (OnlineExamination在线考试系统介绍) 1.2分析.建模 (对真实业务进行分析.模型化) 1.2.1 用例分析 (提取系统的所有功能需求) 1.3系统设计.建模 (技术化业务模型) 1.3.1 枚举类型的使用 (别让枚举类型成为数值型对象) 1.3.2 基础数据.业务数据 (显示实体和隐式过程) 1.3.3 模型在数据库中的主外键关联问题 (面向对象模型与关系模型的天然抗阻) 1.3.4 角色.类型 (区分类型与面向对象概念) 1.3.5 名词…
在使用android studio开发android程序时,as就是基于gradle进行构建的,我们只需要通过run就可以编译.打包.安装,非常方便,但是究竟gradle是什么呢?  一.java构建工具 首先,我们得知道什么是构建工具.实际上,构建工具是一个可编程的工具,它可以帮助我们执行有序的任务,实现工程的自动化,而减少甚至避免不必要的手动操作,即构建工具是一个工具,它就是解放生产力,提高效率的. 在前端中,webpack就是一个构建工具,它不仅仅可以打包,还可以完成测试.热更新.部署.检…