簡單明瞭。根據上下文給動詞和介詞加上名詞。請使用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/