[ Ruby on Rails ] Rspec and Rails Gem

最近忙著寫Gem,很少更新部落格,趁著事情告一個段落忙裡偷閒來寫篇文章。

會想寫這個主題有很多原因,原本我是一個手動測試者,頂多就是不照規範寫程式去test程式,後來因為大量使用Redis,這東西真的很好用,但實在經不起程式邏輯的錯誤發生,所以開始學起Rspec去用較正規的方式寫Test。

一開始,我把程式依照功能性切割成module,在Rails app裡面直接寫Rspec。但我一共寫了5個功能性的module在各個model中使用,如果要把每個model中所有使用到module的關係寫完,實在是太可怕了,所以最後決定把它包裝成Gem,用較單純的邏輯去做測試。

在把module包裝成Gem的過程中,我開始搜尋Rspec和Gem的結合,但因為Rspec本身就是一個Gem,關鍵字很難下,找到的資料非常少,所以就決定把它整理記錄一下,讓有需要的朋友參考。

繼續閱讀

發表於 redis, ruby on rails, 筆記, 網站開發 | 已標籤 , , , | 發表迴響

[ Ruby on Rails ] Ruby 與 Redis 整合之相關資源整理

一年多前Ruby和Redis整合資源沒這麼豐富的時候,我寫了一篇 [ Ruby on Rails ] Redis相關Gem介紹了一些當下僅有的Gem,但事隔一年多,Redis的資源越來越多,手邊也蒐集了一些觀察及使用名單,也許不全都屬於Ruby,但相信對Ruby的使用者來說應該不是什麼問題。之前介紹的基本上大同小異我就不再贅述,這篇文章會把近一年來實用或是出名的工具做一些整理以及基本的介紹,如果在這份名單裡面有你愛用的工具而我沒推薦到的也歡迎提供!

繼續閱讀

發表於 redis, ruby on rails, 筆記, 網站開發 | 已標籤 , , | 發表迴響

[ Ruby on Rails ] RedisLogger – a better redis logger for Rails application

RedisLogger是一個Rails application專用的Redis logger,主要是利用Rails的ActiveSupport::LogSubscriber和ActiveSupport::Notifications去實做。

繼續閱讀

發表於 redis, ruby on rails, 網站開發 | 已標籤 , | 1 則迴響

[ Ruby on Rails ] 簡單好用的驗證碼Gem – Redis Captcha

RedisCaptcha釋出了!

繼續閱讀

發表於 redis, ruby on rails, 筆記, 網站開發 | 3 則迴響

[ Ruby on Rails ] 重構經驗談 (二)

原本打算一篇解決,不過因為篇幅太長,加上昨天之前在準備NoSQL Taiwan #6的分享,索性就拆成兩篇,一篇寫我的看法,一篇寫案例分享。

前一篇文章分享了我對Rails project前後端好維護的看法,以及要怎麼做才可以達到好維護的狀況,有些人可能會覺得太抽象,沒辦法體會為何我會有這樣的想法,這篇我會用這次面臨的狀況做一些前後呼應,讓大家有深刻的體驗!

繼續閱讀

發表於 未分類 | 3 則迴響

NoSQL Taiwan #6 – Redis Data Structure

繼續閱讀

發表於 redis, Talk | 3 則迴響

[ Ruby on Rails ] 重構經驗談

會寫這篇文章的初衷是因為公司當初聘請我最重要的任務就是把網站從 Rails 2.3 升級到 Rails 3.2 並且把整個網站重構。公司網站的規模大概落在40~50個controller和model上下,說大不大說小不小。在整理的過程中,看到了各式各樣慘不忍睹甚至令人噁心的程式碼,加上完全沒有spec或document的狀況下,導致我必須不斷去揣摩、拆解當初原作者這段程式的想法,同時,還必須靠"想像"原本的Spec重新寫出好維護的程式碼。回憶起這段不堪回首的往事真的是非常辛苦,但在把後端整理到可以維護的狀況和把前端的工作切割拋出去給F2E以後,回頭想想收穫也不少。所以想藉由這次的經驗做點記錄與分享。

繼續閱讀

發表於 ruby on rails, 網站開發 | 16 則迴響

[ Ruby on Rails ] Dragonfly 檔案上傳運作原理

Droganfly是檔案上傳的Gem,會知道他是因為之前Von跟我推薦,但老實說,我一直對他沒有好感,雖然他的watch人數也達到了900多人,但Document寫的非常空虛,只是把Class, Method通通列出來,沒有太多範例,加上網路上相關討論非常之少,少到有點誇張,跟paperclipcarrierwave比較起來實在差太多了,加上檔案上傳該有的功能這兩套都有,所以從來沒考慮用過Droganfly。但無奈的是,工作需要用到Refinery,Refinery又把Droganfly綁在裡面,只好摸著頭皮把它build起來,又Droganfly的運作方式實在太奇怪了,跟前述兩套完全不一樣,搞的我摸不著頭緒,所幸就把source code研究了一下。

繼續閱讀

發表於 ruby on rails, 未分類, 筆記, 網站開發 | 已標籤 | 發表迴響

[ Ruby on Rails ] Existing Rails3.2 + Devise 2.1 project mount Refinery

Refinery是一套功能強大的CMS (content management system),它把各式各樣的功能拆成不一樣的Rails Engine方便擴充和選擇。這套CMS不但可以當做獨立的Rails application,也可以mount到已存在的Rails application。但mount在已存在的Rails application這個部分,作者在開發方向好像偏向"已存在但沒使用Devise"的狀況(v2.1.0以前,v.2.1.0會改善這個問題,但還在開發階段),只要已存在的application有使用Devise就會有非常多的麻煩,簡單來講就是掛不上去,網路上也找不太到解決方案。

繼續閱讀

發表於 ruby on rails, 未分類, 筆記 | 2 則迴響

近況

最近比較少發文,因為這陣子非常忙碌,好不容易忙到一個段落(嚴格來講只能說白天忙到一個段落),來寫篇文章更新一下近況。

2012.5,原本應該是dappei上線的日子,如果照原定5月上線,基本上資金沒什麼太大問題。無奈在設計上面不斷發生狀況,不論是我的問題或是設計師的問題都讓我傷透腦筋。剛好四月多有獵人頭來找我,雖然pay頗高的,一開始頗為動心,心想可以用賺來的錢養dappei,但最後覺得不是我喜歡的環境,而且和一開始談的條件(team leader)有些出入,又必須放棄dappei,所以最後選擇拒絕這份工作。

繼續閱讀

發表於 關於我 | 8 則迴響