ADZ 學習筆記

Ruby/Rails, Startup, Life

Rails 筆記 - 四個月來的學習方法

| Comments

自從上次辦了高雄 rails meetup 遇到一些志同道合的夥伴,還有學 Rails 超積極的 sdlong 激起我開始寫 blog 的動力。

這次想分享學習 RoR 四個月來,身為一個 beginner 的學習方法。

手刻 RESTful style

這四個月來,總共做了 3 個 project,其中第一個是 晚鳥票網站,一開始為了更了解 rails,即使知道有 scaffold 也堅持手刻出 RESTful style 的架構,雖然過程中把 code 搞得很髒也遇到超多問題,但這一切都很值得,至少開始使用 scaffold 後非常清楚知道 scaffold 的優缺點跟如何 custom made。

設定學習 scope,深入了解

剛開始,瀏覽了很多網路上的資料,知道有很多 gem 可以用,不過建議剛學的人還是幫自己設定較小的學習 scope 一步一步來。

像是 bootstrappers 幫你 generate 出整個常用的 project 架構、gemfile、跟 gem 的 configuration,但讓我很恐慌的是,雖然知道這些 gem 大概在做什麼,但我竟然不知道怎麼做到的,於是我就自己開一個 Project 從每個 bootstrappers 的 Gem 開始重新學習設定、使用。

像是為什麼安裝 devise 後就會在 user model 多一個 devise function,不是繼承 ActiveRecord::Base 嗎?

有別於 Java, PHP,原來是 Ruby 能透過 mixin 的方式把 module (function set) mix 進一個 class 內,這是有點類似 javascript prototype,這也是 ruby on rails 超有生產力的地方。

但如果一開始把學習範圍弄太大,就很難很扎實的學習和掌握這些工具的,最後可能會被工具拖累。

activerecord 超強大

從 zendframework 到 rails,最大的感觸就是 rails 的一些設計真的很先進,尤其是 ORM (activerecord) & migration 搭配 git 解決專案演化時可以順便記錄 db schema 的問題,針對我們這種 接案公司 接的 web 專案大概 80% 都是一些複雜的 CRUD & Transaction & Validation,所以深入了解 activerecord (dirty objects, model concern, callbacks, validation , scope, serialize... etc) 的使用和一些達到 DRY 的 design pattern 幫我們省超多時間和提升 code quality。

最後打個廣告

高雄喜愛或想學 ruby on rails 可以加入我們社群 http://www.facebook.com/groups/569223303140308/
我們期望每週二可以舉辦定期聚會,但需要您的加入及支持。

Comments

comments powered by Disqus