[VR 前後端交响曲Day30] 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 =>

  1. 怎麽更好地预估自己开发功能的所需时间;
  2. 遇到bug卡关时怎麽抽换隔天铁人赛内容、同时又能确保每天都有达成自己心目中合格的产出,
    毕竟参赛是为了完成自己的心愿,不是为了别人。

经过30天後,至少对於Vuex比较有概念了,开心!
希望能进一步研究Vue Router,运用在其他专案,
铁人赛後也要莫忘初衷、持续研究前端框架!

有兴趣的看倌请使用这组测试帐号/密码:

[email protected]
visitor@lean

可以点进去这里玩玩唷!(请大家鞭小力一点)

如果网站有bug也可以点进去Kanban里在bug区留言XD,我会尽力修改的~

(视网站吞吐量情况,预计2020年底下线~)

最後谢谢五倍红宝石的龙哥、助教、课务们,第五届Astro Camp的战友和PMaster的团队成员

2020铁人赛,成功达阵!

Ref:


<<:  Day30 - 逆向 WannaCry 病毒,想哭病毒?

>>:  完赛,最终章,平安就是幸福

D3JsDay03可缩放向量图型 不用怕图片不行—SVG简介

由於D3Js的组成部分来自於操控SVG(Scalable Vector Graphics),所以简单...

# Day 27 Page Migration (二)

文件 原文文件:Page migration 翻译: 核心中使用 migrate_pages() =...

强制存取控制环境中强制执行完整性

-CIA作为安全目标 在 FISMA 中,真实性和不可否认性是完整性的属性,即使它们在美国国防部信...

Day 01 Flask 是什麽

根据 程序语言社群 TIOBE 2021年8月发表的热门程序语言排行榜中,Python 在众多程序语...

Day9-React Hook 篇-认识 useCallback

今天介绍的也是避免重新渲染,使 React 效能优化的 hook useCallback。 useC...