声明式编程思想和EEPlat,编程思想eeplat


声明式编程定义

声明式编程(英语:Declarativeprogramming)是一种编程范型,与命令式编程相对立。它描述目目标性质,让计算机明白目标,而非流程。声明式编程不用告诉电脑问题领域,从而避免随之而来的副作用。而指令式编程则需要用算法来明确的指出每一步该怎么做。

声明式编程通常被看做是形式逻辑的理论,把计算看做推导。声明式编程因大幅简化了并行计算的编写难度,自2009起备受关注。

声明式编程的比较

声明式编程和命令式编程的比较如下:

命令式编程:命令“机器”如何去做事情(how),这样不管你想要的是什么(what),它都会按照你的命令实现。

声明式编程:告诉“机器”你想要的是什么(what),让机器想出如何去做(how)。

声明式编程的核心思想

声明式编程是一种自上而下的编程模式,编程的思考重点在于直接描述程序的行为,而不是详细描述程序的行为和实现细节。

声明式编程是一种相对于指令性编程更加简单凝练的直接描述软件程序行为和目标的方式。命令性编程(如C、Java等需要详细定义程序的流程和行为)更多的关注程序实现的细节。

声明式编程主要侧重整体性、目标性,具体实现细节通过解析器或执行引擎来进行。声明式编程是更加抽象更加高级的编程方式,使用更加简单同时忽略内部实现细节的编程模式。

EEPlat是声明式的开发平台

EEPlat通过自己定义的“元模型体系”定义出相应软件系统的“元数据”,通过执行引擎解析执行“元数据”,最终展现成一个可执行的软件系统。可以看出EEPlat正是按照声明式编程的思想来组织整个开发过程。

通过EEPlat的后台,我们“声明”要开发的软件系统的界面内容和UI交互流、“声明”要开发的软件系统的数据模型、“声明”要开发的软件系统的业务逻辑和业务流程。“声明”完成后,该软件系统就完成开发,能够直接运行发布。

在EEPlat中,一个软件系统的开发过程,其实就是对该软件系统从界面到数据及流程、业务逻辑的全面的完整的“声明”过程。

EEPlat也正是由于采用了声明式编程的思想,使用了元数据驱动的技术,才能够在概念上更贴近于需求,开发上更加高效,使用上更加方便简单灵活。


声明式事务与编程式事务的不同与联系

Spring的声明式事务通常是指在配置文件中对事务进行配置声明,其中包括了很多声明属性,具体可以参考《Spring高级编程》这本书,它是通过Spring Proxy帮你做代理,自己不用额外的写代码,只要在Spring配置文件中声明即可;通常用在数据库的操作里面;
编程式事务就是指通过硬编码的方式做事务处理,这种处理方式需要写代码,事务中的逻辑可以自己定制;可以是数据库的东东,也可以是其他的操作。。。
 

第四代编程语言与声明式编程是什关系?

举个简单的例子:
我在shell下想要安装apache Web Server,那我使用shell的命令式语言:
apt-get install apache2
注意,我告诉操作系统使用apt-get命令的install选项,来安装名为apache2的包。
再来看看Puppet,一个使用声明式语言的配置管理工具,是怎么做的:

package {'Install_apache':
name => 'apache2',
ensure => 'installed',
}
请大声念出来这段代码:我定义了一个名为install_apache的package函数,要安装的包名叫apache2,状态是installed。
我并不关心背后的系统是什么,也不关系系统最终调用了什么命令来完成apache包的安装,只要apache的状态是已安装即可。

这样明白了么?这只是一个使用ruby实现的DSL,还不是完整的语言。

声明式编程比命令式抽象级别更高。
 

相关内容