iOS編程規范

命名規范


文件命名

原則:采取駝峰命名規則,即首字母必須大寫,如果為詞組,則每個單詞的首字母必須大寫,類名只能使用名詞或名詞詞組。

  • 所有類名以MG(米果的縮寫)開頭;
  • 根據功能模塊,類添加功能模塊前綴,如個人中心模塊,類加MGUC前綴;
  • 繼承自UIView,UITableViewCell,UIButton等以View,Cell,Button結尾;
  • 繼承自ViewController的類以Controller結尾;
  • 繼承自TableViewController的類以TableController結尾;
  • protocol定義時,前綴以MG開頭,后綴以Delegate結尾;
  • Category命名,類名+標識+擴展,如UIImageView +HP+Web,命名為UIImageView+HPWeb;
  • 數據模型以Model結尾;
變量和對象命名

原則:變量名使用小駝峰法, 使變量名盡量可以推測其用途屬性具有描述性,每個屬性命名都加上類型后綴。

  • 類成員變量名,遵守小駝峰法命名并前綴下劃線_。如UIButton *_submitButton;
  • 局部變量名,遵守小駝峰命名規則。如UIButton *submitButton;
  • 通知相關變量名,添加Notification為后綴;
  • 控件類型變量,命名需添加相應類型結尾;
  • 變量名需有特定的意義,建議修飾+類型
  • const常量,以小寫k開頭,后面單詞首字母大寫,其余小寫。如:const float kMaxHeigt = 100.0f;
枚舉命名

原則:遵循大駝峰命名法,如:

typedef NS_ENUM(NSInteger, UIViewAnimationTransition) {
    UIViewAnimationTransitionNone,
    UIViewAnimationTransitionFlipFromLeft,
    UIViewAnimationTransitionFlipFromRight,
 UIViewAnimationTransitionCurlUp,
    UIViewAnimationTransitionCurlDown,
};
方法命名

原則:遵守小駝峰原則,首字母小寫,其他單詞首字母大寫,每個空格分割的名稱以動詞開頭。

A 代理方法
  • 以發送代理的對象類名作為代理方法名的開始(去掉類名的前綴,并且小寫開頭)
B 實例方法
  • 執行性的方法應該以動詞開頭,小寫字母開頭;
  • 返回性方法,若返回值為單個值,在頭部加上單詞get;
  • 返回性的方法應該以返回的內容開頭,但之前不要加get;
資源命名

原則:“模塊+功能”命名法

  • 可使用公認無歧義的縮寫,如:background對應bg , viewcontroller對應vc,button對應btn,navgation對應nav;
  • 模塊分為公共模塊、私有模塊:公共模塊主要包括統一的背景,導航條,標簽,公共的按鈕背景,公共的默認圖等等;私有模塊主要根據app的業務功能模塊劃分,比如用戶中心,消息中心等。
  • 如用戶中心用戶頭像圖片的命名可以為:uc_imageview_user_icon

編碼規范


原則:可復用, 易維護, 可擴展.

注釋
  • 變量注釋應詳細描述變量用處(文檔注釋)
  • 枚舉注釋應詳細描述枚舉和每一個元素用處(文檔注釋)
  • 方法注釋應詳細描述方法作用、參數意義、返回值意義(文檔注釋)
  • 其他使用單行注釋
資源文件
  • 資源文件全部放入Supporting Files文件夾下
  • app支持iOS8及以上,圖片資源放入Assert.xcassets,可根據功能模塊分類或資源分類建立自己的Folder
  • app支持iOS7及以上,圖片資源放入Resources文件夾,各個資源按照功能模塊或資源分類放在相應的文件夾內
設計模式

原則:項目分層:http://o9zrwgllm.bkt.clouddn.com/%E6%9E%B6%E6%9E%84%E7%A4%BA%E6%84%8F%E5%9B%BE.png

  • 單個模塊使用MVC,或MVVM
  • 對于可重復使用的模塊,應抽離為單獨工具模塊,留好清晰的入口及出口
  • 建立領域(業務)模型,解耦圖形界面,數據存儲和業務邏輯
  • 抽離較獨立的功能,抽離對應的service
單元測試

原則:使用Apple自帶的XCTest框架進行單元測試

  • 對于接口和可進行模塊化測試的部分,應編寫對應的單元測試,測試包含邊界條件測試,非法條件測試,性能測試等
第三方庫管理
  • 對于引入的第三方庫,統一使用cocoapods進行管理
  • 若第三方庫需要修改調用效果,盡可能使用Category或子類重寫調用效果
版本管理
  • 使用git進行版本管理
  • 提交log,最好清晰表述相關的功能修改,若修改bug,最好加上bug編號
  • 發布的大版本,打tag標示對應的版本,tag名稱規則為正式版版本_日期,如5_5_20160715
注意:
  • 注意變量的強弱引用
  • 注意block等循環引用問題
  • 注意解耦UI,數據,業務邏輯
  • 注意各種費時操作盡可能不阻塞主線程
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • iOS編程規范0規范 0.1前言 為??高產品代碼質量,指導廣大軟件開發人員編寫出簡潔、可維護、可靠、可 測試、高效...
    iOS行者閱讀 4,502評論 21 35
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,951評論 19 139
  • 文章來自https://github.com/Blankj/AndroidStandardDevelop#安卓開發...
    小莊bb閱讀 781評論 0 1
  • 1.【從本篇中學到的重要概念】 how to make the most of your innate abil...
    17數440陳柳詩閱讀 493評論 9 6