Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
打造⾼速 Ruby 產品 開發流程
Slide 2
Slide 2 text
@elct9620 THE PROGRAMMER OF CREATIVE ႏָࣛɰ
Slide 3
Slide 3 text
#Consulting Job
Slide 4
Slide 4 text
#Ruby/Rails Course and Tools Product
Slide 5
Slide 5 text
https://blog.aotoki.me Blog
Slide 6
Slide 6 text
https://discord.com/invite/t2Kd6PNvvA Discord
Slide 7
Slide 7 text
https://www.youtube.com/channel/UCcABbJfCL0DfNh3wDk_-7lg YouTube
Slide 8
Slide 8 text
慢在哪裡
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
初始化 當我們做完 rails new 命令後,還有多少設定要調整
Slide 11
Slide 11 text
規格 確認規格後到實現功能要多久的時間
Slide 12
Slide 12 text
審查 撰寫的程式碼符合團隊風格、沒有太多技術債、壞味道的檢查時間有多長
Slide 13
Slide 13 text
測試 完成的功能測試所需的時間,是否有⾃動測試和⼈⼯測試
Slide 14
Slide 14 text
部署 安裝伺服器、完整的網路、雲端等設定所需的時間
Slide 15
Slide 15 text
監控 產品部署後是否可以順利監控效能、錯誤並且得以持續改善
Slide 16
Slide 16 text
敏捷⽅法
Slide 17
Slide 17 text
完成 Done 跟 Finished 不同在於前者是「堪⽤」後者是「結束」
Slide 18
Slide 18 text
可驗證 在「堪⽤」狀態下表⽰「功能不完整」但可⽤,因此可以透過⾃動測試驗證完成狀況
Slide 19
Slide 19 text
由上⾄下 從完整的設計系統改為「可以看到畫⾯」或「可以呼叫 API」的⽅式開始開發
Slide 20
Slide 20 text
關注功能 開發產品需要關⼼的是功能的可⽤,因此⽬標是打造「最⼩可⾏」的功能(產品)
Slide 21
Slide 21 text
持續整合 產品只有⼀個主幹分⽀所有⼈直接推到 main branch,隨時都保持在最新的狀態
Slide 22
Slide 22 text
⾃動測試 為了可以持續整合,我們需要⼤量的⾃動測試確保「功能」正常
Slide 23
Slide 23 text
重構 在有測試保護的狀況下已不改變功能的前提「持續改善」程式碼
Slide 24
Slide 24 text
持續部署 產品的所有功能隨時都是可⽤的狀態,隨時都可以部署給使⽤者使⽤
Slide 25
Slide 25 text
功能開關 尚未準備好釋出的功能使⽤ Feature Flag 保護起來,讓持續部署得以實現隨時部署
Slide 26
Slide 26 text
敏捷開發是⽂化、流程上的改變
Slide 27
Slide 27 text
思考 無法改變⽂化、流程的狀況下,還能做些什麼?
Slide 28
Slide 28 text
使⽤⼯具
Slide 29
Slide 29 text
Bankai 預先設定好習慣的 Rails 專案設定,初始化專案只需要數分鐘 https://github.com/5xRuby/bankai
Slide 30
Slide 30 text
Cucumber E2E 測試⼯具,⽅便溝通規格以及確認使⽤者⾓度的「使⽤」是沒問題的
Slide 31
Slide 31 text
RSpec 夠熟練的話⽤來寫單元測試非常好⽤,適合針對 Cucumber 的細部功能做測試
Slide 32
Slide 32 text
Rubocop 減少 Code Review 針對寫法的檢查,⾃動化的檢查撰寫的風格和避開容易出問題的寫法
Slide 33
Slide 33 text
Brakeman 針對 Rails 常⾒資安問題的寫法做檢查,可以減少常⾒的⼈為疏失
Slide 34
Slide 34 text
Bundler Audit ⽤來檢查 Ruby Gem 的漏洞,來確保可以持續更新到沒問題的版本
Slide 35
Slide 35 text
Bundler Leak 跟 Bundler Audit 類似,可以⽤來找到使⽤的 Ruby Gem 是否有記憶體洩漏的問題
Slide 36
Slide 36 text
Ruby GitLab CI Tempalte 預先設定從靜態分析到測試和部署所有步驟的樣板,可以快速的完成 CI/CD 流程的建置 https://github.com/elct9620/ruby-gitlab-ci
Slide 37
Slide 37 text
⾃動⽣成 Production ⽤的 Dockerfile 可以節省⾃⼰撰寫跟設計的時間 Boxing
Slide 38
Slide 38 text
容器的 Entrypoint ⼯具,可以增加安全性以及確保 Rails 在資料庫準備好後才啟動 Openbox https://github.com/elct9620/openbox
Slide 39
Slide 39 text
Health Check ⽤的套件,可以⾃訂檢查規則來快速讓 AWS ALB 這類服務能做檢查 Liveiness https://github.com/elct9620/liveness
Slide 40
Slide 40 text
⼯具、技術、⽂化漸進式的改善
Slide 41
Slide 41 text
#Thanks Q&A