Swift 3 的 API 設計準則

發表於2015-12-05

一款程式語言標準庫的設計理念,往往對這門程式語言給人的整體感覺有很大影響。好的標準庫就好似語言本身的擴充套件一般,並且保證標準庫內部的一致性可以有效提升整體的開發體驗。為了搭建一個好的 Swift 標準庫,Swift 3 的其中一個主要目標就是要定義一組 API 設計準則,並且始終如一地應用這些準則。

Swift API 設計準則包含了幾個主要目標,它們都旨在統一 Swift 的開發風格。這些主要目標分別是:

  • Swift API 設計準則:實際的 API 設計準則我們目前正在積極開發中。目前,Swift API 設計準則的最新樣稿已經可以檢視了!
  • Swift 標準庫:整個 Swift 標準庫正在審查和更新,以便能夠遵循 Swift API 設計準則。實際的工作正在 Swift 倉庫中的 swift-3-api-guidelines 分支進行。
  • 匯入 Objective-C API:將 Objective-C API 翻譯成 Swift 的工作正在進行,採用了幾種啟發式邏輯(Heuristics),這是為了讓 Objective-C API 能夠更好地匹配 Swift API 設計準則。Objective-C API 的 Swift 翻譯指南這個提議描述了哪一種翻譯方式是有效的。當然,由於這個過程採用了一系列的啟發式邏輯方法,因此我們會跟蹤其對 Cocoa 和 Cooca Touch 所造成的影響,包括使用這些框架的 Swift 程式碼的工作情況。Swift 3 API 設計指南審查倉庫提供了一種如何檢視這種自動翻譯過程的方法,以便檢視對使用 Cocoa 和 Cocoa Touch 的 Swift 程式碼的影響。將不會被翻譯為 Swift 的某些特殊 Objective-C API 將會被標記出來(比如說使用 NS_SWIFT_NAME 巨集),以提升最終所得的 Swift 程式碼的質量。雖然這種變化主要影響的是 Apple 平臺,但是它也會對提供了和 Objective-C 框架相同的 API 的跨平臺Swift 核心庫(比如說 Swift 中使用的 Objective-C 執行時)造成一定的直接影響。
  • Swift 設計準則檢查:目前現有的 Swift 程式碼都遵循了不同的編碼風格,甚至還包括了針對 Cocoa 的 Objective-C 程式碼指南。藉助用來匯入 Objective-C API 的啟發式邏輯,Swift 編譯器(可以)能夠檢查常見的 API 設計模式,找出不符合 Swift API 設計準則的 API,並提供建議。
  • Swift 2 遷移到 Swift 3:Swift 標準庫和匯入 Objective-C API 將會是 Swift 的一次重大更新,對原始碼進行了一次全新的更正操作。因此,我們還需要建立一個能夠將 Swift 2 程式碼遷移到 Swift 3 API 的遷移器。

所有這些主要工作都正在積極地開發當中。如果您對上述工作有興趣,那麼可以 check out Swift API design guidelinesSwift standard library changesObjective-C API importer changes提議以及目前的review repository,然後加入swift-evolution mailing list上的討論組中。

相關文章