[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 病毒,想哭病毒?

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

EP 25 - [Ruby on Rails] 更新订单付款状态

Youtube 频道:https://www.youtube.com/c/kaochenlong ...

Dialog 关闭後更新 Grid 资料 / 显示储存的图档 - day20

目标 承前篇 当学生资料修改或上传图档後,能够在 Grid 即时更新修正後的资料,并於点选学生展开显...

SuiteScript - Entry Point

User Event afterSubmit(scriptContext): Executes im...

Leet Code 4. Running Sum

今天分别有几个数值,要与前数值做相加的动作 Example 1. input: nums=[1,2,...

【从零开始的 C 语言笔记】第十七篇-if条件式

不怎麽重要的前言 上一篇介绍了二维阵列的概念,基本上阵列的使用方法都不会差太多,应该不算太难理解? ...