iOS項(xiàng)目的開發(fā)命名規(guī)范教程
前言
遵守規(guī)范也是讓代碼更清晰明了,易讀,易用,易維護(hù),可以更好的適應(yīng)團(tuán)隊(duì)開發(fā)。自己看著也是賞心悅目,何樂而不為呢。下面話不多說了,來一起看看詳細(xì)的介紹吧。
一、關(guān)于本文檔
1、本文檔的書寫目的
《iOS項(xiàng)目的命名規(guī)范》的書寫目的,在于讓后續(xù)參加到該項(xiàng)目的iOS開發(fā)人員通過閱讀該文檔,了解在當(dāng)前iOS項(xiàng)目的代碼中的命名要求并嚴(yán)格按照本文檔執(zhí)行,以便保證代碼的更好閱讀與維護(hù)。
2、本文檔的使用范圍
《iOS項(xiàng)目的命名規(guī)范》在iOS項(xiàng)目中被強(qiáng)制要求執(zhí)行。將本文中的WSF或者wsf替換成代表項(xiàng)目的前綴(請(qǐng)用三個(gè)大寫字母),即可用于其他iOS項(xiàng)目。
3、本文檔的更新負(fù)責(zé)人
《iOS項(xiàng)目的命名規(guī)范》由本ID和同事共同協(xié)商討論制定,由本ID負(fù)責(zé)編輯、修改和后續(xù)的版本更新。
二、目錄結(jié)構(gòu)
三、新建【業(yè)務(wù)模塊文件夾】
1、文件夾的名稱需要體現(xiàn)該模塊的功能概括。
比如:支付系統(tǒng)、訂單
2、二級(jí)文件夾根據(jù)編程設(shè)計(jì)模式分類命名,需要從下面詞語中取詞:
ViewModel、Model、View、ViewController、其他
四、新建【子類】
1、類名
(1)遵循大駝峰命名法。
(2)WSF+模塊概括名+功能分區(qū)名+父類的慣用后綴。比如:WSFOrderListVC
(3)為了整個(gè)項(xiàng)目代碼的整潔與統(tǒng)一,建議使用List、Detail、Message、TView、Cell、VC、TVC、VM等字樣。
(4)模塊概括名一定要是統(tǒng)一的、明確的、唯一的代表模塊名稱。
(5)父類的慣用后綴的意思是:如果要從其他框架繼承子類,那么必須遵循其命名慣例。比如,繼承UIView的子類名稱必須以View結(jié)尾。
2、屬性名
(1)遵循小駝峰命名法、避免縮寫。
(2)后綴體現(xiàn)屬性的數(shù)據(jù)類型。比如:orderPriceLabel、orderLimitsArray。
(3)使用長(zhǎng)的、描述性的命名方向。比如settingButton而不是setBtn。
(4)要求NSString *nameString; 而不是NSString* nameString; 或者NSString * nameString;。
3、屬性定義
(1)定義屬性的參數(shù)順序排序:原子性、讀寫、內(nèi)存管理。比如:@property (nonatomic, readwrite, copy) NSString *nameString;
(2)BOOL類型的屬性,需要為其getter方法帶is前綴。getter方法放在內(nèi)存管理限定符前面,比如:@property (nonatomic, readonly, getter=isEditable, assign) BOOL editable;
4、實(shí)例變量名
(3)下劃線開頭
(2)遵循小駝峰命名法、避免縮寫。
(3)后綴體現(xiàn)屬性的數(shù)據(jù)類型。比如:_orderPriceLabel、_orderLimitsArray。
5、公有方法名
(1)遵循小駝峰命名法、避免縮寫。
(2)不要使用“and”這個(gè)詞,它不應(yīng)該用來闡明有多個(gè)參數(shù)。
6、私有方法名
(1)遵循小駝峰命名法、避免縮寫。
(2)直接父類是Cocoa框架:p_開頭。
(3)直接父類是其他框架:以自己一貫的前綴(小寫)+下劃線開頭或者wsf_。比如:abc_、wsf_。
7、純C函數(shù)
(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)枚舉對(duì)象名:WSF+枚舉范圍概括名+Type。比如:WSFAlipayResultCodeType
(4)枚舉種類名:WSF+枚舉范圍概括名+Type_某種情況名。比如:WSFAlipayResultCodeType_success。
10、協(xié)議名
(1)遵循大駝峰命名法、避免縮寫。
(2)代理協(xié)議:類名+Delegate。比如:WSFOrderListChangedDelegate。
(3)數(shù)據(jù)源協(xié)議:類名+DataSource。比如:WSFOrderListDataSource。
(4)普通協(xié)議:類名+Protocol。比如:WSFOrderListVCProtocol。
五、新建【分類】
1、分類名
(1)類名+標(biāo)識(shí)前綴+擴(kuò)展標(biāo)識(shí)。
(2)遵循大駝峰命名法、避免縮寫。
(3)WSF或者自己一貫使用前綴(大寫)+下劃線為前綴。比如:NSString (WSF_HTTPManager)、NSString(ABC_HTTPManager)。
2、方法名
(1)遵循小駝峰命名法、避免縮寫。
(2)wsf或者自己一貫使用前綴(小寫)+下劃線為前綴。比如:- (void)wsf_urlEncodedString;、- (void)abc_urlEncodedString;
六、新建【協(xié)議】
1、協(xié)議名
(1)遵循大駝峰命名法、避免縮寫。
2、方法名
(1)遵循小駝峰命名法、避免縮寫。
(2)如果是代理協(xié)議,以發(fā)送代理的對(duì)象類名作為代理方法名的開始(去掉類名的前綴,并且遵循小駝峰命名法)。
七、新建【第三方庫(kù)的封裝】
(1)手動(dòng)管理:比如使用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)在聲明公開常量時(shí),也可以使用FOUNDATION_EXPORT替換extern。
3、常量名稱的常用命名方法:若常量局限于某“編譯單元”,也就是“實(shí)現(xiàn)文件”之內(nèi),則在前面加字母k;若常量在類之外可見,則通常以WSF+類名為前綴。
九、新建【通知】
1、按照公共常量方法處理。
2、以Notification為后綴。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
IOS如何使用CAShapeLayer實(shí)現(xiàn)復(fù)雜的View的遮罩效果
這篇文章主要為大家詳細(xì)介紹了IOS如何使用CAShapeLayer實(shí)現(xiàn)復(fù)雜的View的遮罩效果,感興趣的小伙伴們可以參考一下2016-03-03iOS自定義UIBarButtonItem的target和action示例代碼
這篇文章主要給大家介紹了關(guān)于iOS自定義UIBarButtonItem的target和action的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02iOS開發(fā)之路--微博OAuth授權(quán)_取得用戶授權(quán)的accessToken
本文是IOS開發(fā)之路系列文章的第二篇,講訴的內(nèi)容是如何使用微博OAuth授權(quán),并付源碼,然后詳細(xì)講解了取得用戶授權(quán)的accessToken,希望對(duì)大家有所幫助2014-08-08IOS開發(fā)之路--C語言基礎(chǔ)知識(shí)
當(dāng)前移動(dòng)開發(fā)的趨勢(shì)已經(jīng)勢(shì)不可擋,這個(gè)系列希望淺談一下個(gè)人對(duì)IOS開發(fā)的一些見解,今天我們從最基礎(chǔ)的C語言開始,C語言部分我將分成幾個(gè)章節(jié)去說,今天我們簡(jiǎn)單看一下C的一些基礎(chǔ)知識(shí),更高級(jí)的內(nèi)容我將放到后面的文章中。2014-08-08IOS 開發(fā)之UILabel 或者 UIButton加下劃線鏈接
這篇文章主要介紹了IOS 開發(fā)之UILabel 或者 UIButton加下劃線鏈接的相關(guān)資料,需要的朋友可以參考下2017-07-07