在兩年前我開始研究Groovy,開始將它加入實際的專案開發中。對於經常需要修改變動的程式,視效能要求的不同,以Groovy撰寫class或shell,又J2EE的JSP&Servlet可用GSP&Groovlet取代,如此可以輕鬆不少。
然而只是語法的簡化只是好處之一,"dynamic"能帶來的價值更高,它讓撰寫plugin變得十分容易。而在系統runtime時期,某些需要經常改變做調整的功能,改以scripting方式執行,將使擴充性及使用彈性更佳。
plurk-robodog是噗浪的訊息工具,給它一組plurk帳號密碼及API-KEY,就能夠自動回應某些訊息。
例如:
收到 translate How are you? 回應 How are you?就是你好嗎?
收到 Discovery頻道 回應 Discovery頻道正在播出XXXX,接著播出OOOO
諸如此類。
運用Java眾多且免費的Library,要解析網頁原始碼、存取各種網路服務的API,都只需要短短幾行程式碼,而用Groovy撰寫又更加簡短。
plurk-robodog目前是以下的架構:
- plurk-login-procedure
- plurk-event-callback = event-handler
* run spider scripts
main-loop {
* run food scripts
}
event-handler {
* run weapon scripts
}
主程式完成plurk登入後,會先執行spider scripts,讓一些背景程序開始運作,接著進入迴圈定期執行food scripts,主動發"噗",而收到plurk傳來的新"噗"時,就交給weapon scripts去處理"噗",並回應適當的"噗"。
在執行期間,放在spider、food、weapon資料夾下的*.groovy程式,都是可以修改或增加,如此就能擴充新功能,例如增加對某些特定訊息內容的處理。如此一來,程式擴充可以立即測試,已經登入在線上運作的robodog程式也不需要重新啟動。
Sample(1) 以下是一段從回應電視頻道正在播放節目名稱的weapon script。
Ubuntu Linux的使用者,可用以下指令取得及執行plurk-robodog。
安裝jdk/ant/svn
sudo apt-get update
sudo apt-get install openjdk-6-jdk ant subversion
取得原始碼
svn checkout http://plurk-robodog.googlecode.com/svn/trunk/robodog-v1/
編譯並執行
cd robodog-v1
ant run
沒有留言:
張貼留言