Rails 實戰春季二班心得

先講結論

斯斯有兩種

1.真的想學Rails
並且想快速入門
學費也負擔得起
也願意花大量時間練習
有時間參加Meetup
非常推薦

2.只是想沾點邊
學費對你是很重的負擔
沒有時間練習
沒有時間參加Meetup
這種就非常不推薦


補習班

補習上課來說有幾種情況
就我自身參加過巨匠,恆逸資訊,Xdite Rails實戰班這些經驗來講
應該還算有點說服力

1.花了自己的錢沒學到東西
這種情況通常最幹
不過也有分成課程不能吸收
老師教不好
或是下了課自己也沒練習
課程也不會push你
也可能是課程教的你其實都會了
我在巨匠補習曾經有過這種感覺
老師好壞參差不齊

2.花了自己的錢有學到東西
這種情況通常是因為花了自己的錢
自然會認真一點
可能是課程服務完善
或是程度能吸收
Rails 實戰班對我來說屬於這種

3.花了別人的錢沒學到東西
這種情況通常發生在家裡幫忙出錢
唸書的時候補習應該很多會屬於這種
或是公司出錢
因為不是花到自己的錢
也不一定真的想上課
自然也不會感覺到痛

4.花了別人的錢有學到東西
這種情況也可能是家裡
或公司/政府補助
老師教得好可能是其一
自己也能吸收
我在恆逸資訊有過這種體驗
當時是用青年就業補助


回到正題

扯了一堆
回到本來的主線

會刷下這課程是因為平常吃飯都會看Logdown explore
看看別人的筆記或技術心得吸收新知很不錯
偶然間看到Rails實戰班的心得
後來也追蹤了Xdite的FB
交叉洗腦下開始有了想上課的念頭

去年的冬季班大概就有想上課的想法
但因為覺得沒有大量時間寫作業而作罷
年底的時候在FB上看到春季班的訊息
那時距離開課還有兩個月
仔細想了一下
覺得應該有充足時間預習完Rails101
便一頭熱地從皮包掏出信用卡刷下去了

一方面也是想看看這課程是不是這麼神
許多學員的心得都寫得栩栩如生


課前預習

刷完課程不久
就收到了要我加入課程Slack的通知
上面也提醒說一定要先預習 前導教材
前導教材一
這是Railsbridge提供的免費教材
前導教材二
這是Growth school提供的免費教材

前導教材都是免費的
如果想沾點邊的
可以考慮這些大概就可以稍微體驗了

在上課前自己大概完整練習了兩次Rails 101
兩次是202 (雖然不是200 OK 但也是成功了)
不一定要做到4遍變成404 Not Found

兩次都是自己打字
自己打字有個好處
一邊打可以一邊理解程式邏輯
就算不能馬上理解也會有點印象
經過思考理解之後才算真的懂

打字過程也難免會經歷打錯字的情況
這時候就可以嘗試著自己排除錯誤
在開發過程中
debug是常常會做的事
差別只是時間長短
經驗多少罷了

第二遍大概就開始試著看題目需求
自己試著產生對應的東西
有些地方也是沒法產生完全
還是可以偷看答案來加深印象
這在平常開發也是會發生的
主管或PM開出需求
你理解跟釐清需求之後
想辦法實作功能出來

在做Rails 101的過程中
也遇到過幾次教材有錯字
順序不對
或是有些地方照著教材做會有bug出現的情形
在經過自己檢查跟看底下留言
有參考slack頻道同學提問
也嘗試Google排除之下
大致上是還算順利

這邊也建議在做Rails101有成功debug的朋友
可以在課程留言提醒一下
前人踩雷
後人被炸才有得參考


卡關求助管道

通知信裡面也提供了卡關求助管道
不管是課程問題
或是自己想做點小東西
繳了錢就是該問問題

實體管道:
每週二與四都有 Rails 新手帶練與指導 (晚上 19:00 - 22:00 )
在 Deroot 台北市中正區新生南路一段60號B1
線上管道:
Slack Rails 頻道

時間允許的話
建議是兩種管道都花時間參與
實體管道是有人當場幫你障礙排除
也可以準備好問題過去轟炸助教

線上管道則是適合時間或地點
不方便過去參加實體管道的


環境安裝

如果有參照前導教材的
應該會經歷安裝環境這一環
要開發免不了要經歷一次
一開始是照著Railsbridge 安裝趴下去安裝
RailsBridge 裝機趴 Installfest

距離上課前兩週再次收到 Call to Action 通知
上面提供了更仔細地環境安裝和工具設定


課前作業檢查表

這邊是利用 Quip 這個多人協作軟體
其實有點像Google Doc 但是又更方便
小團隊或小公司很適合使用

藉著課前作業檢查表
可以逐項勾選確認自己有沒有完成
一項一項去除也多少會有點成就感

檢查表上除了基礎項目
也有一些加分項目
加分項目 可想而知是不做沒關係
有做會更好
但有些小功能可能要有 Review 機制
不然加分項目做完沒有反饋有時不免顯得自嗨


正式上課

正式上課是在台大的集思會議中心
環境還算舒適
小缺憾是有便當但卻沒有喝的
這算是個小bug

上課整體流程是架構在實作出一個購物網站
一開始是講 User Story 使用者故事
這算是我蠻感興趣的部分
以往都是當RD
比較少參與設計功能的部分
User Story 是從使用者角度去思考
實際會產生什麼行為
把行為轉換為需要開發的功能
比起冷冰冰的 Spec 規格 來說
多了一份親切感

如果有仔細做過Rails101至少兩次
會發現第一週其實是很親切的
後台功能和Bootstrap套版
大多是基於Rails101的基礎上加點東西

上完第一週
作業大致也先跑完一次
比較有趣的部分是利用carrierwave來做圖片上傳的部分
利用git pull request來繳交作業
第二次就是一邊理解
一邊嘗試實作

藉著 Quip 的共筆系統
除了完成自己的筆記部分
也可以參考同學的
這部分也是有小bug
筆記雖然可以參考其他人的
但是寫錯不一定會發現
如果有筆記糾錯的服務會是更加分的

第二週算是進入重點了
開始實作購物車跟訂單的部分
這邊開始就跟Rails101產生分歧點
往外延伸到其他部分

其中 State machine 狀態機 蠻重要的
如果是非本科應該不太會接觸到這部分
狀態機 顧名思義就是用來幫你切換狀態的
按照他的規則
寫出 state狀態, transitions切換條件, event切換動作
訂好之後就會照你訂的規則下去跑

也因為跟Rails101重疊部分不多
開始有點吸收不順的情況
一邊要理解一邊想打code會有點跟不上
發現跟不上的時候用貼的是比較快的
但只貼不思考大概就會產生有些人說的貼code班的效果

第二週作業則是要補上上課沒做的一些部分
添加清空功能
處理數量計算邏輯
前後台訂單檢視
後台狀態切換

第二週和第三週中間空了一週
應該是讓我們有更多時間去準備消化前面的部分
不過人總是有惰性
做完第一遍就開始有點偷懶
好在也是藉著兩次禮拜天自發性的作業讀書會彌補了一點

第三週則是寄信,金流,整理Code
寄信是利用 letter_opener 來做
有先帶到了以往 Xdite是教他公司裡的新進員工用 Gmail測試套件
那課程為什麼不用呢?
因為預覽每次要打開gmail很麻煩
然後一天寄超過50封信
會跳出 被Gmail ban掉 成就 Get

金流的部分
這邊是教我們用智付寶
也不免俗先帶到了歐付寶
有在關注Logdown或是Xdite FB的應該對 歐付寶事變 有印象
就不贅述了

透過教學
申請智付寶測試站拿到需要的 API Key
也裝了Pay2go
做完相關設定之後
就嘗試著刷卡了
能在自己實作的網站上刷卡其實是很有成就感的

整理Code的部分
Controller
講到用繼承去抽出不同Controller的相同部分
同一個Controller內
則是可以利用Filter來抽出重複action code

Model
用Module來抽出不同Model的相同部分

View
這邊是講到什麼時候你該用Helper
什麼時候你該用Partial

當View裡面出現 邏輯判斷,邏輯計算的時候
這時候你應該用Helper

當View裡面有整塊元件可以複用
當View超過兩三頁
或是特殊元件應該抽出來另外看的
這時候你應該用Partial

最後是ServiceObject
這邊可以把它理解成功能元件化
把同性質的功能整個拆出來

用大賣場來比喻
可以講說是什麼都有什麼都賣什麼都不奇怪
但是如果把相同性質的商品分區處理結帳
這樣就很方便的可以去找你要的東西
ServiceObject大概就是在做這樣的事
把同性質的東西封裝成一個物件來處理
你想要做相關的事就要透過ServiceObject去做

因為上課時間關係
也偷講了一些第四週有關的內容
前後端調教對使用者體驗來說蠻重要的


前三週總結

整體來說
上課節奏蠻緊湊的
雖然每段講解跟實作時間都是分開
但聽完講解後接著就是馬上實作
其實是沒辦法在上課時間理解完全的
上課是在腦袋大致上畫上一個輪廓
透過實作走過一遍加深印象
如果下課就不練習其實效果有限

可以透過課前預習
或是課後練習來補上細節理解不足的部分
當然也是會有很多地方自己不好理解
這邊也需要自己做筆記整理起來
Meetup/slack/上課QA時間大概就是可以處理掉這部分
很多時候也是自己偷懶或是時間不夠沒整理完全

大量練習是必須的
一邊做一邊理解
透過debug找原因去了解為什麼

雖然課程費用不便宜
只要投入夠多心力
你就會發現這錢花得並不冤枉
在這幾個月可以學到的實際上你自己要花很久去摸索
更別說可以認識有相同企圖心的同學
從助教跟老師身上透過提問去挖到更多的東西..等等

comments powered by Disqus