Successfully reported this slideshow.

INTERMEDIATE RAILS Week-1 #1

2,669 views

Published on

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

Published in: Technology
  • Be the first to comment

INTERMEDIATE RAILS Week-1 #1

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

×