`
shannon977
  • 浏览: 19237 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

配置、脚本和编程语言

阅读更多

配置、脚本和编程语言,看似很不相同,其实本质上是一样的东西。这点从Ant脚本可以看出来,它基于的XML是配置所采用的流行格式。同时Ant脚本里有量,有函数,能循环和逻辑判断,已经具备编程语言的基本要素了。

程序像一个水桶,边界条件的约束就像桶边,有了边才能盛水。编程就像箍桶。但通常我们不把桶做成三维密封的圆柱体,顶上留口,以便水进出。编程也一样,为灵活性考虑,我们通常会让某些条件开放着,留待部署时配置。我们通常对这种灵活性认识深刻。

程序又可被看作是一个数学命题。命题通常先题设,再推断。程序也有像题设一样的“边界条件”,比如用什么算法,内存组织,持久化策略,具体到数据库的url。编程就是用配置、脚本或语言,为所有条件给出具体约束,最后程序才能工作。所以这三者或都可以定义为定义程序边界条件的语法集合,区别只在简单复杂而已。这说明,这三者之间并非不可逾越。它们是什么,不在于组织形式并非XML文件就一定是配置文件,而在于语法集合本身如果希望用配置定义像算法内部实现一样复杂的流程,那么配置就会变成复杂的编程语言,即便它以XML的形式组织。

所以在实践中,有必要时时保持警惕,避免把配置定义得过于复杂。我曾经有两次开发经历,有把配置脚本化的倾向,最终还是抵挡住了这种诱惑。

不过于复杂的原因,我还是从成本来考虑的。

 

实现成本

学习使用成本

配置

配置导入模块

低。有限的参数,可以手工配置。

脚本

脚本解析器

高。复杂的语法集合,需要有界面辅助配置

语言

编译器

高。全集,需要有IDE

 

当然,我们也许会觉得这世上脚本和语言多得是,而且不乏人开发,多我一个也不多啊!还是用数学命题打比方吧。命题有公理、定理和推论等。世上发明公理定理的牛人是不辈出的。大多数人不过是拿着推论搞应用。我见过朴实的农民拿着厚厚的稿子来大学找教授的,但绝大多数是初中生证明哥德巴赫猜想似的例子。所以像你我这样的普通程序员,如果碰到了发明自己的脚本甚至语言的机会,提醒一下自己是不是幻觉,还是有现实意义的。当然配置脚本化这样极端的情况不会经常发生的,但基于此,处处提醒自己不要让配置太复杂,也有好处。

最后谈谈关于咋做的一些经验之谈。要避免让程序配置长得太过复杂,首先每次往文件里塞一条新的配置之前,都要先问问自己:这样做有必要吗?或者当配置复杂到将要超出自己控制的时候,就要选择“立定,向后转”,失控的标志通常就是配置需要定义流程控制,循环等。

对于模块和规模不大的程序而言,简单的配置+接口回调,可以用来抵挡配置脚本化的趋势。简单的边界条件用配置,复杂的则仍然在接口实现里用代码定义。这样对于使用者而言,学习配置格式的代价有限,而写接口实现代码的语言则应该是早为他们所熟悉的C/C++Java等。

分享到:
评论

相关推荐

    脚本语言编程脚本语言编程

    4、掌握在网页中使用脚本语言编程、调试的方法。 二、实验内容 1、设置IIS的主目录,并在Dreamweaver中新建相应的站点。 2、使用VBScript编写客户端脚本程序,计算e=1+1/1!+1/2!+…+1/n!, 其中n的值由键盘输入,并...

    脚本语言编程(web课程设计)

    4、掌握在网页中使用脚本语言编程、调试的方法。 二、实验内容 1、设置IIS的主目录,并在Dreamweaver中新建相应的站点。 2、使用VBScript编写客户端脚本程序,计算e=1+1/1!+1/2!+…+1/n!, 其中n的值由键盘输入,并...

    脚本语言编程(web课设报告)

    4、掌握在网页中使用脚本语言编程、调试的方法。 二、实验内容 1、设置IIS的主目录,并在Dreamweaver中新建相应的站点。 2、使用VBScript编写客户端脚本程序,计算e=1+1/1!+1/2!+…+1/n!, 其中n的值由键盘输入,...

    编程语言+JAVAspring+脚本语言+动态扩展

    eclipse编程语言+JAVAspring+脚本语言+动态扩展**:这是一个关于JAVAspring编程语言的脚本语言的动态扩展的资源,适合有一定JAVAspring基础的开发者。它介绍了JAVAspring的脚本语言的概念、原理和作用,以及如何使用...

    TCL脚本语言编程

    VIVADO经常使用TCL脚本对FPGA进行调试,通过JTAG转AXI对内部模块进行控制,但是TCL语言书籍比较少,这边是一个英文的TCL语言学习书籍. 第 1 章. TCL基本知识...........................................................

    基于PHP和多种编程语言的FlarumChina论坛设计源码

    文件类型包括3717个PHP源代码文件、544个JavaScript脚本文件、266个JSON配置文件、235个YAML配置文件、176个Markdown文档、142个LESS样式文件、87个TXT文件、56个Git忽略文件、35个XML配置文件和33个EditorConfig...

    SHELL脚本编程实战手册

    SHELL脚本编程实战手册讲解 内容包含: 1、编程基础 2、shell脚本语言基本结构 3、bash的配置文件 4、流程控制 5、函数介绍 6、其他脚本相关工具 7、数组 8、字符串处理 9、高级变量

    基于C语言的洛书编程语言设计源码

    本项目是基于C语言开发的洛书编程语言设计源码,主要使用C进行开发。项目共包含340个文件,其中C源代码文件62个,Markdown文档文件59个,...项目结构清晰,代码注释详尽,适合用于学习和研究C在编程语言开发中的应用。

    罗技鼠标宏编程 API 参考文档.zip

    G-series Lua API 参考手册是一套使用Lua脚本编程语言描述并且为 G-series 系列游戏键盘提供高级脚本功能。 该文档是在假设您已初步掌握Lua脚本编程语言使用方法的前提下进行的。如果您想了解更多信息请访问 ...

    CGI脚本入门学习--HTML格式

    你应该用什么编程语言? 你的服务器设置正确吗? 如果你的服务器不是UNIX系统呢? 解剖CGI脚本 输出头部 输出数据部 带阐述的脚本 传递其他信息给脚本 创建特殊的脚本输出 以装载另一个文本响应 无响应 ...

    go语言web编程

    1.Go环境配置 ...13.4 日志和配置设计 13.5 实现博客的增删改 13.6 小结  14.扩展Web框架 14.1 静态文件支持 14.2 Session支持 14.3 表单支持 14.4 用户认证 14.5 多语言支持 14.6 pprof支持 14.7 小结

    简单易用的脚本编程工具 AutoIt 3.3.12.0 中文免费版.zip

    简单易用的脚本编程工具 AutoIt 中文版简单易用的脚本编程工具 AutoIt 中文版 AutoIt 最初是为PC(个人电脑)对数千台PC进行配置的“批量处理”而设计,不过随着v3版本的到来它也很适合用于家庭自动化和编写用以完成...

    LUA5.1 脚本语言 编译执行源码

    年在巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro in Brazil)诞生了一门编程语言,发明者是该校的三位研究人员,他们给这门语言取了个浪漫的名字——Lua,在葡萄牙语里代表美丽的...

    嵌入式系统/ARM技术中的Linux 编程之C与脚本的混合编程

    脚本语言灵活的变量类型、强大的正则表达式处理能力,再加上linux系统本身的管道、重定向以及丰富的命令行工具,让你编程起来游刃有余。  而C语言固然有种种优势,但不可否认,很多场合下,用脚本语言更为方便,...

    magic-script是一款基于JVM的脚本语言,目前主要是为magic-api项目设计

    magic-script是一款基于JVM的脚本语言,目前主要是为magic-api项目设计。magic-api,接口快速开发框架,通过Web页面配置,自动映射为HTTP接口;spider-flow,新一代爬虫平台,以图形化方式定义爬虫流程,不写代码...

    Maltab脚本(2020a)-解析asc文件Can信号(源码)

    1、该版本已部分优化,使用m语言以及perl语言编程,大幅提高效率; 2、资源为源码,附有部分注释; 3、脚本可以同时解析多个asc文件,命名方式为0.asc、1.asc,依次类推; 4、脚本可以同时解析多个Can信号,用户只需...

    UaScript:乌克兰编程语言

    乌克兰编程语言 要运行演示: (从git克隆此项目) npm i npm run demo 如何在自己的项目中使用 在npm项目中运行脚本: npm i uascript 创建文件夹src并在index.uas创建 您的项目树应如下所示: ├── _src │ ...

    微软开源的命令行外壳和脚本环境 PowerShell.zip

    PowerShell 就相当于 Linux 下的 Bash 以及 SHELL 脚本编程语言。PowerShell 与 Bash 的对别:BashPowerShellDescriptionlsdir, Get-ChildItemList files and folderstreedir -RecurseList all files and ...

    INCA_ProF脚本教程总结.pdf

    INCA软件是当前主流标定开发软件之一,尤其在动力系统控制器的标定中应用非常广泛;ProF编程脚本是INCA软件提供各种实用功能之一,使用者可根据需求编写ProF脚本对ECU闪存编程等各种自定义操作。

    基于Vue3和Elment Plus的在线编程闯关挑战网站设计源码

    项目包含166个文件,主要使用JavaScript、Vue、CSS和HTML编程语言。文件类型包括49个JavaScript脚本文件、35个Markdown文档、34个SQL数据库文件、16个Vue组件文件、6个SVG图标文件、5个PNG图片文件、4个JSON配置文件...

Global site tag (gtag.js) - Google Analytics