SlideShare una empresa de Scribd logo
1 de 70
Descargar para leer sin conexión
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
答案

Más contenido relacionado

Similar a INTERMEDIATE RAILS Week-1 #1

愛報告 分享茶會 簡報大綱-20111212上鼎
愛報告 分享茶會 簡報大綱-20111212上鼎愛報告 分享茶會 簡報大綱-20111212上鼎
愛報告 分享茶會 簡報大綱-20111212上鼎DesBear Li
 
郑焕义 重温网站重构
郑焕义 重温网站重构郑焕义 重温网站重构
郑焕义 重温网站重构Webrebuild
 
Reviews of Designing with Web Standards
Reviews of Designing with Web StandardsReviews of Designing with Web Standards
Reviews of Designing with Web Standardsavenirzheng
 
超基本網站分析,數據會說話(網路版)
超基本網站分析,數據會說話(網路版)超基本網站分析,數據會說話(網路版)
超基本網站分析,數據會說話(網路版)Wanju Wang
 
[DCTPE2011] 3) 主題演講:用Drupal 打造更美好的網際網路
[DCTPE2011] 3) 主題演講:用Drupal 打造更美好的網際網路[DCTPE2011] 3) 主題演講:用Drupal 打造更美好的網際網路
[DCTPE2011] 3) 主題演講:用Drupal 打造更美好的網際網路Drupal Taiwan
 
5irehands工作室 2
5irehands工作室 25irehands工作室 2
5irehands工作室 2Forefeel Wu
 
Semp活动 敏捷之用户故事研讨会(一)
Semp活动   敏捷之用户故事研讨会(一)Semp活动   敏捷之用户故事研讨会(一)
Semp活动 敏捷之用户故事研讨会(一)SEMP
 
美团点评技术沙龙08 - 分布式会话跟踪系统架构设计与实践
美团点评技术沙龙08 - 分布式会话跟踪系统架构设计与实践美团点评技术沙龙08 - 分布式会话跟踪系统架构设计与实践
美团点评技术沙龙08 - 分布式会话跟踪系统架构设计与实践美团点评技术团队
 
Joomla! 網站規劃 簡報-i love joomla! 5月小聚
Joomla! 網站規劃 簡報-i love joomla! 5月小聚Joomla! 網站規劃 簡報-i love joomla! 5月小聚
Joomla! 網站規劃 簡報-i love joomla! 5月小聚Asika Simon
 
Joomla! 網站規劃 簡報 - I love joomla! 5月小聚
Joomla! 網站規劃 簡報 - I love joomla! 5月小聚Joomla! 網站規劃 簡報 - I love joomla! 5月小聚
Joomla! 網站規劃 簡報 - I love joomla! 5月小聚ilovejoomla
 
Nginx深度開發與客制化
Nginx深度開發與客制化Nginx深度開發與客制化
Nginx深度開發與客制化Joshua Zhu
 
ecom-JV_compressed.pdf
ecom-JV_compressed.pdfecom-JV_compressed.pdf
ecom-JV_compressed.pdf釗名 林
 

Similar a INTERMEDIATE RAILS Week-1 #1 (13)

愛報告 分享茶會 簡報大綱-20111212上鼎
愛報告 分享茶會 簡報大綱-20111212上鼎愛報告 分享茶會 簡報大綱-20111212上鼎
愛報告 分享茶會 簡報大綱-20111212上鼎
 
郑焕义 重温网站重构
郑焕义 重温网站重构郑焕义 重温网站重构
郑焕义 重温网站重构
 
Reviews of Designing with Web Standards
Reviews of Designing with Web StandardsReviews of Designing with Web Standards
Reviews of Designing with Web Standards
 
超基本網站分析,數據會說話(網路版)
超基本網站分析,數據會說話(網路版)超基本網站分析,數據會說話(網路版)
超基本網站分析,數據會說話(網路版)
 
Drupal Camp Taipei Keynote
Drupal Camp Taipei KeynoteDrupal Camp Taipei Keynote
Drupal Camp Taipei Keynote
 
[DCTPE2011] 3) 主題演講:用Drupal 打造更美好的網際網路
[DCTPE2011] 3) 主題演講:用Drupal 打造更美好的網際網路[DCTPE2011] 3) 主題演講:用Drupal 打造更美好的網際網路
[DCTPE2011] 3) 主題演講:用Drupal 打造更美好的網際網路
 
5irehands工作室 2
5irehands工作室 25irehands工作室 2
5irehands工作室 2
 
Semp活动 敏捷之用户故事研讨会(一)
Semp活动   敏捷之用户故事研讨会(一)Semp活动   敏捷之用户故事研讨会(一)
Semp活动 敏捷之用户故事研讨会(一)
 
美团点评技术沙龙08 - 分布式会话跟踪系统架构设计与实践
美团点评技术沙龙08 - 分布式会话跟踪系统架构设计与实践美团点评技术沙龙08 - 分布式会话跟踪系统架构设计与实践
美团点评技术沙龙08 - 分布式会话跟踪系统架构设计与实践
 
Joomla! 網站規劃 簡報-i love joomla! 5月小聚
Joomla! 網站規劃 簡報-i love joomla! 5月小聚Joomla! 網站規劃 簡報-i love joomla! 5月小聚
Joomla! 網站規劃 簡報-i love joomla! 5月小聚
 
Joomla! 網站規劃 簡報 - I love joomla! 5月小聚
Joomla! 網站規劃 簡報 - I love joomla! 5月小聚Joomla! 網站規劃 簡報 - I love joomla! 5月小聚
Joomla! 網站規劃 簡報 - I love joomla! 5月小聚
 
Nginx深度開發與客制化
Nginx深度開發與客制化Nginx深度開發與客制化
Nginx深度開發與客制化
 
ecom-JV_compressed.pdf
ecom-JV_compressed.pdfecom-JV_compressed.pdf
ecom-JV_compressed.pdf
 

INTERMEDIATE RAILS Week-1 #1