回首頁  
帳號
 
關於博碩 博碩好讀 校園圖書 MOCC認證 紅綠配特價 博碩數位

博碩好讀
  新書推薦
  出版預告
 

分類索引

 

出版總覽

 

讀者服務

  徵求作者
 
首頁 >> 書籍介紹
 
 
點我可放大圖片
 
書名:Ruby on Rails 自習手冊:邁向鐵道工人之路
書號:MP21504 作者:簡煒航 ISBN: 978-986-201-994-8
定價:NT$300元 印刷:單色 頁數:224頁
書籍規格:17*23 上市日:2015/2/15 譯者:(無)
學習定位:中階 本書附件:無   快速前往 勘誤
加入購物車 >> 天瓏    
       
快速前往 快速前往        

 

 

    鐵道工招募條件:

    •熟悉指令介面操作
    •具程式設計知識: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 這樣複雜的架構,學途可能會非常吃力。而在你閱讀本書以前,建議先確認自己已經具備以下知識:

    Q1: http://localhost:3000 這段網址所代表的涵義為何?

    Q2: 用SQL從以下兩張資料表(posts與users)找出Tony的所有文章。

    -------------------
    |     posts 資料表      |
    -------------------
    | id  | title  | user_id |
    -------------------
    |  1  | Lorem 1 |  2   |
    |  2  | Lorem 2 |  3   |
    |  3  | Lorem 3 |  3   |
    |  4  | Lorem 4 |  1   |
    -------------------

    ------------
    |  users 資料表  |
    ------------
    | id | name   |
    ------------
    | 1  | John   |
    | 2  | Mary   |
    | 3  | Tony   |
    | 4  | Jason   |
    ------------

    Q3:以下 Ruby 程式碼,三者間的差異?

    {"name" => "Weihang", "age" => 24}
    {:name => "Weihang", :age => 24}
    {name: "Weihang", age: 24}


    Q4:以下三個 Ruby 方法的呼叫,各別被傳入的多少個參數?

    before_action :set_post
    get :about, :contacts, :faq, :sitemap, controller: :pages
    resources :posts, only: [:index, :create, :update]


    以上的答案分別為:

    A1 協定://主機名稱:閘道
    A2 SELECT * FROM posts WHERE user_id = '3';
    A3 後兩者相同且比第一個的寫法效能要好
    A4 1、5、2


    如果都能正確對答,表示已經準備好可以開始學習 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 黑客松冠軍
 

書籍勘誤
 
  1. 勘誤表
 
 
     

 
 
博碩文化股份有限公司 DrMaster Press Co., Ltd.
台灣新北市汐止區新台五路一段112號10樓A棟
Building A, 10F, No.112, Xintai 5th Rd., Sec.1,Xizhi Dist., New Taipei City 221, Taiwan
Tel:02-2696-2869 Fax:02-2696-2867 劃撥帳號:17484299
Copyright© DrMaster Press Co., Ltd. All Rights Reserved.