有很長的變量/函數名(corresponding_OneToMany_task_spec
)的一種代碼味道嗎?建議的簡化方法是什麼?長變量/函數名稱是一種代碼味道嗎?
2
A
回答
7
你在例子中顯示的那個不是代碼嗅覺,我認爲它很好。如果他們得到更長的時間,可能有異味:
- 這可能是一個函數的名字太長,因爲它有太多的責任。在這種情況下,你應該考慮把它分開(變量也是一樣 - 有時候一個班級太大了,應該分開)。
- 該名稱不應該描述實體的每個細節,而是提供它所做的抽象。
- 如果您在文檔中定義了這些縮寫並在整個代碼庫和文檔中一致地使用縮寫,則可以使用縮寫縮短名稱。
2
由於Björn建議我不認爲這裏的長度是一個特別的問題。然而幾件事情,你也可能要考慮:
- 是否函數名添加任何有用的信息(參數名稱和返回類型可以添加到功能的描述) 即
List
> getCorresponding(任務的任務)可能儘可能有意義corresponding_OneToMany_task_spec
- 代碼可讀性。如果名稱的長度確實會影響代碼的可讀性,則應考慮不同的名稱或縮寫。
+1
+1有關添加信息類型的註釋。但是,這隻對靜態類型語言有效(OP沒有指定)。 –
+0
它是Python,所以它不是靜態類型不幸的。 –
0
長方法名稱可能是沒有足夠的嵌套/原子化的標誌。特別是如果有它們的倍數。
plant.tree_leaf_smell
plant.tree_leaf_color
在很多情況下應該按層次分解。
plant.tree.leaf.smell
plant.tree.leaf.color
,然後你可以範圍之內較大的零件
leaf.smell
leaf.color
相關問題
- 1. 類名稱中的「助手」一詞是否有代碼味道?
- 2. 函數外面的變量是一種全局變量嗎?
- 3. 長變量名稱
- 4. 幫手鑄造功能 - 它是一種代碼味道?
- 5. NHibernate一對多的例子。這是代碼味道嗎?
- 6. 如果函數/方法重載是一種代碼異味,我該如何避免荒謬的方法名稱?
- 7. 變量函數名稱
- 8. 這種代碼味道有沒有共同的名字?
- 9. 這段代碼有味道嗎?
- 10. Ioc中繁忙的構造函數 - 它們是代碼味道嗎?
- 11. 默認類名 - 代碼味道?
- 12. 如果一個對象知道很多它的所有者,它是一種代碼味道嗎?
- 13. 是否有代碼味道在這種用法的讓我
- 14. 這種類型的屬性值/函數檢查,Python中的代碼味道?
- 15. Android內部的getter/setter真的是代碼味道嗎?
- 16. 並行繼承層次真的是代碼味道嗎?
- 17. 同步代碼味道?
- 18. 空接口代碼味道?
- 19. Thread.Sleep()代碼的味道?
- 20. 將集合接口名稱用作變量名稱的一部分是一種很好的做法嗎?
- 21. 想要測試私人功能是一種不好的代碼味道?
- 22. 函數的名字是一個指針變量嗎?
- 23. 代碼氣味? - 調整變量與+ - 1
- 24. 變化jQuery代碼是一個函數
- 25. 爲什麼在Ruby中使用類變量被認爲是「代碼味道」?
- 26. 函數參數名稱和類變量名稱的區別
- 27. 使用變量縮短函數名稱
- 28. 從變量名稱加載JavaScript函數
- 29. 變量中的函數名稱
- 30. 調用函數變量/名稱信息
代碼「聞香」約他們來,因此「這個問題可能會徵求主觀意見,辯論,爭論,投票,或擴大討論「。 – paxdiablo