你的學習 Ruby On Rails 的歷程是怎樣的?


我來說說我的經歷吧。

一開始是拿著Agile Web Development with Rails,邊看邊動手把書上講的購物車的例子做了一遍,了解了Rails的基本概念(比如說MVC啊,Migration,Generator啊)和一些比較重要的類。

然後正好遇到某個內部的工具,需要做一個網站,正好把Rails拿來使用羅。一開始完全像標準的Rails結構靠攏,盡量少用到外部依賴的dependency(Gems),也算是把基本的功能做的像模像樣了。之後開始添加新的功能,用到各種各樣的Gems,主要都是通過在網上找資料。如果實在發現有問題搞不懂,可以看看用到的Gem的源代碼。一般查找這種Gem的途徑是:

1. StackOverflow

很多你遇到的問題,也是別人遇到過的,所以在StackOverflow上往往你能找到一堆類似的問題,並從別人的回答里學到東西。

2. RailsCasts

RailsCasts更新很頻繁,介紹的東西也很經典實用。在每個cast的回復裡面,不時的能找到一些意外的收穫。

3. ruby toolbox

這個網站分類收集了ruby裡面的各種Gem,以及其流行的情況。一般你找到一個類目,看看下面各種Gem的使用量,就能大概決定調研的方向是什麼了。

4. Github

大部分的Gem的源代碼都host在Github上。使用上遇到問題了,可以去翻一下這個Gem在Github上源代碼項目上的Issues,可能已經有人解決了,或者有人提交了pull request,總之比自己一上來就瞎折騰效率要高。

5. IRC

freenode上有Rails的頻道,裡面人不少也挺熱心的。有一次我遇到一個問題實在不知道是為啥了,跑到上面去問了一下,1分鐘左右就有人回復我,隨後解決了問題。

最近的項目工作中遇到不少問題,需要查看(甚至修改)依賴的Gem的源代碼的情況逐漸增多起來。在查看源代碼的過程中,發現一些Ruby比較深入或者少見的使用,這種時候就只有再去翻翻Ruby Programming Language惡補一下了。


計算機專業,我也來說說我的經歷吧。

大二,看到 Chad Fowler 的圖書《我編程,我快樂 - 程序員職業規劃之道》從而知道有 Ruby 這門語言。 (硬廣,Chad Fowler 確實是大神,寫了多本書,同時也是「鎬頭書」的作者之一哈,感興趣的可以搜索一下)

我並沒有先學習 Ruby,後面再學習 Rails,而是同時進行。那時候,圖片館裡僅有的幾本 Ruby/Rails 書我都看過,並且給圖書館推薦了幾本,後面都採購了。

像燕子書、鎬頭書,運用 Rails 敏捷開發之道等都有,還有其它幾本相對不是出名的。

我個人並不推薦先學習 Ruby,然後再學習 Rails...因為單學習一門語言,是特別枯燥無味的(又不能做點什麼),而同時學習的話,可以同時前進。既能利用已有知識創建新事物,又能學習新知識。

另外,我也不推薦只看一本書去學習知識。可以多找幾本 Ruby/Rails 這方面的書,閱讀一本,再換一本。因為側重點不同,所以總能學到新知識;甚至,對於同一知識點,也因為描述不同,而能得到多個介紹。

學習資源嘛,我覺得在當時就已經完全夠了。像上面提到的燕子書、鎬頭書、運用 Rails 敏捷開發之道,那時候就已經有了,並且都是經典。Rails Tutorial 也可以直接找到學習(Web版本一直都是免費的哈),RailsCasts 也可以免費看(後面才收費的)。再加上 Github 上有很多開源項目,可以找來學習。

期間,找了多個 Rails 項目源代碼來學習。包括漢化(翻譯,Twitter、Facebook改成微博、QQ登錄),改善某個看不上眼的功能,或將某些很酷的功能移植到另外的項目上,接觸並能使用常見的 gem ...

現在想想,收穫很大。

那時候最多的是看書、練習、看開源項目源代碼、自己瞎折騰。我們是科技類大學,而我又是學計算機的,所以學習資源還算豐富。並且 C, C++, Java 那時候都學過了,資料庫也正在學,網站開發自己就能做,所以折騰起來也不費勁。

期間買了 vps 搭建了自己的博客,堅持寫文章;看到 ruby-china 出現了,看到 railscasts 開始收費了...

慢慢入坑中。。。

慢慢地就覺得用 Ruby/Rails 很爽。我們也有學演算法、數據結構、面向對象,你想啊用 ruby 多快啊,語法靈活、概念少。同樣一個演算法,用 Ruby 又簡潔又快(指編寫速度哈~),不用寫一堆「廢代碼」才完成,看起來也方便;Ruby 里只有類、模塊也省去了很多要學習的東西;元編程、猴子補丁等隨處可見,想做點擴展就能輕鬆的做;完全面向對象...Rails 開發也快,幾條命令就能看到效果。

另外,還有就是腳本語言或者說 IDE 的缺少,讓我感覺更能 hold 住自己寫的代碼。寫 C, C++, Java 都嚴重依賴 IDE,並且需要編譯。有時候更改 Java 代碼,更改某個配置文件,對應源代碼哪裡改變了,並不直觀。並且,Java 笨重 import, public 等一大堆重複代碼;各種框架、一個框架還各個版本,每本書都有自己的寫法(沒有約定)...前輩們的水平也參差不齊,各種不好的實踐還敢教給我們。淚~~

Rails 約定優於配置,scaffold 已經生成了文件、目錄結構,所以看起來就很舒服。MVC, helper, config 也都區分開, 非常有利於學習。這也是我們能夠快速閱讀一個開源項目,並參與開發的原因之一。看其它框架,各種命令都不同,也是費勁。

Rails 的語法糖,對於學習也很有幫助。當時,正在學習資料庫,一對一、一對多、多對多、多態、單表繼承等,輕鬆理解。

-------------- 分隔一下 --------------

上面寫得比較亂,但當時情況基本就這樣。主要是學習,並且喜歡。

然後... ...開始實習、工作了。

先是在新浪,後面到用友,做的大部分工作和 Cloud Foundry 有關。用的仍然是 Ruby,但不是用 Rails 做網站,在此跳過。。。

後面去了廣州,在 Shopper+ 工作,和 hooopo(炮哥)是同事了哦~~

工作,工作,看著 Rails 從 3 升級到 4 ~~ 我們還在用 3 ...

閱讀 Rails 源代碼,並整理,寫一本這方面的書。

換工作,創業了~~

圖書發布出來了,求 Star。Rails 4-2-stable 參考手冊(Beta)

--------------------半年後的分隔線------------------------------

Rails 5 已經 beta 3 了,目前到創業公司差一個月就一年了,創業艱難。

各位技術大牛(工程師、設計師、產品經理)可以到我們網站 http://shixian.com 接私活、掙點零花錢。

上面寫的書,書名更改為《Rails 5 開發進階》…


1、看了一遍《Web開發敏捷之道》

2、開發網站並上線

3、學習Ruby語言

4、做更大的網站

5、重複第4步


簡單介紹下我的學習歷程吧,更多的是自省。

1、為什麼選Ruby on Rails:

2014年8月份開始學習rails。主要是一個人做項目,既有移動端API有有Web。所以為了快速出活,選擇ROR。

2、從哪開始

因為本人原來主要做大數據及高性能計算架構,用的語言是C和Java,偶爾Python。所以Ruby也就看看基本語法,重點翻了幾個博客熟悉下Ruby的特性。

開始在OSC上找與項目功能相類似的項目。然後開始對著rails官方手冊研究rails基本邏輯機及特性

3、基礎的東西是啥,不展開說了

路由(route.rb)配置

Controller使用

Activerecord使用

View使用,這項目中view用的少,基本就是包H5(FE隊友給力)

Helper使用

單元測試

4、稍微高級點的

Restfull基本規則定義

Controller和Model的設計劃分

基本三方庫(gem)使用,如:Redis

多資料庫配置

RD、測試及線上區分配置

日誌記錄及文件劃分

rails的高性能server,如:unicorn

nignx、varnish、CDN等使用

5、再往後

重構代碼

分散式使用

自己封裝gem

使用C++或者Java重構業務

寫Nginx模塊

個人總結:

1、語言基本是相通的,但要熟悉具體語言的設計哲學,即熟悉它的特性

2、盡量快速度過熟悉期,儘快通過優秀項目學習語言、框架本身

3、多思考,思考方向:如何更高效、如何響應更快、如何規避更多風險

4、前期多了解、使用、掌握三方庫及工具;中後期主要是自己根據業務需求自己抽象和編寫

5、多讀優秀代碼,會有很好的啟發


正在看andor_chen 翻譯的 ruby on rails


大一開始在一家公司實習,、

大二看了ruby相關的大多書籍

大三自己複寫了一遍http://ruby-china.org,開始研究gem

大四開始全職工作


ruby on rails tutorial + eloquent ruby + Google


打開文檔,看一遍,哦這樣啊。


工具腳本語言。

用的時候看看就好。


如何從零開始學習Ruby


直接上手了,然後卧槽好多magic,再查文檔/買書看...


推薦閱讀:

我們看電影的意義是什麼?
有哪些印象深刻、或者奇葩的中獎經歷?
你經歷過怎樣刻骨銘心的等待?
你小時候做過哪些被家長嘲笑數年的蠢事?
有哪些關於販毒的作品推薦?影視作品或者文學作品?

TAG:Ruby | RubyonRails | 經歷 |