Goliath是以Ruby開發的non-blocking (asynchronous) Server,相對於最近熱門到不行的node.js來說,也是一個強調高效能且即時的Server。
目前個人做了一個小玩具,叫EasyGo(liath),就是幫goliath(巨人)接接原本它沒有的翅膀呀,手呀腳呀(Goliath給出來的東西都是小東西,發育不良),自已做起東西就方便得多。
至於為什麼不想用node.js來做呢?
- 對javascipt有恐懼感 = = 我沒有jquery就不會做事了
- 一堆callback看到我眼睛都抽筋了
- 比較想用ruby寫東西(個人私心)
以上只代表一件事 I love ruby > javascript
回主題,重點是Goliath和其他元件如何搭配出我在Java做了三年的工具,所以原本其實只要搞定連接mqserver,使用Websocket和在不支援前者時改用long-polling的問題就可以處理掉通知功能,但還是做了不少其他的部分,有些東西,像測試,以前用java不會花時間寫,但在重構的過程中卻是很重要的部分,所以也算是一種進步吧。
目前用到的模組
Grape
用以處理路由的部分,以前我寫spring MVC的人,路由不喜歡另外搞一個檔案出來維護,route檔案肥了你也看不懂,還不如照著Rest-like的規則把Controller寫好不是很方便嗎?
Postgresql
資料庫嘛…總是要挑一種來存資料的,我們用postgresql習慣了,所以就暫時接postgresql
Rspec、Guard、simplecov、pry
Rspec和Guard 非常重要,沒有它保證程式運作正常,心裡都會毛毛的
simplecov 以後程式慢慢變肥的話,測試覆蓋率是一個指標,想重構之前先看看自已寫測試了沒。
pry 就是設中斷點給你用啦!不然除錯會除到哭出來哦!
接下來要做的部分
WebSocket
其實這才是重點= =,如何能夠讓頁面元素透過Server-Client即時的交換資料來出現神奇的功能就靠它啦!
與MQ的串接
原本我們在公司是用ActiveMQ接tomcat來做訊息的傳遞,看到了Stomp這個Apache推出的support,應該不會是難事了吧。
後面還有不少東西要作,一步一步來吧