rubytr/ruby-tr

"Assignment Branch Condition size is too high" uyarısı

ekremkaraca opened this issue · 2 comments

Offenses:

app/models/user.rb:12:3: C: Assignment Branch Condition size for from_omniauth is too high. [21.21/15]
  def self.from_omniauth(auth)
  ^^^

Rubocop taraması esnasında çıkan uyarılardan biri. İnternette aradım taradım ama halen tam olarak ne olduğunu anlayamadım. Mevzu tam olarak nedir, buna nasıl müdahale edebiliriz?

Fonksiyondaki assignment, branch ve condition ifadeleri fazla olduğunda rubocop bundan hoşnut olmuyor. O yüzden küçük fonksiyonlar kullanmamızı istiyor. 2 seçeneğimiz var:

  1. Fonksiyonu içindeki logic'e göre daha küçül parçalara ayırmak
  2. Rubocop'un konfigürasyonunda bu size'ı artırmak, daha büyük fonksiyonlara izin vermek

Rubocop için bu limit 10 satır sanırım. 10 da bana göre yeterli. Çok uzun method'ları küçük method'lar ayırmak daha iyi olur. Çünkü method'un adı neyse içinde sadece o iş yapılmalı.