2013-02-04 44 views
0

您認爲同行程序員如何使用短函數與使用內聯代碼有什麼區別?編碼風格。短內函數與內聯代碼

實例與功能:只用代碼

//Check if all keys from $keys exist in $array 
function functionName(array $array, array $keys) { 
    return array_diff($keys, array_keys($array)); 
} 

functionName($mas,$keys); 

對比:

array_diff($keys, array_keys($mas)); 
+1

爲什麼要創建一個額外的函數調用和額外的字節,當你不就得了? – BenM

+0

我認爲這完全取決於你。 –

+0

對於一個班輪,我沒有看到太多的點 –

回答

3

我想,在你的榜樣,這是多餘的。沒有必要創建一個額外的函數調用,並沒有很好的理由將字節添加到文件大小。

另外,內聯array_diff($keys, array_keys($mas));比其他程序員更容易調試,比仔細查看代碼找出functionName()的確切位置以及它的位置。

+0

我是一個,調試此代碼:) – TomTom

+0

在這個項目上也許,但不一定在將來。這是一個很好的做法,可以考慮未來的開發人員...;) – BenM

+0

後續問題將會是:較少和較簡單的代碼之間的邊界與未來的某個邊界在哪裏? – TomTom

0

這取決於functionName究竟是什麼。

如果您在整個代碼中使用customerDetailsAreValid,並且您突然需要添加$array['email']驗證,那麼您將非常感謝意圖和實現的分離。

另一方面,如果您在功能diffArray中包裝array_diff,則沒有多少意義。

+0

函數之前的註釋是它所做的描述,名稱相似。 – TomTom

0

我認爲清晰度是編寫邏輯的主要考慮因素,您希望在任何時間內都可以使用邏輯。

一般來說,我厭惡內聯函數。我認爲他們很懶惰,推銷意大利麪代碼,並且通常對開發人員的風格/可讀性/清晰度完全缺乏關注。

文件大小 - 我覺得這個說法很隨意。 js文件傳輸一次然後cahced。在很多情況下,你會發現描述性的名字等等(希望評論),這些都會增加文件的大小。如果大小非常重要,請使用文件最小化程序,使文件儘可能小。

正在尋找功能?如何在大量docReady中準確找出究竟發生了什麼。 CTL-F通常會調用查找工具。

我會授予,可以有簡單的情況下,內聯函數減少代碼的可讀性。但是,內聯方法永遠不會比引用和實現的替代分離更清晰。

我的兩分錢