《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裏面提供的功能。

JDK 1.6開始增加了一個javax.script包,提供了對腳本引擎的支持。第一句話一說出來,就有人懵了。一般人的反應是想了解Ja

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章