專案可維護的一些原則:
- 儘可能少寫程式碼
- 不要試圖和 SDK 和工具過不去
- 採用 iOS 框架中,尤其是 UIKit 中已有的設計模式
- MVC, Delegate(代理), Dependency Injection(依賴注入), Target / Action
- 以 Coordinators(協作者)的方式擴充套件 MVC,並用 coordinatingResponder 處理資料流
- 讓 UIViewControllers 各司其職
- 用程式碼寫 UI 層違反了原則1
- 儘可能用 .storyboard / .xib 構建 UI。除非確實必要,不用程式碼寫 UI
- 不用 .storyboard 處理資料流,而是僅作為優化的 .xib,僅基於 1-2 個控制器
- 除非絕對必要,否則不要替代系統框架
- 譬如:PinLayout、FlexLayout、LayoutKit、Layout 等替換 Apple 提供的 AutoLayout.
- 依託 Swift 的表達能力
- 儘可能減少第三方依賴,除非有明確的需求
- Crypto, Keychain 等基於 C 語言框架的封裝庫
- Marshal JSON 解析庫,Swift 4 支援 Codable,也可以嘗試不依賴了
- TinyConstraints 微型 AutoLayout 工具庫
- 採用一致的程式碼風格
- 將程式碼元素置於相當的地方
- 採用一致的順序
- 儘可能採用大量一致的 MARK: - 進行組織
- Delegates
- Init / deinit
- UI outlets
- Dependencies (if any)
- Local data source
- Embedded Controllers (if any)
- Notification tokens
- Commented-out list of coordinatorResponder methods that particular file is overriding
- Any additional stuff
當你對於應該寫“聰明的”還是“直白的”程式碼感到疑惑時?
記住!一定要保持“直白”。