Thanks to visit codestin.com
Credit goes to ihower.tw

Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App

Ruby on Rails 實戰聖經

關於本書

我是 ihower,本書介紹 Ruby on Rails 這套開放原始碼的網站開發框架。

內容涵蓋了 Ruby on Rails 大部分的常用功能以及介紹,本書拆分成數個部分:

  • Part 1 為入門導覽,實作一個活動管理系統。這部分有二十六集的教學系列影片 (Youtube)涵蓋 Part1 的所有內容。影片是我在 ALPHA Camp Bootcamp 時期拍攝的(當時的 Rails 版本是 4.2)。

  • Part 2: 是我在北京全棧營時期製作的 Step by Step 教材(當時的 Rails 版本是 5.0),現已免費開放(感謝 xdite)。當初是針對中國大陸的學生寫的簡體版本,這裡重新編排和更新內容。

  • Part 3: 深入介紹 Rails 的各種元件和進階主題

  • Git 版本控制: 現代軟體開發必備工具

  • 應用程式開發基礎: 給初學者的基礎電腦科學知識,包括程式語言、資料庫、網路概論等等內容。

由於本書寫作時間跨越 Rails 3.2 至 Rails 6,因此有些截圖和最新版本不同,也不保證所有步驟能夠相容於最新版本,若有已知問題會補充說明。另外內容有些繁簡電腦術語(對照表)混用,還請多多見諒。

勘誤請來信 [email protected]

關於作者

張文鈿,網路上的代號為 ihower,曾擔任日本 RubyKaigi、中國 RubyConf China、台灣 RubyConf TaiwanCOSCUP 歷屆講者。2006年開始接觸 Rails,從此愛上 Ruby 這個極具豐富樂趣及高生產力的程式語言,並於2018年成立愛好資訊科技有限公司

歡迎追蹤 Twitter 帳號 @ihower 和部落格 https://ihower.tw

訂閱電子報

歡迎訂閱 Rails 實戰聖經,不定時發送。

Telegram 社群

歡迎加入愛好 Rails 公開群,分享討論 Ruby on Rails 相關技術。

目標讀者

本書的目標讀者為網站開發工程師(Web Application Developer),比較不適合完全沒有網頁開發經驗的朋友,在學習 Rails 前,最好對以下知識有基本認識:

  • 基本的程式設計能力,了解什麼是變數、控制流程、迴圈、函式、陣列等等
  • HTML/CSS 網頁設計
  • 對網路通訊協定 HTTP 有基礎認識
  • 對 RDBMS 關聯式資料庫和 SQL 語法有基本了解
  • 基本的指令列操作 (CLI: Command line interface),Unix-like 作業系統為佳

如果您有 PHP/MySQL、Node.js、ASP、JSP 等網頁應用程式開發經驗,相信這些對您應該不陌生。 若您沒有這些經驗知識,可以先參考本書的應用程式開發基礎章節。

本書想要涵蓋的重要新功能,但還沒空寫

  • Active Storage: Rails 內建的檔案上傳儲存功能
    • Rails Guides: Active Storage Overview
    • 若上傳的檔案是公開,無需登入就可下載的,則不建議用 Active Storage,改用 carrierwave 會比較簡單。若你上傳的檔案是需要登入檢查權限才能下載的,比較適合用 Active Storage 方案
  • Action Text: Rails 內建的 Rich Editor
    • 搭配 Active Storage 可做檔案上傳
    • 但他的設計特點是用獨立的 DB table 來存放文字資料,而不是在本來的 model 用一個欄位存。例如你有 Post, Article models,都想加個 description 資料,但他的設計是都會存在 action_text_rich_texts 這個 table 裡面,而不是放在 posts, articles table 的 description 欄位。此設計在不同情境下有好有壞。
  • Zeitwerk autoloading 自動載入模式

本書不涵蓋的功能

筆者認為用不到或不好用的功能:

  • Webpacker: 與 Rails 整合在一起的 webpack 前端打包工具
  • Hotwire: 包括 Turbo 和 Stimulus
  • Encrypted Credentials: 原本的 secrets.yml 方法比較簡單好用
  • Active Record 的 has_secure_token: 用 Devise gem 就好了
  • Active Record 的 enums: 資料就用 string 儲存就好了,可讀性比較高
  • Action Mailbox: 很少會做收信功能
  • Action Cable: 開發起來是蠻方便的,但是 Ruby 伺服器不太適合做 real-time 應用,因此不敢上 production 實用。除非 WebSockets 伺服器要換成用 AnyCable
  • Rails 內建的 Testing: 本書和大多數人都會改用 RSpec 來寫測試
  • Routing Concern, Shallow 用法: 不必要,沒用到
  • ActionController 的 Live Streaming: 就是 Server-Sent Events 方案。但是要做 real-time 的話會優先考慮更多人用的 WebSockets 方案。
  • Action Mailer Previews: 本書改用 letter_opener gem
  • Rails API-only 模式: 這麼做就浪費 Rails server-side rendering 的強項了
  • Multiple database support: 沒用到

線上參考資源(英文)


Copyright © 2010-2022 Wen-Tien Chang All Rights Reserved.