70
Rails #1

INTERMEDIATE RAILS Week-1 #1

Embed Size (px)

DESCRIPTION

http://learn-rails.today/workshops/intermediate 第一堂投影片第一部分

Citation preview

Page 1: INTERMEDIATE RAILS  Week-1 #1

Rails #1

Page 2: INTERMEDIATE RAILS  Week-1 #1

⼤大家好

Page 3: INTERMEDIATE RAILS  Week-1 #1

今⽇日進度

• 19:00 - 19 :45 User Story (如何規劃專案)

• 20:00 - 20:45 Rails Basic

• 21:00 - 21:45 Rails Basic #2

Page 4: INTERMEDIATE RAILS  Week-1 #1

(分隔線)

Page 5: INTERMEDIATE RAILS  Week-1 #1

User Story 規劃專案

Page 6: INTERMEDIATE RAILS  Week-1 #1

???

Page 7: INTERMEDIATE RAILS  Week-1 #1

做個調查

Page 8: INTERMEDIATE RAILS  Week-1 #1

知道 User Story 的⼈人請舉⼿手

Page 9: INTERMEDIATE RAILS  Week-1 #1

知道怎樣做軟體規劃的⼈人舉⼿手

Page 10: INTERMEDIATE RAILS  Week-1 #1

(分隔線)

Page 11: INTERMEDIATE RAILS  Week-1 #1

我發現

Page 12: INTERMEDIATE RAILS  Week-1 #1

很多⼈人不知道

怎麼繼續學習 Rails 相關技能

的原因

Page 13: INTERMEDIATE RAILS  Week-1 #1

是因為不懂怎麼做軟體規劃

Page 14: INTERMEDIATE RAILS  Week-1 #1

想要⾃自⼰己開發⼀一個網站

Page 15: INTERMEDIATE RAILS  Week-1 #1

寫好規格後

Page 16: INTERMEDIATE RAILS  Week-1 #1

卻只能對電腦發呆因為 Rails 101 沒教怎樣規劃....XD

Page 17: INTERMEDIATE RAILS  Week-1 #1

(分隔線)

Page 18: INTERMEDIATE RAILS  Week-1 #1

⼤大多數⼈人以為網站是這樣做的• 我想做⼀一個網站

Page 19: INTERMEDIATE RAILS  Week-1 #1

⼤大多數⼈人以為網站是這樣做的• 我想做⼀一個網站

• 我把想做的功能列出來

Page 20: INTERMEDIATE RAILS  Week-1 #1

⼤大多數⼈人以為網站是這樣做的• 我想做⼀一個網站

• 我把想做的功能列出來

• 我把應該會有的畫⾯面列出來

Page 21: INTERMEDIATE RAILS  Week-1 #1

⼤大多數⼈人以為網站是這樣做的• 我想做⼀一個網站

• 我把想做的功能列出來

• 我把應該會有的畫⾯面列出來

• ⽐比較複雜的功能標注(抄 XX 網站)

Page 22: INTERMEDIATE RAILS  Week-1 #1

⼤大多數⼈人以為網站是這樣做的• 我想做⼀一個網站

• 我把想做的功能列出來

• 我把應該會有的畫⾯面列出來

• ⽐比較複雜的功能標注(抄 XX 網站)

• 最後開始動⼯工

Page 23: INTERMEDIATE RAILS  Week-1 #1

問題是....• 打開編輯器

• rails g controller products

• 然後就不知道怎接下去了

Page 24: INTERMEDIATE RAILS  Week-1 #1

實做網站登⼊入• 很簡單,裝個 devise 搞定

• 接下來也來⽀支援⼀一下 Facebook 登⼊入好了

Page 25: INTERMEDIATE RAILS  Week-1 #1

做⼀一個網站登⼊入• 裝好 devise 實作登⼊入

• 覺得也來⽀支援⼀一下 Facebook 登⼊入好了

• google ⼀一下找到 omniauth-facebook

Page 26: INTERMEDIATE RAILS  Week-1 #1

做⼀一個網站登⼊入• 裝好 devise 實作登⼊入

• 覺得也來⽀支援⼀一下 Facebook 登⼊入好了

• google ⼀一下找到 omniauth-facebook

• 花了很久時間還是不知道怎接

Page 27: INTERMEDIATE RAILS  Week-1 #1

做⼀一個網站登⼊入• 裝好 devise 實作登⼊入

• 覺得也來⽀支援⼀一下 Facebook 登⼊入好了

• google ⼀一下找到 omniauth-facebook

• 花了很久時間還是不知道怎接

• 結果因為沒⼒力了就不想繼續做下去了

• …….

Page 28: INTERMEDIATE RAILS  Week-1 #1

(分隔線)

Page 29: INTERMEDIATE RAILS  Week-1 #1

我發現

Page 30: INTERMEDIATE RAILS  Week-1 #1

容易掉坑,⾃自⼰己爬不出來容易放棄的原因

Page 31: INTERMEDIATE RAILS  Week-1 #1

(這就是這堂課要解決的問題)

Page 32: INTERMEDIATE RAILS  Week-1 #1

學習⼀一⾨門技術 (失去興趣的原因)

• ⼀一開始學了太多不知道要幹嘛的東⻄西

• 沒有辦法⾺馬上做出⼀一個可以動的作品

• 到處踢到鐵板不知道怎⾃自救

• 不知道如何正確問問題 結果被無視

Page 33: INTERMEDIATE RAILS  Week-1 #1

第⼀一堂課• 規劃設計軟體,避免⼀一開始⾃自⼰己埋雷⾃自⼰己踩的問題

• 做有成就感的⼩小東⻄西

• 學會如何發問

• 學會如何互助

Page 34: INTERMEDIATE RAILS  Week-1 #1

⼤大部份⼈人踢到鐵板的原因

Page 35: INTERMEDIATE RAILS  Week-1 #1

是因為「想實作太多功能」

Page 36: INTERMEDIATE RAILS  Week-1 #1

對「解決眼前的問題」有強迫症

Page 37: INTERMEDIATE RAILS  Week-1 #1

不知道哪裡有範例可以參考

Page 38: INTERMEDIATE RAILS  Week-1 #1

看⽂文件看到最後迷路了

Page 39: INTERMEDIATE RAILS  Week-1 #1

太多東⻄西要做,但做不出來充滿挫折

Page 40: INTERMEDIATE RAILS  Week-1 #1

最後只好放棄

Page 41: INTERMEDIATE RAILS  Week-1 #1

(分隔線)

Page 42: INTERMEDIATE RAILS  Week-1 #1

舉例來說:訂單系統• 消費者結賬完畢 => 產⽣生訂單

• 結賬⽅方式 => 信⽤用卡、Paypal、ATM

Page 43: INTERMEDIATE RAILS  Week-1 #1

有⼈人知道這個規格要怎麼做嗎?

Page 44: INTERMEDIATE RAILS  Week-1 #1

其實

Page 45: INTERMEDIATE RAILS  Week-1 #1

舉例:訂單系統 (詳細 )• 結賬完畢 => 產⽣生訂單

• 消費者購買以後應該要產⽣生⼀一張訂單

Page 46: INTERMEDIATE RAILS  Week-1 #1

舉例:訂單系統 (詳細 )• 結賬完畢 => 產⽣生訂單

• 消費者購買以後應該要產⽣生⼀一張訂單

• 消費者購買以後應該會收到⼀一張訂單確認信

Page 47: INTERMEDIATE RAILS  Week-1 #1

舉例:訂單系統 (詳細 )• 結賬完畢 => 產⽣生訂單

• 消費者購買以後應該要產⽣生⼀一張訂單

• 消費者購買以後應該會收到⼀一張訂單確認信

• 消費者應該針對這張訂單付錢(三種付款⽅方式)

Page 48: INTERMEDIATE RAILS  Week-1 #1

舉例:訂單系統 (詳細 )• 結賬完畢 => 產⽣生訂單

• 消費者購買以後應該要產⽣生⼀一張訂單

• 消費者購買以後應該會收到⼀一張訂單確認信

• 消費者應該針對這張訂單付錢(三種付款⽅方式)

• 訂單應該分成:已下訂、已付款、出貨中、已出貨、到貨、取消訂單、退貨

Page 49: INTERMEDIATE RAILS  Week-1 #1

舉例:訂單系統 (詳細 )• 結賬完畢 => 產⽣生訂單

• 消費者購買以後應該要產⽣生⼀一張訂單

• 消費者購買以後應該會收到⼀一張訂單確認信

• 消費者應該針對這張訂單付錢(三種付款⽅方式)

• 訂單應該分成:已下訂、已付款、出貨中、已出貨、到貨、取消訂單、退貨

• 後台管理員要可以在後台看到所有訂單

Page 50: INTERMEDIATE RAILS  Week-1 #1

舉例:訂單系統 (詳細 )• 結賬完畢 => 產⽣生訂單

• 消費者購買以後應該要產⽣生⼀一張訂單

• 消費者購買以後應該會收到⼀一張訂單確認信

• 消費者應該針對這張訂單付錢(三種付款⽅方式)

• 訂單應該分成:已下訂、已付款、出貨中、已出貨、到貨、取消訂單、退貨

• 後台管理員要可以在後台看到所有訂單

• 後台管理員要可以隨出貨狀態更改訂單

Page 51: INTERMEDIATE RAILS  Week-1 #1

舉例:訂單系統 (詳細 )• 結賬完畢 => 產⽣生訂單

• 消費者購買以後應該要產⽣生⼀一張訂單

• 消費者購買以後應該會收到⼀一張訂單確認信

• 消費者應該針對這張訂單付錢(三種付款⽅方式)

• 訂單應該分成:已下訂、已付款、出貨中、已出貨、到貨、取消訂單、退貨

• 後台管理員要可以在後台看到所有訂單

• 後台管理員要可以隨出貨狀態更改訂單

• 後台管理員應可以寄送出貨通知信

Page 52: INTERMEDIATE RAILS  Week-1 #1

這其實就是「軟體規劃」

Page 53: INTERMEDIATE RAILS  Week-1 #1

事先知道要做哪些事

就可以慢慢排出來做

懂的先做,不懂跳過

Page 54: INTERMEDIATE RAILS  Week-1 #1

(分隔線)

Page 55: INTERMEDIATE RAILS  Week-1 #1

User Story

Page 56: INTERMEDIATE RAILS  Week-1 #1

User Story

• 簡單的功能敘述

• 以(⾓角⾊色)的觀點寫下有價值的「功能」「需求」

• 實作細節稍後討論

Page 57: INTERMEDIATE RAILS  Week-1 #1

User Story 範例

• 產品 PM 可以將產品上架

• 消費者可以將商品加⼊入購物⾞車

• 消費者結賬後系統會產⽣生⼀一張訂單

• 消費者可以選擇使⽤用信⽤用卡、ATM 付款

Page 58: INTERMEDIATE RAILS  Week-1 #1

Rule

As a (role) , need ( some feature) to done ( some business value )

Page 59: INTERMEDIATE RAILS  Week-1 #1

商業⺫⽬目標:實作⼀一個商店

Page 60: INTERMEDIATE RAILS  Week-1 #1

Version 1!!1. 作為⼀一個商家,我要能夠很⽅方便地賣出我的貨品!!2. 作為⼀一個消費者,我要能夠很⽅方便地在這個網路商店上買到我要的東⻄西

Page 61: INTERMEDIATE RAILS  Week-1 #1

Version 2!!1. 做為⼀一個商家,我要能夠在後台上架我的東⻄西,並設定能夠販賣!!2. 作為⼀一個消費者,我要在前台能夠找到商品並結賬!

Page 62: INTERMEDIATE RAILS  Week-1 #1

Version 3!!1. ⾝身為商家的管理者,我要能夠在後台上架我的東⻄西,並設定能夠販賣

2. ⾝身為商家的管理者,我要能夠在後台設定權限,權限分成管理者以及消費者

3. 作為⼀一個消費者,我要在前台能夠找到商品並結賬

Page 63: INTERMEDIATE RAILS  Week-1 #1

!Version 4!!1.⾝身為商家的管理者,我要能夠在後台上架我的東⻄西,並設定能夠販賣

1.⾝身為管理者,我可以上傳⼀一個商品的物品敘述及圖⽚片!2.⾝身為管理者,我可以上傳⼀一個商品的規格、價格及庫存!3.⾝身為管理者,我可以設定⼀一個商品是否能夠上架販售

2. ⾝身為商家的管理者,我要能夠在後台設定權限,權限分成管理者以及消費者

3. 作為⼀一個消費者,我要在前台能夠找到商品並結賬

1. ⾝身為消費者,我要在前台能夠找到商品並加到購物⾞車! 2. ⾝身為消費者,我要在前台能夠將多樣商品加到購物⾞車,並⽣生成⼀一張訂單

Page 64: INTERMEDIATE RAILS  Week-1 #1

Version 5!!1.⾝身為商家的管理者,我要能夠在後台上架我的東⻄西,並設定能夠販賣

1.⾝身為管理者,我可以上傳⼀一個商品的物品敘述及圖⽚片!2.⾝身為管理者,我可以上傳⼀一個商品的規格、價格及庫存!3.⾝身為管理者,我可以設定⼀一個商品是否能夠上架販售

2. ⾝身為商家的管理者,我要能夠在後台設定權限,權限分成管理者以及消費者

3. ⾝身為商家,我應該可以收到消費者下訂的訂單,並設定為已結帳!4. ⾝身為商家,當消費者確定購物結帳後,該商品的庫存必須按照數量減少!5. 作為⼀一個消費者,我要在前台能夠找到商品並結賬

1. ⾝身為消費者,我要在前台能夠找到商品並加到購物⾞車! 2. ⾝身為消費者,我要在前台能夠將多樣商品加到購物⾞車,並⽣生成⼀一張訂單

1. ⾝身為消費者,當系統⽣生成⼀一張訂單後,我可以填寫寄送資訊,並且⽤用信⽤用卡結帳! 2. ⾝身為消費者,當我⽤用信⽤用卡結帳後,我的信箱要能收到⼀一張訂單確認信!

Page 65: INTERMEDIATE RAILS  Week-1 #1

Version 6!!1.⾝身為商家的管理者,我要能夠在後台上架我的東⻄西,並設定能夠販賣

1.⾝身為管理者,我可以上傳⼀一個商品的物品敘述及圖⽚片!2.⾝身為管理者,我可以上傳⼀一個商品的規格、價格及庫存!3.⾝身為管理者,我可以設定⼀一個商品是否能夠上架販售

2. ⾝身為商家的管理者,我要能夠在後台設定權限,權限分成管理者以及消費者

3. ⾝身為商家,我應該可以收到消費者下訂的訂單,並設定為已結帳

1. ⾝身為管理者,可以在後台看訂單,訂單狀態分為未結帳、已結帳、出貨中、已出貨、辦理退貨! 2. ⾝身為管理者,我可以在後台對單張訂單做狀態改變! 3. ⾝身為管理者,當我在將商品設為已出貨時,消費者應該收到⼀一張已出貨的通知信

4. ⾝身為商家,當消費者確定購物結帳後,該商品的庫存必須按照數量減少!5. 作為⼀一個消費者,我要在前台能夠找到商品並結賬! 1. ⾝身為消費者,我要在前台能夠找到商品並加到購物⾞車! 2. ⾝身為消費者,我要在前台能夠將多樣商品加到購物⾞車,並⽣生成⼀一張訂單! 1. ⾝身為消費者,當系統⽣生成⼀一張訂單後,我可以填寫寄送資訊,並且⽤用信⽤用卡結帳! 2. ⾝身為消費者,當我⽤用信⽤用卡結帳後,我的信箱要能收到⼀一張訂單確認信!6. 作為⼀一個消費者,在商家出貨後,應該收到⼀一張已出貨的通知信。! 1. 作為⼀一個消費者,當我收到已出貨的通知信後,可以在使⽤用者後台看到該張訂單! 2. 作為⼀一個消費者,我可以在使⽤用者後台看到我所有的歷史訂單

Page 66: INTERMEDIATE RAILS  Week-1 #1

User Story 規劃原則

• ⼀一條只做⼀一個場景,完成⼀一份期望

• 若發現不夠細緻,往下拆

• 以⾃自然語⾔言撰寫,很容易理解

Page 67: INTERMEDIATE RAILS  Week-1 #1

為什麼我們需要 User Story?

• 可以知道要做哪⼀一些東⻄西

• 可以先拆出要先⽣生哪些 model 和 controller

• ⼀一個⼀一個功能慢慢補上去,或換上去

• 卡關拿去問容易解答

Page 68: INTERMEDIATE RAILS  Week-1 #1

(分隔線)

Page 69: INTERMEDIATE RAILS  Week-1 #1

Version 3!!1. ⾝身為商家的管理者,我要能夠在後台上架我的東⻄西,並設定能夠販賣

2. ⾝身為商家的管理者,我要能夠在後台設定權限,權限分成管理者以及消費者

今天練習 (1) : 拆 Story

( 請⼤大家打開編輯器開始拆 )

Page 70: INTERMEDIATE RAILS  Week-1 #1

Version 3!!1. ⾝身為商家的管理者,我要能夠在後台上架我的東⻄西,並設定能夠販賣!! - 管理者必須要有⼀一個後台! - 後台必須要可以新增產品! - 產品內容必須要有標題、⽂文字、數量、圖⽚片!!

2. ⾝身為商家的管理者,我要能夠在後台設定權限,權限分成管理者以及消費者! - ⾝身為管理者,才可以進⼊入後台! - ⾝身為管理者,必須要登⼊入且是 admin ! - 管理者⾝身份必須要被分為 admin / user

答案