iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0
SideProject30

用 Rails 打造你的電商網站系列 第 23

Day 23 - 程式碼警察來監督

  • 分享至 

  • xImage
  •  

為什麼要用 rubocop

  • coding style
  • 錯字

該怎麼裝

安裝 rubocop 的方法很簡單

在 gemfile 上貼上對應的版號,並在終端機中下 bundle 指令

gem 'rubocop', '~> 1.51', require: false

或者在終端機中輸入

gem install rubocop

當你安裝 RuboCop,會看到以下套件安裝:

Fetching parallel 1.23.0
Fetching ruby-progressbar 1.13.0
Installing parallel 1.23.0
Installing ruby-progressbar 1.13.0

Rubocop 這個套件只針對 Ruby 去做修正,

如果需要用在 rails 或者 rspec 等等上,

需要另外安裝擴充的套件,rubocop-rails / rubocop-rspec

使用之前先設定 config 檔案

還沒設定 config 檔案就直接跑 rubocop 的話

可能就會修到不應該或者你不希望被修的檔案,例如設定檔

該怎麼設定呢?

你可以在專案的根目錄下建立一個名為 rubocop.yml 的配置文件,

以便設定風格和規則選項,

如果說專案沒有設定,他就會直接去你電腦中找 ~/.config/rubocop/config.yml 設定檔

網路上有蠻多 rubocop 的設定範例,可以尋找一個你覺得還不錯的設定

在這邊我貼給大家自己

這裡有官方的設定黨

如何使用

當你將功能做完或者修改好的時候,在終端機下 rubocop 就會去檢查專案程式碼了

跑完之後要請他自動修改,可以下 rubocop -a

不過這個指令只會修改比較「安全」的程式碼,也就是改了不會讓程式壞掉的程式碼

不過還有一些修復後可能會讓程式碼跑不動的區塊,

如果你還是想讓他自動修改,可以下 rubocop -A

不過還是建議可以自己修或者在跑之前看一下要修的地方是哪裡再下

常用設定

AllCops / Exclude

這個設定指的是,哪些檔案不要跑 Rubocop

AllCops:
  ...
  Exclude:
    - db/schema.rb
    - node_modules/**/*
    - vendor/**/*

Metrics/MethodLength

這個設定是每個方法最多的行數,設定這個可以避免程式碼變得又臭又長

Metrics/MethodLength:
  Max: 25

還有其他常見的設定,不過這個都要看團隊的 coding style

如果有遇到可以上官方網站研究一下


上一篇
Day 22 - 圖片就是增加存在感的手法
下一篇
Day 24 - 測試很重要!
系列文
用 Rails 打造你的電商網站30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
阿鵝
iT邦新手 1 級 ‧ 2023-10-13 01:05:23

如果說專案沒有設定,他就會直接去你電腦中找 ~/.config/rubocop/config.yml 設定檔
網路上有蠻多 rubocop 的設定範例,可以尋找一個你覺得還不錯的設定
在這邊我貼給大家自己
這裡有官方的設定黨

敲碗 /images/emoticon/emoticon31.gif

我要留言

立即登入留言