SwiftLint 靜態檢查器
本篇會介紹 Coding Style 與 iOS 平台上最活躍的靜態檢查器 SwiftLint,
可以幫助你的程式碼保持一致的風格,並且讓團隊有相同的規範可以遵循。
CodingStyle
CodingStyle 就是指寫作程式碼的風格,其中包含很多面向,
例如說是變數命名方式、是否有空格、是否要換行、註解格式、修飾詞的順序等等,
有時程式碼的功能是相同的,但是會因為風格的不同導致看起來差很多,嚴重一點甚至會有閱讀上的困難,
因此往往成熟的團隊會需要訂定一套規則來規範它。
CodingStyle 規則
CodingStyle 規則就像一份穿搭規則,可以讓團隊裡的程式碼保持下面三個特點。
- 可讀性
- 易維護
- 一致性
自己定義一套穿搭規則其實蠻不容易的,因此可以參考下面兩個網站。
- swift.org - API Design Guidelines
- swift 官方的 API 設計方式,比較偏概念性
- raywenderlich - Swift Style
- raywenderlich 出的一套 CodingStyle,目前算是開源社群裡最多人遵循的的一套規則
- 定義的規則也相當明確,會跟你說什麼是對的、什麼是錯的
CodingStyle 靜態檢查器
有了穿搭規則還需要一位服裝審核員幫我們檢驗,檢查程式碼是否有依照規則穿搭,
最大的好處是可以自動化地檢查寫作風格是否正確,甚至有些可以幫你自動修正。
SwiftLint
SwiftLint 則是 realm 公司出的一款 CodingStyle 靜態檢查器,
選用此工具原因是目前熱門獨大且唯一持續更新,
而且 SwiftLint 的預設規則就遵循大部分 raywenderlich 的 Swift Style。
安裝方式
在終端機輸入下方指令,專案初始化pod (請事先電腦安裝過 CocoaPods)
1
pod init
設定 PodFile,開啟專案內的 PodFile 檔案加入下面程式碼
1
pod 'SwiftLint'
在終端機輸入下方指令,安裝三方
1
pod install
設定 Build Phases,開啟專案內設定Build Phases > 按 “+” > RunScript > 輸入下方腳本
1
"${PODS_ROOT}/SwiftLint/swiftlint" lint
執行方法
直接按下編譯即可!
禁用規則
1 | // swiftlint:disable colon |
規則清單
下面連結的每一條都是一條規則,有些是預設有、有些是預設沒有,
並且每一條都有詳細的範例說明怎樣是正確的、怎樣是錯誤的。
客製化規則
當然有時候會需要調整成適合團隊的規範,請先依照下面步驟調整 Config,
最後細部調整 Config 檔案內的規則即可。
調整 Build Phases
1
"${PODS_ROOT}/SwiftLint/swiftlint" lint --config "${SRCROOT}/swiftlint.yml"
放入規則設定檔,放在專案的根目錄,叫做”swiftlint.yml”
一樣直接按下編譯即可!
客製化規則範例
Swiftlint 的客製化規則是非常彈性的,
可以開啟或關閉某些規則,
甚至可以用正規表達式定義全新的規則,
發生不符合規則要觸發”warning”或是”error”也可以自由決定,
也可以跳過固定的路徑的檢查,例如 Pods 裡的三方檔案,避免浪費檢查效能,
最後連報錯的方式也提供很多種,例如 xcode, json … 等等支援各式各樣的報告。
這裡有一個完整範例可以參考:swiftlint.yml
1 | # 不啟用的規則 |
其他工具
- tailor:另一套靜態檢查器
- 但有個嚴重問題,目前只支援到Swift3.0,無人更新…
- SwiftFormat:強制格式化的工具
- 尚未深入研究,但能設定的條件不夠多。
希望這篇文章有幫助到您的開發之路!如果能給我一些按讚支持,我會非常感謝您的鼓勵!祝壞蟲遠離您!