Upload
xditerails
View
1.965
Download
0
Embed Size (px)
DESCRIPTION
http://learn-rails.today/workshops/intermediate 第一堂投影片第一部分
Citation preview
Rails #1
⼤大家好
今⽇日進度
• 19:00 - 19 :45 User Story (如何規劃專案)
• 20:00 - 20:45 Rails Basic
• 21:00 - 21:45 Rails Basic #2
(分隔線)
User Story 規劃專案
???
做個調查
知道 User Story 的⼈人請舉⼿手
知道怎樣做軟體規劃的⼈人舉⼿手
(分隔線)
我發現
很多⼈人不知道
怎麼繼續學習 Rails 相關技能
的原因
是因為不懂怎麼做軟體規劃
想要⾃自⼰己開發⼀一個網站
寫好規格後
卻只能對電腦發呆因為 Rails 101 沒教怎樣規劃....XD
(分隔線)
⼤大多數⼈人以為網站是這樣做的• 我想做⼀一個網站
⼤大多數⼈人以為網站是這樣做的• 我想做⼀一個網站
• 我把想做的功能列出來
⼤大多數⼈人以為網站是這樣做的• 我想做⼀一個網站
• 我把想做的功能列出來
• 我把應該會有的畫⾯面列出來
⼤大多數⼈人以為網站是這樣做的• 我想做⼀一個網站
• 我把想做的功能列出來
• 我把應該會有的畫⾯面列出來
• ⽐比較複雜的功能標注(抄 XX 網站)
⼤大多數⼈人以為網站是這樣做的• 我想做⼀一個網站
• 我把想做的功能列出來
• 我把應該會有的畫⾯面列出來
• ⽐比較複雜的功能標注(抄 XX 網站)
• 最後開始動⼯工
問題是....• 打開編輯器
• rails g controller products
• 然後就不知道怎接下去了
實做網站登⼊入• 很簡單,裝個 devise 搞定
• 接下來也來⽀支援⼀一下 Facebook 登⼊入好了
做⼀一個網站登⼊入• 裝好 devise 實作登⼊入
• 覺得也來⽀支援⼀一下 Facebook 登⼊入好了
• google ⼀一下找到 omniauth-facebook
做⼀一個網站登⼊入• 裝好 devise 實作登⼊入
• 覺得也來⽀支援⼀一下 Facebook 登⼊入好了
• google ⼀一下找到 omniauth-facebook
• 花了很久時間還是不知道怎接
做⼀一個網站登⼊入• 裝好 devise 實作登⼊入
• 覺得也來⽀支援⼀一下 Facebook 登⼊入好了
• google ⼀一下找到 omniauth-facebook
• 花了很久時間還是不知道怎接
• 結果因為沒⼒力了就不想繼續做下去了
• …….
(分隔線)
我發現
容易掉坑,⾃自⼰己爬不出來容易放棄的原因
(這就是這堂課要解決的問題)
學習⼀一⾨門技術 (失去興趣的原因)
• ⼀一開始學了太多不知道要幹嘛的東⻄西
• 沒有辦法⾺馬上做出⼀一個可以動的作品
• 到處踢到鐵板不知道怎⾃自救
• 不知道如何正確問問題 結果被無視
第⼀一堂課• 規劃設計軟體,避免⼀一開始⾃自⼰己埋雷⾃自⼰己踩的問題
• 做有成就感的⼩小東⻄西
• 學會如何發問
• 學會如何互助
⼤大部份⼈人踢到鐵板的原因
是因為「想實作太多功能」
對「解決眼前的問題」有強迫症
不知道哪裡有範例可以參考
看⽂文件看到最後迷路了
太多東⻄西要做,但做不出來充滿挫折
最後只好放棄
(分隔線)
舉例來說:訂單系統• 消費者結賬完畢 => 產⽣生訂單
• 結賬⽅方式 => 信⽤用卡、Paypal、ATM
有⼈人知道這個規格要怎麼做嗎?
其實
舉例:訂單系統 (詳細 )• 結賬完畢 => 產⽣生訂單
• 消費者購買以後應該要產⽣生⼀一張訂單
舉例:訂單系統 (詳細 )• 結賬完畢 => 產⽣生訂單
• 消費者購買以後應該要產⽣生⼀一張訂單
• 消費者購買以後應該會收到⼀一張訂單確認信
舉例:訂單系統 (詳細 )• 結賬完畢 => 產⽣生訂單
• 消費者購買以後應該要產⽣生⼀一張訂單
• 消費者購買以後應該會收到⼀一張訂單確認信
• 消費者應該針對這張訂單付錢(三種付款⽅方式)
舉例:訂單系統 (詳細 )• 結賬完畢 => 產⽣生訂單
• 消費者購買以後應該要產⽣生⼀一張訂單
• 消費者購買以後應該會收到⼀一張訂單確認信
• 消費者應該針對這張訂單付錢(三種付款⽅方式)
• 訂單應該分成:已下訂、已付款、出貨中、已出貨、到貨、取消訂單、退貨
舉例:訂單系統 (詳細 )• 結賬完畢 => 產⽣生訂單
• 消費者購買以後應該要產⽣生⼀一張訂單
• 消費者購買以後應該會收到⼀一張訂單確認信
• 消費者應該針對這張訂單付錢(三種付款⽅方式)
• 訂單應該分成:已下訂、已付款、出貨中、已出貨、到貨、取消訂單、退貨
• 後台管理員要可以在後台看到所有訂單
舉例:訂單系統 (詳細 )• 結賬完畢 => 產⽣生訂單
• 消費者購買以後應該要產⽣生⼀一張訂單
• 消費者購買以後應該會收到⼀一張訂單確認信
• 消費者應該針對這張訂單付錢(三種付款⽅方式)
• 訂單應該分成:已下訂、已付款、出貨中、已出貨、到貨、取消訂單、退貨
• 後台管理員要可以在後台看到所有訂單
• 後台管理員要可以隨出貨狀態更改訂單
舉例:訂單系統 (詳細 )• 結賬完畢 => 產⽣生訂單
• 消費者購買以後應該要產⽣生⼀一張訂單
• 消費者購買以後應該會收到⼀一張訂單確認信
• 消費者應該針對這張訂單付錢(三種付款⽅方式)
• 訂單應該分成:已下訂、已付款、出貨中、已出貨、到貨、取消訂單、退貨
• 後台管理員要可以在後台看到所有訂單
• 後台管理員要可以隨出貨狀態更改訂單
• 後台管理員應可以寄送出貨通知信
這其實就是「軟體規劃」
事先知道要做哪些事
就可以慢慢排出來做
懂的先做,不懂跳過
(分隔線)
User Story
User Story
• 簡單的功能敘述
• 以(⾓角⾊色)的觀點寫下有價值的「功能」「需求」
• 實作細節稍後討論
User Story 範例
• 產品 PM 可以將產品上架
• 消費者可以將商品加⼊入購物⾞車
• 消費者結賬後系統會產⽣生⼀一張訂單
• 消費者可以選擇使⽤用信⽤用卡、ATM 付款
Rule
As a (role) , need ( some feature) to done ( some business value )
商業⺫⽬目標:實作⼀一個商店
Version 1!!1. 作為⼀一個商家,我要能夠很⽅方便地賣出我的貨品!!2. 作為⼀一個消費者,我要能夠很⽅方便地在這個網路商店上買到我要的東⻄西
Version 2!!1. 做為⼀一個商家,我要能夠在後台上架我的東⻄西,並設定能夠販賣!!2. 作為⼀一個消費者,我要在前台能夠找到商品並結賬!
Version 3!!1. ⾝身為商家的管理者,我要能夠在後台上架我的東⻄西,並設定能夠販賣
2. ⾝身為商家的管理者,我要能夠在後台設定權限,權限分成管理者以及消費者
3. 作為⼀一個消費者,我要在前台能夠找到商品並結賬
!Version 4!!1.⾝身為商家的管理者,我要能夠在後台上架我的東⻄西,並設定能夠販賣
1.⾝身為管理者,我可以上傳⼀一個商品的物品敘述及圖⽚片!2.⾝身為管理者,我可以上傳⼀一個商品的規格、價格及庫存!3.⾝身為管理者,我可以設定⼀一個商品是否能夠上架販售
2. ⾝身為商家的管理者,我要能夠在後台設定權限,權限分成管理者以及消費者
3. 作為⼀一個消費者,我要在前台能夠找到商品並結賬
1. ⾝身為消費者,我要在前台能夠找到商品並加到購物⾞車! 2. ⾝身為消費者,我要在前台能夠將多樣商品加到購物⾞車,並⽣生成⼀一張訂單
Version 5!!1.⾝身為商家的管理者,我要能夠在後台上架我的東⻄西,並設定能夠販賣
1.⾝身為管理者,我可以上傳⼀一個商品的物品敘述及圖⽚片!2.⾝身為管理者,我可以上傳⼀一個商品的規格、價格及庫存!3.⾝身為管理者,我可以設定⼀一個商品是否能夠上架販售
2. ⾝身為商家的管理者,我要能夠在後台設定權限,權限分成管理者以及消費者
3. ⾝身為商家,我應該可以收到消費者下訂的訂單,並設定為已結帳!4. ⾝身為商家,當消費者確定購物結帳後,該商品的庫存必須按照數量減少!5. 作為⼀一個消費者,我要在前台能夠找到商品並結賬
1. ⾝身為消費者,我要在前台能夠找到商品並加到購物⾞車! 2. ⾝身為消費者,我要在前台能夠將多樣商品加到購物⾞車,並⽣生成⼀一張訂單
1. ⾝身為消費者,當系統⽣生成⼀一張訂單後,我可以填寫寄送資訊,並且⽤用信⽤用卡結帳! 2. ⾝身為消費者,當我⽤用信⽤用卡結帳後,我的信箱要能收到⼀一張訂單確認信!
Version 6!!1.⾝身為商家的管理者,我要能夠在後台上架我的東⻄西,並設定能夠販賣
1.⾝身為管理者,我可以上傳⼀一個商品的物品敘述及圖⽚片!2.⾝身為管理者,我可以上傳⼀一個商品的規格、價格及庫存!3.⾝身為管理者,我可以設定⼀一個商品是否能夠上架販售
2. ⾝身為商家的管理者,我要能夠在後台設定權限,權限分成管理者以及消費者
3. ⾝身為商家,我應該可以收到消費者下訂的訂單,並設定為已結帳
1. ⾝身為管理者,可以在後台看訂單,訂單狀態分為未結帳、已結帳、出貨中、已出貨、辦理退貨! 2. ⾝身為管理者,我可以在後台對單張訂單做狀態改變! 3. ⾝身為管理者,當我在將商品設為已出貨時,消費者應該收到⼀一張已出貨的通知信
4. ⾝身為商家,當消費者確定購物結帳後,該商品的庫存必須按照數量減少!5. 作為⼀一個消費者,我要在前台能夠找到商品並結賬! 1. ⾝身為消費者,我要在前台能夠找到商品並加到購物⾞車! 2. ⾝身為消費者,我要在前台能夠將多樣商品加到購物⾞車,並⽣生成⼀一張訂單! 1. ⾝身為消費者,當系統⽣生成⼀一張訂單後,我可以填寫寄送資訊,並且⽤用信⽤用卡結帳! 2. ⾝身為消費者,當我⽤用信⽤用卡結帳後,我的信箱要能收到⼀一張訂單確認信!6. 作為⼀一個消費者,在商家出貨後,應該收到⼀一張已出貨的通知信。! 1. 作為⼀一個消費者,當我收到已出貨的通知信後,可以在使⽤用者後台看到該張訂單! 2. 作為⼀一個消費者,我可以在使⽤用者後台看到我所有的歷史訂單
User Story 規劃原則
• ⼀一條只做⼀一個場景,完成⼀一份期望
• 若發現不夠細緻,往下拆
• 以⾃自然語⾔言撰寫,很容易理解
為什麼我們需要 User Story?
• 可以知道要做哪⼀一些東⻄西
• 可以先拆出要先⽣生哪些 model 和 controller
• ⼀一個⼀一個功能慢慢補上去,或換上去
• 卡關拿去問容易解答
(分隔線)
Version 3!!1. ⾝身為商家的管理者,我要能夠在後台上架我的東⻄西,並設定能夠販賣
2. ⾝身為商家的管理者,我要能夠在後台設定權限,權限分成管理者以及消費者
今天練習 (1) : 拆 Story
( 請⼤大家打開編輯器開始拆 )
Version 3!!1. ⾝身為商家的管理者,我要能夠在後台上架我的東⻄西,並設定能夠販賣!! - 管理者必須要有⼀一個後台! - 後台必須要可以新增產品! - 產品內容必須要有標題、⽂文字、數量、圖⽚片!!
2. ⾝身為商家的管理者,我要能夠在後台設定權限,權限分成管理者以及消費者! - ⾝身為管理者,才可以進⼊入後台! - ⾝身為管理者,必須要登⼊入且是 admin ! - 管理者⾝身份必須要被分為 admin / user
答案