Ruby on Rails自習手冊: 邁向鐵道工人之路

Ruby on Rails自習手冊: 邁向鐵道工人之路

期:
2015/02/25
9
300270
查詢門市庫存

內容簡介

鐵道工招募條件:

◎熟悉指令介面操作

◎具程式設計知識:Ruby、Rake

◎具網頁前端知識:HTML、CSS、JavaScript

◎具資料庫知識:RMDBS、SQL



若符合以上應徵條件,恭喜您歡迎進入簡單、易用又好學的Rails世界。


工作指南:

開發環境

你可以選擇 RadRails 或 RubyMine,如果你個人偏好使用 IDE,也有其他輕量級編輯器選擇:TextMate、Sublime Text、[Vim]

終端機

Unix-like 作業系統可以跳過此部分,如果你用的是 OS X 推薦使用 iTerm2 ,Windows 上建議安裝 Rails Installer預設環境,或者使用虛擬機如 VMWare 或 Virtual Box模擬 Unix-like。

瀏覽器

Chrome、Firefox、Safari、IE都有提供內建的開發者工具值得學習使用,例如模擬手機瀏覽、JavaScript 中斷點、程式碼優化與分析、所見即所得 CSS 修改等。


新手鐵道工Q&A:

Ruby 就是 Rails嗎?

Ruby 與 Rails 是兩樣東西,且它們除了定位截然不同、作者也不同(國籍差很多),Ruby 是程式語言,Rails 則是由 Ruby 撰寫的網站開發框架。

rbenv 與 RVM 哪個好?

他們兩者都是為了解決特定的問題,用了不同的方法而生的不同的工具。如果你想要簡潔的解決方案,使用 rbenv,如果你想要更多功能,用 RVM 也不錯。

Production 環境適合安裝 rbenv 或 RVM 一類的 Ruby 版本控制工具嗎?

不建議這麼做,版本控制主要是為了讓我們在 staging 環境或本地開發時,可以方便切換版本以利進行各種測試,除非你真的清楚自己在做什麼。


鐵道工的工作哲學:

◎不要重複你自己(Don't Repeat Yourself)

旨在軟體開發中,減少重複的信息與程式碼。這可以幫助你的專案更易於維護與擴展,人說樹大必有枯枝,程式多就易孳生臭蟲,可以少就不要多。

◎慣例優先於設定(Convention Over Configuration)

用一些簡單的常規與慣例(convention)來取代繁瑣的設定(configuration),白話解釋是「養好習慣,省下麻煩」,簡化開發的流程與減輕開發者的痛苦。

一位資深鐵道工的經驗談:

這四年來,筆者從 Movimpact 微電影平台(已停止運作)、腦袋有動工作室(brainana.com)一路到五倍紅寶石股份有限公司(5xruby.tw)的創辦,有趣的是這些單位的名字湊巧都是筆者命名的,偶爾筆者也懷疑到底是隊友寬宏大量,抑或筆者說不定是個命名的天才?

五倍紅寶石是由幾位台灣 Ruby 社群的朋友共同成立的一家公司,希望透過教育訓練、企業培訓等講座,將 Ruby 推廣到校園、企業、開發者。提供的服務包括:程式教育訓練、企業技術培訓與諮詢、活動場地租借與專案委托製作。

筆者自五倍紅寶石開業以來主力於 Ruby on Rails 的教材編寫、課程設計,並且在校園、公司企業中開設培訓課程。同樣的主題(Ruby on Rails),也因不同的教授對象而特別設計教材,範圍從高中剛畢業的大一新鮮人,到企業中的工程師。本書也是在這樣的環境下撰寫而成。 
從 Java 到 Ruby

至於筆者最後為什麼選擇了 Ruby ?其實那時寫了 Java 快 4 年的時間,曾經陷入其可跨平台、有豐富函示庫與應用的迷湯之中,認為自己可以用 Java超越任何事物,然後看到一本書就叫「超越 Java:探討程式語言的未來」。如果你對這本書有印象,他的書名掛名 Java,實則偷塞 Ruby,筆者就這樣上當了。



序的開頭長這樣:

Java 已經存在超過十年了,這段時間,它的成就非凡,它徹底改變我們寫軟體的作法和想法。但是 Java 已顯老態,該是時候了,我們得想想未來接班人是誰。- Bruce Tate



而筆者就這樣的,從被這樣的序給吸引住,到最後合上書頁後的第一個念頭:「不妨給 Ruby 一個嘗試吧?」(這本書很不錯的,作者 Bruce 寫過「輕快的好 Java」)



Ruby 好快,也好快樂

還記得那時筆者從 C 跳到了 Java,從此有了更多喝茶的時間,這幾年開始寫 Ruby,筆者已經有時間種茶葉了。邪神有云:「天下武功,無堅不破,唯快不破」。但論效能之快大概也沒語言快過 C 與組語了,可是 Ruby 之快不在此面,而在其彈性與簡潔,適合用於 meta programming 和 DSL。動態編程有效的縮短了開發的時間。如果要給Ruby 一個評價,筆者認為 Ruby 就是個什麼都能做的魔法程式語言。希望這本書也能帶給你相同的感受。



本書的撰寫對象為略懂網站前端開發與關聯式資料庫的人,主要專注在Rails 的框架介紹與使用,採 Ruby 2.2 與 Rails 4.2 版。這不是一本教授 Ruby的書,如果你對 Ruby 不熟,不建議直接從本書看起。你如果常聽人說 Rails 簡單、易用又好學,但那其實是建立在使用者已具備許多背景知識的前提下才成立的,這意謂 Rails 不是新手的玩具。想直接跳過 Ruby 直接學 Rails 其實是很可惜的一件事。並不是說非要這些背景知識不可,而是當在沒有背景知識的加持之下,硬去挑戰像 Rails 這樣複雜的架構,學途可能會非常吃力。



若你發現本書讀來吃力,則先從較基礎的書開始著手,加強知識薄弱的部分。
展開看更多

產品目錄

CHAPTER 01 前言

1-1 對網頁的了解

1-2 對 SQL 的了解

1-3 對 Ruby 的了解


CHAPTER 02 行前準備

2-1 IDE

2-2 編輯器

2-3 終端機

2-4 瀏覽器

2-5 安裝 Ruby、Rails

2-5-1 Mac 或 UNIX-like

2-5-2 Windows 

CHAPTER 03 啟程

3-1 上網大學問

3-1-1 瀏覽器 = 排版引擎 + 下載器

3-1-2 HTTP 的請求與回應

3-2 第一個 Rails 專案

3-2-1 rails new APP_PATH [options]

3-2-2 rails server

3-2-3 localhost 與 127.0.0.1

3-2-4 閘道(Port)

3-3 MVC(Model、View、Controller)

3-4 檔案結構

3-5 網址路由(URL Routing)與控制器(Controller)

3-5-1 rake routes

3-5-2 render

3-5-3 慣例優於設定

3-5-4 rails generate controller NAME [action ]

3-6 靜態檔案

3-7 指令彙整


CHAPTER 04 前端之旅

4-1 ERB

4-1-1 流程控制與 block

4-1-2 變數傳遞

4-1-3 HTTP 變數傳遞

4-1-4 版型(Layout)

4-2 局部樣板(Partial)

4-2-1 局部樣板的變數傳遞

4-3 View Helper

4-3-1 URL Helper

4-3-2 Tag Helper

4-3-3 自訂 Helper

4-3-4 helper 與局部樣板

4-3-5 Form Helper

4-4 Assets Pipeline

4-4-1 sprockets

4-4-2 turbolinks

4-4-3 傳統寫法

4-4-4 使用 Assets Pipeline

4-4-5 require、require_tree 與 require_self

4-4-6 assets 規劃

4-4-7 預編 assets 資源

4-4-8 stylesheet_link_tag 用法整理

4-4-9 javascript_include_tag 用法整理

4-5 指令彙


CHAPTER 05 資料庫之旅

5-1 物件關聯對映(ORM)

5-2 Active Record

5-2-1 命名慣例

5-2-2 rails dbconsole

5-2-3 rails console

5-2-4 CRUD 25操作

5-2-5 設定資料庫

5-3 資料庫遷移

5-3-1 新增遷移檔

5-3-2 版本回滾

5-3-3 遷移指令

5-3-4 change、up 與 down

5-3-5 Model 產生器

5-4 資料驗證 - Validation

5-4-1 使用 validates

5-4-2 取得錯誤訊息

5-4-3 內建的驗證方法

5-4-4 自訂驗證方法

5-4-5 中文錯誤訊息

5-5 回呼 - Callback

5-6 資料關聯 - Association

5-6-1 一對多

5-6-2 多對多

5-6-3 突破慣例

5-7 指令彙整


CHAPTER 06 後端之旅

6-1 網站的規劃

6-2 REST 風格

6-2-1 過猶不及

6-3 Rails 與 REST

6-4 部落格功能

6-4-1 檢視(Read)

6-4-2 新增

6-4-3 更新

6-4-4 刪除

6-5 鷹架(scaffold

6-5-1 快閃訊息 Flash Message

6-5-2 jbuilder

6-6 在表單建立關聯

6-7 使用者驗證

6-8 權限控制

6-9 指令彙整


CHAPTER 07 部屬之旅

7-1 IaaS 與 PaaS

7-2 Passenger(或稱 mod_rails)

7-3 負載平衡

7-4 Capistrano(自動化部屬)

7-5 實際操作

7-5-1 rails server

7-5-2 Heroku

7-5-3 Passenger

7-6 Rails 4.2

7-6-1 Active Job

7-6-2 Asynchronous Mails

7-6-3 Adequate Record

7-6-4 Web Console

7-6-5 外鍵(Foreign Keys)


CHAPTER 08 附錄

8-1 指令

8-1-1 rails 指令名稱 [參數]

8-1-2 Rake 指令

8-2 路由

8-2-1 resources

8-2-2 resource

8-2-3 巢狀資源

8-2-4 名稱空間

8-2-5 限制資源路由

8-2-6 限制參數

8-2-7 集合與成員

作者介紹

■作者簡介

簡煒航
大兜,本名簡煒航,網路代號 tonytonyjan,身份複雜的七年八班工程師,

喜歡 Ruby 與 C,愛好寫程式,以此為樂,並以此維生。



- 五倍紅寶石股份有限公司創辦人

- 腦袋有動工作室負責人

- TJDict Chrome 擴充套件作者

- Rails Girls Taipei 教練

- 2013 Yahoo 黑客松冠軍

規格

誠品貨碼 / 2680967596006
ISBN13 / 9789862019948
ISBN10 / 9862019948
EAN貨碼 / 9789862019948
頁數 / 224
注音版 / 否
裝訂 / P:平裝
語言 / 1:中文/繁體
尺寸 / 23X17CM
級別 / N:無

退貨說明

退貨須知:

  1. 依照消費者保護法的規定,您享有商品貨到次日起七天猶豫期(含例假日)的權益(請注意!猶豫期非試用期),辦理退貨之商品必須是全新狀態(不得有刮傷、破損、受潮)且需完整(包含全部商品、配件、原廠內外包裝、贈品及所有附隨文件或資料的完整性等)。
  2. 請您以送貨廠商使用之包裝紙箱將退貨商品包裝妥當,若原紙箱已遺失,請另使用其他紙箱包覆於商品原廠包裝之外,切勿直接於原廠包裝上黏貼紙張或書寫文字。若原廠包裝損毀將可能被認定為已逾越檢查商品之必要程度,本公司得依毀損程度扣除回復原狀必要費用(整新費)後退費;請您先確認商品正確、外觀可接受,再行拆封,以免影響您的權利;若為產品瑕疵,本公司接受退貨。

依「通訊交易解除權合理例外情事適用準則」,下列商品不適用七日猶豫期,除產品本身有瑕疵外,不接受退貨:

  1. 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮蔬果、乳製品、冷凍冷藏食材、蛋糕)
  2. 依消費者要求所為之客製化給付。(如:客製印章、鋼筆刻字)
  3. 報紙、期刊或雜誌。
  4. 經消費者拆封之影音商品或電腦軟體。
  5. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書)
  6. 已拆封之個人衛生用品。(如:內衣褲、襪類、褲襪、刮鬍刀、除毛刀等貼身用品)
  7. 國際航空客運服務。

若您退貨時有下列情形,可能被認定已逾越檢查商品之必要程度而須負擔為回復原狀必要費用(整新費),或影響您的退貨權利,請您在拆封前決定是否要退貨:

  1. 以數位或電磁紀錄形式儲存或著作權相關之商品(包含但不限於CD、VCD、DVD、電腦軟體等) 包裝已拆封者(除運送用之包裝以外)。
  2. 耗材(包含但不限於墨水匣、碳粉匣、紙張、筆類墨水、清潔劑補充包等)之商品包裝已拆封者(除運送用之包裝以外)。
  3. 衣飾鞋類/寢具/織品(包含但不限於衣褲、鞋子、襪子、泳裝、床單、被套、填充玩具)或之商品缺件(含購買商品、附件、內外包裝、贈品等)或經剪標或下水或商品有不可回復之髒污或磨損痕跡。
  4. 食品、美容/保養用品、內衣褲等消耗性或個人衛生用品、商品銷售頁面上特別載明之商品已拆封者(除運送用之包裝外一切包裝、包括但不限於瓶蓋、封口、封膜等接觸商品內容之包裝部分)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
  5. 家電、3C、畫作、電子閱讀器等商品,除商品本身有瑕疵外,退回之商品已拆封(除運送用之包裝外一切包裝、包括但不限於封膜等接觸商品內容之包裝部分、移除封條、拆除吊牌、拆除貼膠或標籤等情形)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
  6. 退貨程序請參閱【客服專區→常見問題→誠品線上退貨退款】之說明。
付款/配送