馬克的程式架構筆記

為了創造有價值的產品,想法、實作架構、行銷有同等的重要性

Easygo

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,應該不會是難事了吧。

後面還有不少東西要作,一步一步來吧

Comments