Ruby on Rails 書單 與 練習作業

posted 14 Mar 2010

新人需要具備的「一般」基礎技能

  1. Git 的觀念與技巧掌握。

  2. 對 VIM / Textmate 的基本開發技巧掌握。

    書單

    c9s 的 VIM Hacks 與 Oreilly 的 精通 vi 與 vim 與 Pragmatic 的 TextMate: Power Editing for the Mac

    練習

    vgod 的 給程式設計師的Vim入門圖解說明 全部練習一遍

  3. 熟悉 Linux Command Line 的操作。

    書單與練習

    Peepcode 的 Meet the Command LineAdvanced Command Line 全部練過一遍

  4. Git

    書單

    Peepcode 的 GitPro Git

    練習

    Github 開啟一個專案,練習 git commit , git push , git pull, git branch , git checkout , git merge

新人需要具備的 Rails 基礎技能

  1. 可手刻 CRUD ( Create / Read / Update / Delete ) 並且理解 CRUD 中的 params 傳遞方法
  2. route 中 resources 觀念配合 model 裡 has_many 的設計,理解並熟悉 RESTful 觀念。
  3. route 的優先順序與 routes 中 resource / namespace 的實作。
  4. scope 、 counter_cache、before_filter
  5. plugin 的使用: devisewill_paginatepaperclip
  6. rake 原理以及撰寫 task
  7. ruby on rails 的 production setup 與撰寫 capistrano recipes

書單:(案頭必備)

書單:(入門用)

線上工具:(必加書籤)

練習作業

1. 開發一個簡易論壇系統。

2. 使用者必須能夠 註冊 / 登入,登入後才可以發表 Post,不然只能瀏覽。只有自己的 Post 才能進行修改與刪除。

3. 論壇的文章要能夠分頁,每一頁 20 筆,每一個論壇要秀出現在論壇裡有多少 post 數量。可用 params 配合 named_scope 在文章列表排序。

  • pagination
  • counter_cache
  • scope :recent

參考資料

4. 每篇文章可以上傳附件

  • form_for multipart

參考資料

5. Admin 可以刪改所有文章,建立一個後台做這件事。網址是 http://example.org/admin/。只有身分是 admin 的人可以進後台。admin 的判別方是 column 裡加一個 boolean,判斷是否 admin。這個 attribute 必須用 attr_accessible / attr_protected 保護。

  • route : namespace
  • before_filter : require_is_admin

參考資料

6. 用 Rake 撰寫自動化步驟,生假資料。寫一個 rake 可以達成以下步驟:「砍 db => 建 db => 跑 migration => 生種子資料」,另一個 rake 是生假文章與假論壇。

  • rake -T
  • rake db:drop ; rake db:create ; rake db:migrate ; rake db:seed
  • rake dev:fake ( 自己寫 namespace : dev, 裡面放一個 task 叫做 fake,fake 資料用 Populator 生)

參考資料

7. 在租來的 VPS 上面建置 Ruby on Rails production 環境,使用 Ruby Enterprise 與 mod_rails。使用 capistrano 佈署 application。

  • cap deploy:setup
  • cap deploy
  • cap deploy:rollback
  • cap deploy:restart

參考資料


PS. 實際測試的結果是,完全不懂 Ruby on Rails 的新人,從頭帶過大概兩週可以練完這一份作業。

blog comments powered by Disqus