2011-05-15 36 views
3

Reek可以在良好實踐中訓練ruby noob嗎?還是需要經驗豐富的紅寶石眼睛來使用和解釋?紅寶石:使用Reek作爲培訓工具

我有些笨拙的年代或編程經驗,但主要是C變體。過去幾年裏,我很少使用Ruby作爲實用腳本語言,但我的ruby代碼顯然大部分是音譯C的。現在我希望將它用作一種認真的工具,並且我想學習「ruby方式」。

我已經計劃從一開始就使用TDD/BDD來提供必要的培訓反饋,看起來好像Reek可能對提供關於非標準表單和用法的反饋很有用。然而,憑藉長期的經驗,我知道這樣的工具可以是需要先前經驗才能使用的雙刃劍,並且在新手手中會造成比他們解決的問題更多的問題。

有沒有人有使用reek(或類似的工具)這種方式的經驗?

如果它的事項,我將首先專注於寫作的MacOS X,即沒有護欄,服務器的東西單機應用等

+0

由於有人投票結束,讓我清楚我在問什麼。我在詢問reek的功能以及它產生的反饋類型。我不認爲這是一個主觀問題。要麼爲新手用戶提供有用的反饋,要麼需要更專業的解釋。 – TechZen 2011-05-16 02:58:09

回答

3

不,Reek不打算成爲Ruby風格的檢查器。如果你想要這樣的事情,我會建議Roodi--或者更好的是,與能夠向你展示好的Ruby風格的人配對。

我把Reek寫成了一個小小的研究項目,坦率地說它不如Flay,flog和rcov等簡單的工具有用。通過消除重複和複雜性,並通過TDD代碼來學習成爲更好的編碼器。

+0

謝謝,那是我想知道的。 – TechZen 2011-05-16 13:17:53

1

臭佬警告對可能的設計問題(和一些瑣碎的事情),但它不會幫助你編寫慣用的Ruby。坦率地說,我認爲閱讀features與實際運行reek一樣有價值。

我對來自類似C語言的人的建議:將for循環從您的系統中取出。假裝它不存在。這會迫使你成爲更多的rubyish成語。

+0

你似乎在說Reek可以幫助你發現或多或少對任何語言/環境具有通用性的設計問題,但它不會影響你使用任何特定語言的方式。 – TechZen 2011-05-16 01:28:01

0

我不得不努力強迫自己進入TDD思維模式,我發現由度量gem(metric_fu的包裝)提供的工具包非常有幫助。事實上,我建議通過所有的Railscasts測試 - 這不是一個巨大的時間,我發現它很有價值。

最近Railscast如何他不測試是一個偉大的方式來設置的東西,那麼我回去,並通過其他教程繼續請求規格,水豚,阿房宮等

1

看一看RuboCop

它檢測許多小事情,甚至可以自動糾正其中的一些。如果您使用Git,則可以在運行RuboCop之前隱藏更改,以便使用git diff查看更正。