iOS項目的命名規范


一、關於本文檔
1、本文檔的書寫目的
    《iOS項目的命名規范》的書寫目的,在於讓后續參加到該項目的iOS開發人員通過閱讀該文檔,了解在當前iOS項目的代碼中的命名要求並嚴格按照本文檔執行,以便保證代碼的更好閱讀與維護。

2、本文檔的使用范圍
    《iOS項目的命名規范》在iOS項目中被強制要求執行。將本文中的WSF或者wsf替換成代表項目的前綴(請用三個大寫字母),即可用於其他iOS項目。

3、本文檔的更新負責人
    《iOS項目的命名規范》由本ID和同事共同協商討論制定,由本ID負責編輯、修改和后續的版本更新。

二、目錄結構

 

三、新建【業務模塊文件夾】
1、文件夾的名稱需要體現該模塊的功能概括。
比如:支付系統、訂單

2、二級文件夾根據編程設計模式分類命名,需要從下面詞語中取詞:
ViewModel、Model、View、ViewController、其他

四、新建【子類】
1、類名
(1)遵循大駝峰命名法。
(2)WSF+模塊概括名+功能分區名+父類的慣用后綴。比如:WSFOrderListVC
(3)為了整個項目代碼的整潔與統一,建議使用List、Detail、Message、TView、Cell、VC、TVC、VM等字樣。
(4)模塊概括名一定要是統一的、明確的、唯一的代表模塊名稱。
(5)父類的慣用后綴的意思是:如果要從其他框架繼承子類,那么必須遵循其命名慣例。比如,繼承UIView的子類名稱必須以View結尾。

2、屬性名
(1)遵循小駝峰命名法、避免縮寫。
(2)后綴體現屬性的數據類型。比如:orderPriceLabel、orderLimitsArray。
(3)使用長的、描述性的命名方向。比如settingButton而不是setBtn。
(4)要求NSString *nameString; 而不是NSString* nameString; 或者NSString * nameString;。

3、屬性定義
(1)定義屬性的參數順序排序:原子性、讀寫、內存管理。比如:@property (nonatomic, readwrite, copy) NSString *nameString;
(2)BOOL類型的屬性,需要為其getter方法帶is前綴。getter方法放在內存管理限定符前面,比如:@property (nonatomic, readonly, getter=isEditable, assign) BOOL editable;

4、實例變量名
(3)下划線開頭
(2)遵循小駝峰命名法、避免縮寫。
(3)后綴體現屬性的數據類型。比如:_orderPriceLabel、_orderLimitsArray。

5、公有方法名
(1)遵循小駝峰命名法、避免縮寫。
(2)不要使用“and”這個詞,它不應該用來闡明有多個參數。

6、私有方法名
(1)遵循小駝峰命名法、避免縮寫。
(2)直接父類是Cocoa框架:p_開頭。
(3)直接父類是其他框架:以自己一貫的前綴(小寫)+下划線開頭或者wsf_。比如:abc_、wsf_。

7、純C函數
(1)遵循小駝峰命名法、避免縮寫。
(2)加上WSF為前綴。

8、全局變量
.h文件
extern NSTimeInterval WSFPersonModelAnimationDuration;
extern NSString *WSFPersonModelErrorMessage;
 
.m文件
NSTimeInterval WSFPersonModelAnimationDuration = 0.3;
NSString *WSFPersonModelErrorMessage = @“ErrorMessage”;

(1)遵循大駝峰命名法、避免縮寫。

9、枚舉名
(1)遵循大駝峰命名法、避免縮寫。
(2)使用OC的枚舉方式。
(3)枚舉對象名:WSF+枚舉范圍概括名+Type。比如:WSFAlipayResultCodeType
(4)枚舉種類名:WSF+枚舉范圍概括名+Type_某種情況名。比如:WSFAlipayResultCodeType_success。

10、協議名
(1)遵循大駝峰命名法、避免縮寫。
(2)代理協議:類名+Delegate。比如:WSFOrderListChangedDelegate。
(3)數據源協議:類名+DataSource。比如:WSFOrderListDataSource。
(4)普通協議:類名+Protocol。比如:WSFOrderListVCProtocol。

五、新建【分類】
1、分類名
(1)類名+標識前綴+擴展標識。
(2)遵循大駝峰命名法、避免縮寫。
(3)WSF或者自己一貫使用前綴(大寫)+下划線為前綴。比如:NSString (WSF_HTTPManager)、NSString(ABC_HTTPManager)。

2、方法名
(1)遵循小駝峰命名法、避免縮寫。
(2)wsf或者自己一貫使用前綴(小寫)+下划線為前綴。比如:- (void)wsf_urlEncodedString;、- (void)abc_urlEncodedString;

六、新建【協議】
1、協議名
(1)遵循大駝峰命名法、避免縮寫。
2、方法名
(1)遵循小駝峰命名法、避免縮寫。
(2)如果是代理協議,以發送代理的對象類名作為代理方法名的開始(去掉類名的前綴,並且遵循小駝峰命名法)。

七、新建【第三方庫的封裝】
(1)手動管理:比如使用MJRefresh框架,需要將它的類名全部加前綴以避免命名空間沖突。比如:命名為WSFMJRefresh。
(2)pod管理:不需要特殊處理。

八、新建【常量】
1、私有常量
.m文件
static const NSTimeInterval kAnimationDuration = 0.3;
static NSString *const kErrorMessage = @“ErrorMessage”;

2、公開常量
.h文件
extern const NSTimeInterval WSFPersonModelAnimationDuration;
extern NSString *const WSFPersonModelErrorMessage;
 
.m文件
const NSTimeInterval WSFPersonModelAnimationDuration = 0.3;
NSString *const WSFPersonModelErrorMessage = @“ErrorMessage”;

說明:
(1)遵循小駝峰命名法、避免縮寫。
(2)在聲明公開常量時,也可以使用FOUNDATION_EXPORT替換extern。

3、常量名稱的常用命名方法:若常量局限於某“編譯單元”,也就是“實現文件”之內,則在前面加字母k;若常量在類之外可見,則通常以WSF+類名為前綴。

九、新建【通知】
1、按照公共常量方法處理。
2、以Notification為后綴。

 

【極力推薦】2018年中秋節兩天的良心寫作,全面講解UITextField,總有你不知道的知識:UITextField的使用、介紹、講解、全解、簡介、說明

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM