你的學習 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,如:unicornnignx、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 | 經歷 |