OC编码规范
一、命名規(guī)范
1.類:
(1)首字母大寫,后續(xù)單詞首字母大寫。
(2)類名末尾要包含此類的類型,比如RootView,RootViewController。
2.屬性
(1)屬性名稱首字母小寫,后續(xù)首字母大寫;
(2)使用@property,要保持必要的空格,如:@property?(nonatomic, strong);
(3)如果在@implementation內(nèi)聲明全局變量,則使用下劃線前綴,局部變量不需要使用下劃線前綴;
(4)禁止使用a、b、c這樣的變量命名,要見詞達(dá)意;
(5)屬性命名時(shí),要將屬性類型編寫到屬性名中,使讀者看到變量名即可知道這是個(gè)什么類型的變量,比如:usersDict,usersArray等。
3.方法:
(1)-或者+后加一空格;
(2)方法名首字母小寫,后續(xù)單詞首字母大寫;
(3)參數(shù)名首字母小寫,后續(xù)單詞首字母大寫;
(4)參數(shù)類型如果帶有*號,則參數(shù)類型和*號之間加一空格;
(5)如果方法太長、參數(shù)過多,可以換行冒號對齊,方法調(diào)用也一樣;
(6)非重寫系統(tǒng)方法時(shí),不要使用is、set和get前綴;
(7)可以使用 can,should,will等詞來協(xié)助表達(dá)存取方法的意思,但不要使用do和does;
(8)不可以省略關(guān)鍵詞;
(9)盡量讓方法的命名讀起來像一句完整的話,能夠傳達(dá)出方法的意思;
4.宏定義:
宏定義以k開頭,第二個(gè)字母大寫,后續(xù)單詞首字母大寫。
5.公共:
(1)單詞盡量通俗易懂,避免引起歧義,具體表述要和實(shí)際功能保持一致;
(2)除了廣為人知含義的縮寫,比如info、msg、UI、HTTP這類以外,盡量不要使用單詞縮寫,要寫全拼,不要擔(dān)心方法太長,清晰最重要。
二、每一行的最大長度
在 Xcode > Preferences > Text Editing > Page guide at column:中將最大行長設(shè)置為100,過長的一行代碼將會導(dǎo)致可讀性問題。
三、縮進(jìn)和大括號
1.統(tǒng)一使用四個(gè)空格作為縮進(jìn)。如果以Tab來進(jìn)行縮進(jìn)控制,請?jiān)?span style="line-height:normal; font-family:'Helvetica Neue'">Xcode中設(shè)置Tab縮進(jìn)為4個(gè)空格。
2.所有大括號另起一行。
3.在if判斷或者for循環(huán)中,就算僅有一行邏輯代碼,也不能省略大括號的使用。
四、注釋
1.注釋很重要,過多過少都不合適,不能沒有,也不能喧賓奪主。
2.變量、方法名前要加注釋加空行,不要使用后置注釋的方式。
3.方法內(nèi)部,按照邏輯步驟分塊,每塊添加注釋;
4.除了方法內(nèi)部第一條注釋以外,注釋上部保留一空行,避免代碼和注釋混為一片。
5.頭文件使用標(biāo)準(zhǔn)的多行注釋格式,實(shí)現(xiàn)文件中僅使用雙斜杠注釋即可。
6.注意注釋是為了讓別人看懂,而不是僅僅你自己。
五、使用統(tǒng)一前綴
1.一個(gè)項(xiàng)目內(nèi)根據(jù)實(shí)際意義定義前綴;
2.項(xiàng)目內(nèi)所有源文件、資源文件(包含圖片)統(tǒng)一使用前綴,避免項(xiàng)目間沖突;
3.源文件內(nèi)部的宏定義同樣需要使用統(tǒng)一前綴,如下;k +前綴 + 實(shí)際意義;
六、類頭文件編寫規(guī)范
1.宗旨:頭文件是寫給使用者看的,在滿足使用者需求的前提下,頭文件元素越少越好,將沒有必要讓使用者看到的元素放到實(shí)現(xiàn)文件中,這樣處理,能夠減少使用者的學(xué)習(xí)成本,而且減少使用錯(cuò)誤率。
2.頭文件內(nèi)容添加順序:
(1)版權(quán)注釋 (2)頭文件導(dǎo)入 (3)宏定義 (4)枚舉定義 (5)協(xié)議定義 (6)類定義開始 (7)類所屬變量定義 (8)類所屬方法定義 (9)類定義結(jié)束
3.各個(gè)內(nèi)容區(qū)之間都以一空行分割。避免代碼一大片混在一起。
4.如果方法太多,可以使用#pragma mark對代碼分區(qū)分塊,方便閱讀代碼。
七、類實(shí)現(xiàn)文件編寫規(guī)范
1.實(shí)現(xiàn)文件內(nèi)容添加順序
(1)版權(quán)注釋 (2)頭文件導(dǎo)入 (3)宏定義 (4)靜態(tài)變量定義 (5)枚舉定義 (6)類擴(kuò)展定義開始 (7)類擴(kuò)展的變量 (8)類擴(kuò)展的方法 (9)類擴(kuò)展結(jié)束 (10)類實(shí)現(xiàn)開始 (11)類實(shí)現(xiàn)方法 (12)類實(shí)現(xiàn)結(jié)束
2.各個(gè)內(nèi)容區(qū)之間都以一空行分割。避免代碼一大片混在一起。
3.類全局變量聲明方式:以@property方式添加到類擴(kuò)展定義中,不在@implementation中定義全局變量的方式。這樣處理可以統(tǒng)一使用self點(diǎn)操作,對于全局變量的辨認(rèn)度有大幅提高,
4.對于方法的封裝,有幾點(diǎn)規(guī)范:
(1)方法的單一職責(zé):單個(gè)方法的職責(zé)盡量單一,盡量抽離公共邏輯,方法盡量復(fù)用。
(2)方法實(shí)現(xiàn)行數(shù):一個(gè)方法的最大行數(shù)100行,如果一個(gè)方法的實(shí)現(xiàn)超過一百行,則說明需要進(jìn)行邏輯拆分了。
(3)方法和方法之間要有一空行分割。
5.要使用#pragma mark將各個(gè)方法按照邏輯功能分區(qū),公共方法單獨(dú)分區(qū)。方便閱讀和掌握代碼結(jié)構(gòu)。
八、#pragma mark格式
使用"#pragma mark -?內(nèi)容"方式,此行上下都要留空行。
九、Block編寫規(guī)范
1.除非必要,不要使用weakSelf。百分之九十九的情況不需要使用weakSelf,我們要自己維護(hù)好block的引用關(guān)系,讓block適時(shí)釋放。
2.跟之前大括號的規(guī)范一樣,block中的大括號也要另起一行,^保留在原行末尾。
3.如果 block過于龐大,應(yīng)該單獨(dú)聲明成一個(gè)變量來使用。
總結(jié)
- 上一篇: Sqlite3中replace语句用法详
- 下一篇: oracle中having作用,orac