第十一讲 脚本
大家好。我前两年意识到一件事情,就是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’)等。还有一些计算方法,不希望写死在代码中,而是拉出来让用户自己配置,比如算保费,可能是根据一堆条件和计算公式算出来的,更关键的是每年可能都会有改动,修改源代码自然可以,但是如果把计算公式设计成可以配置的,系统就更加灵活,可扩展了。
应用程序员的一大痛苦就是要面对每天不断的需求变化,有的时候令人崩溃。国内企业习惯把系统打成一个包,不管付出多少劳动都是这个包的价格,用户不断加内容,不断修改,觉今是而昨非,而销售部门觉得不就是这么一点改动吗,还不对人好一点?于是程序员们只好不停地修改,疲于奔命,还不落好。我的一位前任公司领导曾开玩笑地跟我说:“看你们程序员一个个天天咬牙切齿,一副很努力工作的样子,也产出不来什么东西。你们都在干什么呀?”
从那个时候开始,我就在想,能不能把这些权限规则、计算公式、流程之类的都外部化为配置文件,让用户自己定义ÿ