almost 2 years ago

這個問題也是 Frequently Asked Question。大概會發生在學 Rails 半年或一年後的 Developer 身上。我會推薦兩個解法:

1. 找一個願意「罵你」的導師給你方向

注意,我這裡講的是「罵你」不是教你。出社會大家都是成人了,沒有人有義務「教你」,公司是上班賺錢的地方不是學校。有前輩願意「提醒」你的成果需要修正其實已經要心存感謝了(如果你工作年資只有一年,可能無法體會。工作到第二三年就知道這是什麼意思了)。

不要抱怨前輩都「不教」,人家願意「罵你」已經是願意花時間提醒你做不好的部分修正。如果人家默默的都不講話放你去跳坑,你可能已經被同事打報告建議上司開除了。

找到一個願意「罵你」的前輩,可以讓你學習的速度加快不少。畢竟學習最困難的天險是「你不知道自己不知道哪裡不行」。

2. 自行修煉

我實在不推薦這樣的做法,因為自行修煉需要很強大的動力與學習動機,否則進度非常的緩慢。被人鞭策、有專案壓力,永遠是最強的助力。

有幾個方向推薦你去嘗試:

1. Refactor

CodeclimateHound 這一類的程式,這些程式會告訴你,你開發的程式結構有多糟。

通常問題會有 fat class, duplicate code, vague variable, 違反 SRP, etc ....

把這些部分修掉,你的 Ruby 或 Rails 功力將會提升一大截。因為要做到這些事,你先得學一些「正確的 Ruby 與 OOP 封裝觀念」。再來就是會開始接觸到 Pattern 的寫作方式

推薦閱讀資料:

2. 學寫簡單的 Test

因為要 Refactor,所以程式一定會被改到爆炸。我不建議新手一開始就花時間學「用正確的方式 Test」或者學 「TDD」(資料太多根本看不完)。而應該學,如何先改東西前,先補 Test,build test case。

然後邊改邊跑 Test。確保你改的東西不會改爛舊的功能。當你發現 Test 很難補上去,那一定表示當初程式封裝的很爛,無法補 Test。

這時候就能學到怎樣做好的「封裝」,接下來才是學寫「正確的 Test」。

推薦閱讀資料:

3. Tune 效能

很多人的 Rails 網站大了一點會有效能問題。相信我,Rails 已經夠成熟了。大部份人的網站慢的原因 95% 以上是 Rails Developer 因為 Rails 寫太爽,結果 DB, Frontend 知識缺乏。

(後端部分)

因為 Rails 的 ORM 太強力,很多人把 Rails 當 Ruby 在寫,所以忽略了有記憶體膨脹以及 DB query 數量的問題。
這時候裝 NewReclic 或 mini_profiler 可以抓出效能問題。然後再回去讀一些 MySQL 的 JOIN 與 Index 與 db 正規化基本觀念。就可以學到很多 Tune 效能的心得。

(前端部分)

Yslow 掃一下,根據 Yslow 的建議改。

( Cache 部分)

Rails 有很強大的 Cache 教學,針對特慢但 tune 無可 tune 的部分上 Cache。這時候開發者就會開始關心架構上怎樣設計的很好上 Cache。用比較好的方式節省資源

4. 整理 View

View....大家都把 View 當垃圾桶。

我推薦一個技巧:限制一個 View 只能兩頁 SublimeText 2 的編輯器長度,以這個原則去用 Helper / Partial 整理,在當中會學到超多技巧。

5. 打包 Gem

在過往開發過的程式,一定會有重要的自己寫的流程或者是 Library,試著抽出來打包成 Rails Gem opensource 出來。打包的過程可以學習到 Rails 「這個 Framework」的架構與啟動流程。

最後 : 寫部落格或到聚會上發表演講

上述講的都只是個人練習部分。真的要把這些變成自己的能力,把這些心得寫下來教給其他人,或者到聚會上發表短講。

一個人越藏私,進步的越慢。(我沒有在開玩笑)

唯有將一門技術說得通,教得會別人,這東西才真的變成你的知識與資產。


歡迎大家留言繼續問我 Rails 相關的問題。

另外初級 Rails 工作的問題,請直接造訪 Land Dream Rails Job

← [Rails 答客問] 要怎樣寫出來以前沒寫過的功能? 新課公告:Rails 商務網站 x 即戰力 - 2015 暑期班 7/13(一)開課 →
 
comments powered by Disqus