第12屆鐵人賽Day 30 Rails專案開發 - 網站部署 + 完賽感言
今天就是網站部署、公開上線的日子了!
不過,因為現在只是最小可行產品而已,還有很多預計規劃的功能還沒完成(例如column component的CRUD),
所以在deploy之前,我想為使用者設計onboard data
,為他們先建立一個接近真實的範例。
設定User的onboard data
我希望User每建立新的Kanban,裡面就會出現六個column,可以視覺化地規劃、拖拉自己做的ticket。
在Rails裡面透過after_create
這個hook來實現,寫法可能類似像這樣:
kanban.rb
class Kanban < ApplicationRecord
after_create :onboard_data
def onboard_data
columns.create(name: "Backlog")
columns.create(name: "Sprint Backlog")
columns.create(name: "Working On")
columns.create(name: "Bugs")
columns.create(name: "Testing")
columns.create(name: "Done")
//略...可以自行設計
end
end
將rails專案部署至Heroku
參考了自己兩年前在IT邦的筆記<將Ruby on Rails專案部署到Heroku>來進行以下的指令:
- heroku create “我的專案名稱”
- git push heroku master
- heroku run bundle install
- heroku run rails db:migrate
░▒▓ /vue_rails master ▓▒░ heroku create leankanban
Creating ⬢ leankanban... done
░▒▓ /vue_rails master ▓▒░ git push heroku master
Enumerating objects: 897, done.
remote: -----> Launching...
remote: Released v6
remote: https://leankanban.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
* [new branch] master -> master
░▒▓ /vue_rails master ▓▒░ heroku run bundle install
░▒▓ /vue_rails master ▓▒░ heroku run rails db:migrate
Running rails db:migrate on ⬢ leankanban... up, run.4198 (Free)
網站部署順利上線囉!
設定Redis環境變數:為production
環境加上redis to go
等等,我們還有即時互動的功能,所以必須為redis
準備好環境,不然網站會壞掉。
為了準備production
環境,我們要來修改專案內的這個檔案config/cable.yml
(cable這個英文字是纜線
的意思,命名取的真好)。
development:
adapter: redis
url: redis://localhost:6379/1
test:
adapter: test
production:
adapter: redis
url: <%= ENV.fetch("REDISTOGO_URL") %>
channel_prefix: vue_rails_production
接著,利用heroku指令幫我們生成線上版的redis
資料庫的環境變數:
heroku addons:add redistogo
░▒▓ ~/Doc/p/pmaster_v/vue_rails master ▓▒░ heroku addons:add redistogo
Creating redistogo on ⬢ leankanban... free
Created redistogo-this-is-secret as REDISTOGO_URL
Use heroku addons:docs redistogo to view documentation
去在Heroku後台的settings/Config Var
,放環境變數的地方檢查是否成功設定:
設定完成後,再推一次git push heroku master
,網站就能順利產生出action cable即時動態效果啦!
完賽感言!
最近利用搭車的空檔看了一本書:超速學習(Ultralearning), 裡面一段話對我來說非常符合身為鐵人賽參賽者的心聲:
只要你願意,哪怕你再忙,也能高速學習;只要你懂得再一段時間內,設下高強度的學習挑戰計畫,你將會在短時間裡習得一項高價值的技能!
這次的目標就是為了在鐵人賽30天內,Vue新手如我,能產出一個上線的小作品可以展示(如何在Rails專案裡運用Vue.js)。 為了達成公開設定的目標,每天都黏在電腦桌前研究Vue至少5小時,畢竟已經在網路上面發下豪語了… 這就是參與鐵人賽時,對自己承諾的威力啊!
過去2019鐵人賽也有參賽經驗(當年也是IT鐵人賽+準備馬拉松跑步都擠在10月), 但這次的挑戰度更高~準備的時間也更少, 這次規劃是前15天研究基本語法、後面15天做專案,算是新的嘗試(測試自己能否在短時間內掌握一門技術並且做出作品的能力), 每天凌晨12點準時發文,存貨不多大概維持1-3篇。
在鐵人賽第15天時曾寫下理想的預計開發項目,但現實中…因為日常還有其他專案要忙碌,即使竭盡所有擠出來的時間和精力,實際完成的功能只有50%而已。 (甚至身旁那位完全不懂Vue的後端工程師也被我抓來問,在此鳴謝~~)
於是我體會到,30天要學好一門技術其實時間太短暫了, 但我磨練到兩個重要的技能XD =>
- 怎麼更好地預估自己開發功能的所需時間;
- 遇到bug卡關時怎麼抽換隔天鐵人賽內容、同時又能確保每天都有達成自己心目中合格的產出, 畢竟參賽是為了完成自己的心願,不是為了別人。
經過30天後,至少對於Vuex比較有概念了,開心! 希望能進一步研究Vue Router,運用在其他專案, 鐵人賽後也要莫忘初衷、持續研究前端框架!
有興趣的看倌請使用這組測試帳號/密碼:
visitor@leankanban.com
visitor@lean
可以點進去這裡玩玩唷!(請大家鞭小力一點)
如果網站有bug也可以點進去Kanban
裡在bug區留言XD,我會盡力修改的~
(視網站吞吐量情況,預計2020年底下線~)
最後謝謝五倍紅寶石的龍哥、助教、課務們,第五屆Astro Camp的戰友和PMaster的團隊成員
2020鐵人賽,成功達陣!
Ref: