Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Ruby on Rails Intro
Search
Sheng-Je Lin
April 17, 2014
Programming
0
87
Ruby on Rails Intro
Sheng-Je Lin
April 17, 2014
Tweet
Share
More Decks by Sheng-Je Lin
See All by Sheng-Je Lin
Build full-stack installer for Ruby Application with Omnibus.
v1nc3ntlaw
0
600
diff puppet chef
v1nc3ntlaw
2
170
T 客邦技術架構分享
v1nc3ntlaw
9
1k
T 客邦網站上線實務分享
v1nc3ntlaw
3
200
Other Decks in Programming
See All in Programming
たった 1 枚の PHP ファイルで実装する MCP サーバ / MCP Server with Vanilla PHP
okashoi
1
250
PostgreSQLのRow Level SecurityをPHPのORMで扱う Eloquent vs Doctrine #phpcon #track2
77web
2
530
PHP 8.4の新機能「プロパティフック」から学ぶオブジェクト指向設計とリスコフの置換原則
kentaroutakeda
2
880
“いい感じ“な定量評価を求めて - Four Keysとアウトカムの間の探求 -
nealle
1
9.9k
XP, Testing and ninja testing
m_seki
3
240
Railsアプリケーションと パフォーマンスチューニング ー 秒間5万リクエストの モバイルオーダーシステムを支える事例 ー Rubyセミナー 大阪
falcon8823
5
1.1k
5つのアンチパターンから学ぶLT設計
narihara
1
170
AI駆動のマルチエージェントによる業務フロー自動化の設計と実践
h_okkah
0
140
チームで開発し事業を加速するための"良い"設計の考え方 @ サポーターズCoLab 2025-07-08
agatan
1
410
プロダクト志向ってなんなんだろうね
righttouch
PRO
0
190
Result型で“失敗”を型にするPHPコードの書き方
kajitack
5
650
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
21
4k
Featured
See All Featured
Designing for Performance
lara
610
69k
Optimizing for Happiness
mojombo
379
70k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Automating Front-end Workflow
addyosmani
1370
200k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
970
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
Building an army of robots
kneath
306
45k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Visualization
eitanlees
146
16k
Transcript
Ruby on Rails 網站開發框架 @萬能科技大學 2014/04/17
about.me/v1nc3ntlaw 林聖哲 / Vincent /
[email protected]
2010/05 開始接觸使用 Ruby on
Rails (RoR)
為何選擇 RoR
Ruby on Rails 動態直譯式程式語言 Script Language 發明者:松本行弘 Yukihiro “Matz” Matsumoto
於 1995 年公開發表 自然、簡潔,讓程式設計師能夠快樂的寫程式
Ruby on Rails puts “Hello, world!”
Ruby on Rails 網站開發框架 發明者:David Heinemeier Hanson (DHH) 於 2004
年釋出開源 高生產力、快速開發
Ruby on Rails 高生產力 用更少的程式碼完成更多的事。 快速開發 預設好各種設定和遵循一定的規範。
為何選擇 RoR 快樂的寫程式又有很高的生產力 ( 快樂的賺錢 )
RoR 開發框架集成 建立遵循規範的專案資料夾結構 內建輔助開發網站時需要的工具 自動化需要重複操作的開發流程
RoR 基本目錄結構
應用模式遵循規範 MVC & RESTful
MVC Pattern Model-View-Controller
Model 網站使用到的物件資料和定義操作資料的邏輯, 一個 Model 會對應到一個資料庫的資料表。 class Post < ActiveRecord::Base def
like post.like_count += 1 post.save end end
ORM - ActiveRecord 負責與資料庫 (MySQL、PostgreSQL) 溝通 SQL 語法 SELECT title
FROM posts WHERE ID = 1; ActiveRecord Post.find_by_id(1).title
Controller 介於 Model 和 View 之間,處理瀏覽器的請求, 找出或處理 Model 物件資料,然後將資料傳到 View
顯示出來。 class PostsController < ApplicationController def show @post = Post.find(params[:id]) end end
View 可內嵌 Ruby 程式語法的 HTML 檔案, 輸出資料及網站頁面的呈現。 <html> ... <h1><%=
@post.title %></h1> <p><%= @post.content %></p> ... </html>
應用 MVC 使專案容易維護 保持程式 DRY (Don’t Repeat Yourself) 避免重複的程式碼 不同用途的程式碼放在各自的資料夾裡
分割資料呈現和商業邏輯的程式碼
RESTful
RESTful RESTful 架構的基礎概念為 REST 理論, 其兩個主要定理為: 1. 使用 Resource 當做識別的資源,使用
URLs 來代表 Resources 2. 同一個 Resource 可以有不同的 Representations 格式變化
RESTful 7 Actions 行為 | http verb | 網址 列表
| GET | /posts 新增 | GET | /posts/new 建立 | POST | /posts 秀出 | GET | /posts/:id 編輯 | GET | /posts/:id/edit 更新 | PUT | /posts/:id 刪除 | DELETE | /posts/:id
RESTful 7 Actions 行為 | controller | view 列表 |
posts#index | index.html.erb 新增 | posts#new | new.html.erb 建立 | posts#create | 秀出 | posts#show | show.html.erb 編輯 | posts#edit | edit.html.erb 更新 | posts#update | 刪除 | posts#destroy |
Assets Management JavaScript、CSS Style Sheets
使用更有生產力的轉譯語言 JavaScript => CoffeeScript CSS Style Sheets => SASS/SCSS
Assets Pipeline 將原本多個 .js 或 .css 檔案進行壓縮, 減少對伺服器的 HTTP Request
請求
內建指令工具
Rails Command Line rails new 建立新專案 rails generate 產生各程式碼檔案以及基本程式碼 rails
server 啓動本機伺服器檢視開發中的網站 rails console 進入互動式指令介面操作網站物件
自動產生程式碼
鷹架 Scaffold rails generate scaffold \ Post title:string content:text 產生
Post Model-View-Controller 的程式檔案和 操作資料庫修改的程式碼,以及 RESTful 的 Routes 設定
活躍的開源社群
RubyGems Ruby 社群套件管理系統 Don’t Reinvent the Wheel 不要重複造輪子 全球散佈各地的優秀工程師維護的高品質程式碼
RubyGems devise 賦予網站使用者註冊、登入和登出的機制 carrierwave 處理檔案上傳
為何選擇 RoR 快速完成你的 Idea 和想法, 實踐商業邏輯在市場中可不可行。
線上學習資源
Learn Ruby The Hard Way http://lrthw.github.io/ 《 笨方法學 Ruby 》習題
0 ~ 52 由淺入深
Try Ruby http://tryruby.org/
Ruby Warrior https://www.bloc.io/ruby-warrior/
Ruby on Rails 實戰聖經 http://ihower.tw/rails3/index.html
社群活動
Rails Girls Taipei 給想了解技術並實現想法的女性學習 Ruby on Rails 的社群。
Ruby Tuesday 不定期舉辦,邀請業界強者或大大技術分享
Rails Tuesday 技術交流、問題請教、閒聊、Social 工作經驗
RubyConf Taiwan 年度 Ruby 程式語言大會,邀請國內外講者
Q & A