2011-10-26 86 views

回答

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 
相關問題