Warum beschweren Eklipse über „Feature-Neid“ Geruch in meinem Code? [geschlossen]
-
19-09-2019 - |
Frage
Eclipse-(RedRails) beschweren sich über „ Eigenschaft Neid "in dem folgenden Code:
if input_text =~ /^(---\s*\n.*?\n?)(---.*?)/m
content_text = input_text[($1.size + $2.size)..-1] # warning in $1
header = YAML.load($1)
@content = content_text.strip()
@title = header["title"]
end
Mein Verständnis ist, dass ich sicher diese Warnung zu ignorieren. Aber ich wandern, warum diese Warnung erzeugt wird. Ich kann nicht verstehen, wie ich Methode für $1.size
und $1
extrahieren kann.
Lösung
Reek sagt Ihnen, dass, weil Sie zwei Eigenschaften der gleichen Klasse hinzufügen, sollte die Berechnung tatsächlich in String
gehören. Wenn Stringlängen Zugabe ist dies natürlich Unsinn, aber in Ihrem Fall der Code können durch die Verwendung $&
vereinfacht werden (die vollständige angepasst string):
input_text[$&.size..-1]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow