[转]2010 Ruby on Rails 書單 與 練習作業
原帖:http://wp.xdite.net/?p=1754
=========
學習 Ruby on Rails 最快的途徑無非是直接使用 Rails 撰寫產品。而這個過程中若有 mentor 指導以及 code review,學習進度也會加速不少。
但現實生活中並非如此理想,
第一,並不是每個人都有每天必須要以 Rails 撰寫產品的壓力(not a Rails Developer)。
第二,沒有循序漸進的入門途徑以及沒有 mentor。(Framework 進展太快,導致現有書籍版本跟不上進度,另外具有經驗的 mentor 太少,有的話也沒興趣回答過於初階的問題)
最近幾個月都在訓練 Rails Developer,零碎的東西講了不少遍。懶得一次次重講基礎的東西和開訓練菜單,乾脆整理成文字,以後新人就直接看這篇…
新人需要具備的「一般」基礎技能:
- 對 Git 的觀念與技巧掌握。
- 對 VIM / Textmate 的基本開發技巧掌握。
- 熟悉 Linux Command Line 的操作。
* Git
書單
練習
上 Github 開啟一個專案,練習 git commit , git push , git pull, git branch , git checkout , git merge
* Editor
書單
c9s 的 VIM Hacks 與 Oreilly 的 精通 vi 與 vim 與 Pragmatic 的 TextMate: Power Editing for the Mac
練習
vgod 的 給程式設計師的Vim入門圖解說明 全部練習一遍
* Linux CLI
書單與練習:
Peepcode 的 Meet the Command Line 、Advanced Command Line 全部練過一遍
=====
新人需要具備的 Rails 基礎技能:
- 可手刻 CRUD ( Create / Read / Update / Delete ) 並且理解 CRUD 中的 params 傳遞方法
- route 中 resources 觀念配合 model 裡 has_many 的設計,理解並熟悉 RESTful 觀念。
- route 的優先順序與 routes 中 resource / namespace 的實作。
- named_scope 、 counter_cache、before_filter
- plugin 的使用:restful-authentication、will_paginate、paperclip
- rake 原理以及撰寫 task
- ruby on rails 的 production setup 與撰寫 capistrano recipes
書單:(案頭必備)
Ruby Programming — 向 Ruby 之父學程式設計
Ruby for Rails – Rails 開發者必備的 Ruby 學習手冊 (英文新版: The Well-Grounded Rubyist )
碼上就會:Rails敏捷開發網站 (英文新版: Agile Web Development with Rails, Third Edition )
The Rails Way
Ruby Pocket Reference
Rails Recipes
Advanced Rails Recipes: 84 New Ways to Build Stunning Rails Apps
線上工具:(必加書籤)
Ruby API : String、Array、Hash
APIDock : Ruby on Rails
練習作業:
(1)開發一個簡易論壇系統。系統要有 Forum 與 Post 兩個 model,寫出 CRUD 介面,並且文章網址是使用 http://example.org/forum/1/post/2 這種表示。
吸收觀念:
* CRUD & migration
* has_many 與 belongs_to
* resources 與雙層 resources
* before_filter : find_event
參考資料:
* 深入淺出 RoR (4-3) – RESTful 與 CRUD action
* ihower training : Ruby on Rails 入門
( 2)使用者必須能夠 註冊 / 登入,登入後才可以發表 Post,不然只能瀏覽。只有自己的 Post 才能進行修改與刪除。
吸收觀念:
* routes 優先權與 route alias
* plugin 安裝與使用
* before_filter : login_required
* session : current_user
* attr_accessible / attr_protected
參考資料:
( 3)論壇的文章要能夠分頁,每一頁 20 筆,每一個論壇要秀出現在論壇裡有多少 post 數量。可用 params 配合 named_scope 在文章列表排序。
吸收觀念:
* pagination
* counter_cache
* named_scope :recent
參考資料:
* will_paginate
* Railscast : Counter Cache Column
* Railscast : named_scope
( 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 生)
參考資料:
* Ruby on Rails Rake Tutorial (aka. How rake turned me into an alcoholic)
* What’s New in Edge Rails: Database Seeding
( 7)在租來的 VPS 上面建置 Ruby on Rails production 環境,使用 Ruby Enterprise 與 mod_rails。使用 capistrano 佈署 application。
吸收觀念:
* cap deploy:setup , cap deploy , cap deploy:rollback , cap deploy:restart
參考資料:
* rails-nginx-passenger-ubuntu
* AWDR3 的 deploy 章節 , Ruby Pocket Reference 的 capistrano 章節
===
PS. 實際測試的結果是,完全不懂 Ruby on Rails 的新人,從頭帶過大概兩週可以練完這一份作業。
[转]2010 Ruby on Rails 書單 與 練習作業的更多相关文章
- Ruby On Rails环境搭建
注:现在http://rubyforge.org 网站已经停止运行,取而代之的是https://rubygems.org这个网站,下文中所需要的gem包都可以去这个网站搜索下载.其他完全按照下文说的去 ...
- Ruby on Rails 實戰聖經阅读(三)
由于是1.8.x:圣经的1.9.3差太多,所以另外按1.8.X来创建hello world 第一個Hello World!! 1. 创建项目rails -d mysql first 2.创建控制器 ...
- 《Ruby on Rails教程》学习笔记
本文是我在阅读 Ruby on Rails 教程的简体中文版时所做的摘录,以及学习时寻找的补充知识.补充知识主要来自于 Ruby on Rails 實戰聖經. Asset Pipeline 在最新版 ...
- Linux超快速安装Ruby on Rails
Linux超快速安装Ruby on Rails 时间 2014-11-25 11:45:11 Flincllck Talk 原文 http://www.flincllck.com/quick-ins ...
- 管理不同版本ruby和rails的利器——rvm
近年来,ruby on rails逐渐火了起来,我想各位码农早就耳闻,特别是那些做B/S项目的童鞋,早就想跃跃一试了. 笔者也是初次接触ruby on rails ,我想,对于初学者来说,最好的学习方 ...
- ruby on rails on windows
这次想系统学会rails,最终目标是将redmine改造成顺手的工具,主要的手段就是开发redmine插件.虽然网上都推荐使用类Unix系统,可手头只有win7系统,就安装了. 难免会遇到这样那样的问 ...
- win8平台下Ruby on Rails的第一个web应用
最近在做一个网站web前端的前期开发,老板要求用Ruby on Rails搭建部署开发环境,上网搜之,发现整个搭建流程比较坑爹,于是用了一款集成软件Bitnami Ruby Stack一键安装到我的w ...
- 为什么学习Ruby On Rails:
简单总结了一下自己为什么喜欢ruby on rails: 语法简单,写代码很愉快,比较接近伪代码: 喜欢其强大的正则表达式和字符串操作. ruby中面向对象更自由,更动态: ruby给人信任,相信你了 ...
- 通过Ruby On Rails 框架来更好的理解MVC框架
通过Ruby On Rails 框架来更好的理解MVC框架 1.背景 因为我在学习软件工程课程的时候,对于 MVC 框架理解不太深入,只是在理论层面上掌握,但是不知道如何在开发中使用 MVC ...
随机推荐
- 李雅普诺夫函数 LyapunovFunction 李雅普诺夫意义下的稳定性
https://zh.wikipedia.org/zh-hans/李亞普諾夫函數 李雅普诺夫函数(Lyapunov function)是用来证明一动力系统或自治微分方程稳定性的函数.其名称来自俄罗斯数 ...
- GET和POST解析
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP ...
- boogo08---中间件
package main //中间件1:只允许特定host请求过来 import ( "fmt" "net/http" ) //SingleHost是一个中间件 ...
- css3某些特性
在下列情况下,建议使用opacity属性而不是rgba()函数 1.实现多种颜色(元素)的半透明效果.使用opacity属性,不仅背景颜色,就连文本颜色.边框颜色都会变透明. 2.在不知道颜色的情况下 ...
- bzoj4664: Count
是bzoj4498: 魔法的碰撞的哥哥题,我只写了一种 不一样的地方在于贡献有负数,第三维要保存的不能仅仅是0~L,这样空间会炸裂 考虑如何把贡献变成正的 假如要求最优解,那么一定是按顺序排,混乱度为 ...
- 一步一步学Silverlight 2系列(22):在Silverlight中如何用JavaScript调用.NET代码
概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...
- skynet源码阅读<4>--定时器实现
昨天和三石公聊天,他提到timer的实现原理,我当时迟疑了一下,心想timer不是系统底层时钟中断驱动上层进程/线程,累积计时实现的么?他简述了timer的实现,什么堆排序,优先级队列等,与我想象的不 ...
- JS DOM1核心概要document
Document类型: document对象表示整个html页面,而且,document对象是window对象的一个属性: 文档信息:document.title,表示当前页面的标题: documen ...
- Snowflake算法 ID生成
Snowflake算法 ID生成 http://blog.csdn.net/w200221626/article/details/52064976 使用UUID或者GUID产生的ID没有规则 Snow ...
- http监听工具Fildder
空间管理您的位置: 51Testing软件测试网 » 雨洒泪 » 日志 中国龙,中国风,中国会变得更加强大! 力量越大,责任越大! 人的一生,会面临很多选择,但决定一个人一生的,往往就是最关键那么的一 ...