我已經使用Reek最近重構我的代碼和氣味中的一個,DuplicateMethodCall,被稱爲上數組和散列查找,如array[1]
或hash[:key]
時稱爲多次。如果多個陣列/哈希查詢被存儲在一個變量
所以我在想,如果有多個數組或哈希查找是如此昂貴,我們應該在一個變量來存儲它們,而不是直接調用它們,這是每個人都從我的經驗呢。
我會毫不猶豫地存儲多個對象方法調用(尤其是如果它是一個DB調用)在一個變量,但這樣做對於數組和哈希查找感覺就像矯枉過正。
例如,我會得到一個警告,對這段代碼:
def sort_params
return [] if params[:reference_letter_section].nil?
params[:reference_letter_section].map.with_index(1) do |id, index|
{ id: id, position: index }
end
end
,但我覺得在自己的變量存儲params[:reference_letter_section]
太多
代碼質量的工具應經常採取一粒鹽。當性能不是問題時,可讀性很重要。但用你的判斷來決定哪種方式更好。這些工具只是告訴你在哪裏看。 – ndn
呀完全與它@ndn同意,但我不知道有多少,它會提高性能,這就是爲什麼我問這個位置 –
「我不知道有多少,它會提高性能」 - 你可以隨時_measure_那。 –