《Java编程十五讲》第十一讲:脚本
第十一讲 脚本
大家好。我前两年意识到一件事情,就是Java里面有一个很好的功能许多人没有注意到,而要做大型一点的系统或者是做扩展性好一点的系统却都会用到,那就是脚本(script)技术。
学技术之前,还是先看场景。
我们做的应用系统里面,经常需要设置一些业务规则。比如权限控制,不管是网络层的防火墙还是应用层的数据权限,一般用户是希望设置一个规则,网络权限像IP between 192.168.2.101 and 192.168.2.149,像port=80 or port=8080 or port=21等,数据权限像level>3 and department in (‘’IT,’ADMIN’)等。还有一些计算方法,不希望写死在代码中,而是拉出来让用户自己配置,比如算保费,可能是根据一堆条件和计算公式算出来的,更关键的是每年可能都会有改动,修改源代码自然可以,但是如果把计算公式设计成可以配置的,系统就更加灵活,可扩展了。
应用程序员的一大痛苦就是要面对每天不断的需求变化,有的时候令人崩溃。国内企业习惯把系统打成一个包,不管付出多少劳动都是这个包的价格,用户不断加内容,不断修改,觉今是而昨非,而销售部门觉得不就是这么一点改动吗,还不对人好一点?于是程序员们只好不停地修改,疲于奔命,还不落好。我的一位前任公司领导曾开玩笑地跟我说:“看你们程序员一个个天天咬牙切齿,一副很努力工作的样子,也产出不来什么东西。你们都在干什么呀?”
从那个时候开始,我就在想,能不能把这些权限规则、计算公式、流程之类的都外部化为配置文件,让用户自己定义ÿ
《Java编程十五讲》第十一讲:脚本相关推荐
- Java语言十五讲(前言)
特此声明:本文为本人公司郭总原创书籍的前言,该书已出版,传送门 ->>>>Java编程十五讲 本人微信公众号内已更新完成.喜欢学习的小伙伴可以搜索微信公众号:程序员Hotel ...
- Java语言十五讲(第十二讲 Multi-Thread多线程12.2)
实例变量如balance在线程间是共享的.有的时候,我们真的需要线程级别的变量,不希望共享,也是有办法的.Java里面有ThreadLocal变量. 比如,我们的线程从inventory里面拿东西,上 ...
- Java语言十五讲——前言
前言 每年技术媒体都会评选最受欢迎的编程语言,Java总是高居前位.自然,没有办法说一个语言绝对比另一种语言好,这个话题一如既往地会引起大家无谓的争论不休.对别的行业的人来讲也许会觉得莫名其妙,但是对 ...
- [丁奇四十五讲]第8讲学习笔记
1.事务开启类型 begin/start transaction到具体的语句再开启事务 start transaction with consistent snapshot直接开启事务 非显式运用be ...
- [丁奇四十五讲]第9讲学习笔记
普通索引和唯一索引 1.索引类型 index:普通索引 unique:唯一索引(查找到第一个满足条件的记录之后,就会停止) primary key:主键索引 foreign key:外键索引 inn ...
- C++面向对象高级编程十九讲
文章目录 0 背景 1 内容 0 背景 因为本人的C++基础不是很扎实,很多面向对象的基本语法掌握的不是很熟练,导致写程序出错时,经常会犯错,于是就去网上找到了侯捷老师的C++课进行观摩学习. 本文是 ...
- Java基础第一讲:Java的故事和Java编程环境搭建
{ Android学习指南 } 适于自学的ANDORID学习指南,基于ANDROID 2.2.2.3.3及3.0版本讲解 <ANDROID学习指南>目录 RSS Java基础第一讲:Jav ...
- java的网络编程有用吗_十大有用但又偏执的Java编程技术
java的网络编程有用吗 经过一段时间的编码(以我为例,大约20年左右,当您玩得开心时光飞逝),人们开始接受这些习惯. 因为,你知道... 任何可能出错的事情都会发生. 这就是为什么人们会采用&quo ...
- 十大有用但又偏执的Java编程技术
经过一段时间的编码(以我为例,大约20年左右,当您玩得开心时光飞逝),人们开始接受这些习惯. 因为,你知道... 任何可能出错的事情都会发生. 这就是为什么人们会采用"防御性编程" ...
- Java编程思想第四版——第十五天
2012-04-23 121-131/913 Java编程思想第四版--第十五天 5.5.3 终结条件 通常不能指望finalize(),必须创建其他的"清理"方法,并明确的调用它 ...
最新文章
- 翻转单词顺序与左旋转字符串
- Lottie开源动画库
- 三维数组设置索引_10-Unity入门学习之C#基础9「数组」
- 刺激战场战斗服务器无响应,绝地求生刺激战场网络异常怎么办 波动异常解决...
- 分布式理论和分布式一致性协议
- 机器学习实战(九)K-means(K-均值)
- 1从控制台输入年份,判断是闰年还是平年;
- android UI 标签
- php bc gmp,php中ipv6转纯数字和反转
- Html中代码换行造成空格间距的问题
- mysql损坏打不开_mysql 断电导致表打不开解决方案
- 红宝书第四版的一个错误?
- 在西安参加Java培训该怎么学习?
- 问答网站Stack Overflow的成功之道
- t台式计算机如何安装2个硬盘,台式机械硬盘怎么安装?机械硬盘安装图解教程(SATA固态可参考)(2)...
- pbe服务器无限火力模式,LOL4月9日PBE更新:无限火力模式上线!
- 达芬奇密码 第八十二章
- JavaScript时间格式化
- 【AMD、CMD和CommonJS】
- html密码框ml表单文本框,表单组件 PasswordInput 密码输入框 - 闪电教程JSRUN
热门文章
- Centos linux 修改ip地址
- 用python求3的阶乘_Python 阶乘实例 - Python 3 基础教程
- 翻译PDF 翻译PPT 保留原格式 一键搞定
- linux下制作dos启动u盘启动,在Linux系统下创建FreeDOS可启动U盘
- Office2013 及 WPS 设置护眼文档颜色方法
- 数学【1】:矩阵特征值与特征向量的求法
- 2017年网易校招Java面试题
- 【Pycharm】安装及激活、界面调整、导入anaconda的依赖库、字体设置微软雅黑
- 技嘉ide模式怎么改,电脑BIOS中怎么设置硬盘为IDE模式
- linux三星电脑开机怎么进入页面,三星Samsung笔记本电脑开机进入BIOS的方法与BIOS设置全功能菜单(F2)...