函數和方法命名規範

請各位隨意批判。同時請看這裏這裏swift

簡單明瞭。根據上下文給動詞和介詞加上名詞。請使用removeObject(object, atIndex: index),而不是remove(object, at: index)。不要爲了過分的簡潔而影響清晰準確性。函數

避免縮寫。使用printError(myError)而不是printErr(myErr)以及setBackgroundImage(myImage)而不是setBGImage(myImg)。雖然蘋果提供了一系列「可接受」的縮寫,可是請不要在 Swift 中使用像 max 和 min 這樣的縮寫。測試

避免歧義。考慮一下函數或者方法的命名是否存在多種解釋。舉個栗子,在displayName中,display 是名詞仍是動詞呢?若是命名不清晰的話,請從新命名來消除混淆。fetch

保持一致性。在你的應用和庫中使用相同的術語來描述概念。避免在一個方法裏使用fetchBezierElements(),卻在另一個裏使用listPathComponents()ui

不要引用類型關鍵字。避免命名中出現 struct、enum、class、instance 以及 object。請使用buildDeckofCards()而不是buildDeckofCardsStruct()翻譯

方法命名使用小寫。雖然大多數開發者使用小寫命名全局函數,但你能夠大寫,這並非什麼罪過。雖然這種函數命名 過期了,但大寫的函數名卻能馬上將函數與方法區別開來。有一段時間我也改變過想法,可是最終仍是決定奮起抗爭,使用小寫。這種作法曾經和命名空間同樣普 及,可是忽然間就銷聲匿跡了。就像一百萬個喊着大寫的人忽然沉默。code

省略」get」。獲取狀態信息的函數應該描述他們要返回的東西。請使用extendedExecutionIsEnabled()isExtendedExecutionEnabled()而不是getExtendedExecutionIsEnabled()。經過參數返回數據的函數例外。接口

使用標籤描述參數。建議結合函數名和標籤來描述函數自己,這樣建立出來的會是包括介詞(with、of、 between 等等)的描述符。你會」construct color with red, green, and blue」(譯者注:使用紅綠藍構建顏色),測試」length of string」(譯者注:字符串的長度),或者」test equality between x and y」(譯者注:判斷 x 和 y 是否相等)。開發

好的函數名和標籤能夠告訴人們如何使用函數。結果會是自文檔化,不用依靠記憶或查找來肯定須要傳入的參數。請使用withTag:而不是tag:rem

使用介詞,避免」and」And 是 Apple 特別聲稱要避免的一個詞。避免使用」view and position」,使用」view, position」。

若是你必須使用and,請確保一組參數有語義聯繫,如使用」red, green and blue」構建顏色。哪怕以後調整了關鍵字,也顯然不可能中斷這些項的聯繫。在這種狀況下,即便是代碼潔癖患者也不會認爲你的代碼有問題。

Apple 支持使用 and 的一個例子是在一個方法中描述兩種大相徑庭的動做,好比openFile(withApplication:, andDeactivate:)

在基於類型的名字後面加上value 。請使用toIntValue而不是toInt,以及withCGRectValue而不是withCGRect

使用美國標準短語。因爲這些詞是由 Apple 提供的,請使用 initialize 而不是 initialise 以及 color 而不是 colour。

有疑惑,找 Apple。使用類似的概念搜索 Apple API 接口並模仿其方法簽名。儘可能參考 Objective-C 命名,由於 Swift 中的 Apple API 並無所有經過人工審查。自動轉換過來的 API 可能並非一個好例子。

 

翻譯文連接:http://swift.gg/2015/11/12/naming-methods-and-functions/

英文原文連接:http://ericasadun.com/2015/08/31/naming-methods-and-functions/

相關文章
相關標籤/搜索