iOS之命名規(guī)范+編碼規(guī)范

前言

遵守規(guī)范也是讓代碼更清晰明了蝴簇,易讀,易用匆帚,易維護熬词,可以更好的適應(yīng)團隊開發(fā)。自己看著也是賞心悅目吸重,何樂而不為呢互拾。

1.基本準則

1.1編寫清晰

簡單明了的命名最好,不要用單詞的簡寫晤锹,盡量用單詞的全稱摩幔。可以看看蘋果的API格式鞭铆,仿照蘋果的命名或衡,盡量用英文,而不是拼音车遂。

1.2一致性

比如方法名的功能類型的一致性封断,比如獲取某些數(shù)據(jù) - (NSString *)getName,- (NSString *)getAge 中的get舶担;或者設(shè)置數(shù)據(jù) - (void)setName坡疼,- (void)setAge 中的set。統(tǒng)一方法名可以讓人一看這方法就知道是干什么用的衣陶,提升開發(fā)效率柄瑰。

1.3駝峰原則

  • 大駝峰原則:每個單詞的首字母大寫(UserNameTextField)
  • 小駝峰原則:第一個單詞首字母小寫,其余都大寫(userNameTextField)

2.命名規(guī)范

2.1類命名

類的命名是采用大駝峰原則剪况,如
UserLoginViewController
在實際開發(fā)中教沾,一般會在類名前面加個前綴:
OYUserLoginViewController
加統(tǒng)一前綴方法如下圖:
設(shè)置完后,每次在創(chuàng)建類的時候會自動添加前綴译断。
User            →  用戶
Login           →  登陸
ViewController  →  控制器
這個類的用途就一目了然了

其他例子:OYUserModel授翻,OYTitleView,OYNetManager孙咪。堪唐。。

應(yīng)用級別的類名(需要在其他項目中用到的類)翎蹈,可以不使用前綴或者使用自定義前綴
即為:PhotoBrowser或者XXPhotoBrowser

2.2分類命名

UIView+OYFrame 或者 UIView+OYExtension
前者是對UIView這個類做的擴展别凤,OY是前綴烙如,F(xiàn)rame算是具體化功能,對Frame獲取猴伶。比較清晰。
后者也是對UIView這個類擴展,但是并沒有寫明具體功能,可以在里面添加關(guān)于UIView的很多擴展。具體功能可以在.h文件里注釋糠爬。文件較少易于管理。
二者的選擇看個人喜好了

2.3方法命名

方法的命名是采用小駝峰的原則举庶,如
- (XXModel *)modelWithDictionary:(NSDictionary *)dictionary;
此類命名可以模仿蘋果提供的API执隧,看見方法名大概可以猜出開是做什么的。注意參數(shù)名也是小駝峰式的户侥。
代理方法仿照蘋果API镀琉。

2.4變量命名

普通變量采用小駝峰原則,
NSInteger userCode;
成員變量要在前面需要加下劃線'_'
@interface ViewController () {

    NSString *_sex;
    NSString *_birthday;
    NSInteger _nameCount;
}
全局變量我一般在末尾加個下劃線'_'
NSInteger userCode_;

2.5常量命名

常量(宏蕊唐、枚舉屋摔、全局常量、局部常量等)
1. k + 大駝峰    kUserCode
2. 前綴 + 大駝峰 OYUserCode
3. 單詞大寫加'_'  USER_CODE

枚舉:下面是個我寫的啟動頁廣告點擊事件的枚舉替梨,可以參考下
typedef NS_ENUM(NSInteger, OYLaunchImageAdViewActionType) {
    OYLaunchImageAdViewActionTypeAd,                //點擊廣告
    OYLaunchImageAdViewActionTypeSkip,              //點擊跳過廣告
    OYLaunchImageAdViewActionTypeTimerOver,         //廣告定時器結(jié)束
};

2.6文件夾命名

創(chuàng)建文件夾最好創(chuàng)建實體文件夾钓试,找到工程目錄,創(chuàng)建相應(yīng)文件夾并拖入工程副瀑。
文件夾命名使用相應(yīng)模塊的英文弓熏,首字母要大寫。

分享下Xcode8的兩個注釋快捷鍵

  • command + / 所選行會被注釋掉
  • command + option + / 在方法名或變量名的所在行或上一行使用糠睡,會自動填充注釋段挽鞠,可輸入方法參數(shù)的意思或者作用。

3.編碼規(guī)范

  1. 刪除多余的空行
    1.1 所有的方法之間空一行
    1.2 所有的代碼塊之間空一行
  2. 刪除多余的注釋
    2.1 刪除不用的代碼
    2.2 刪除沒有意義的注釋
  3. 刪除多余的方法
    3.1 如果有方法一直不會用到狈孔,請刪除(除工具類)
    3.2 沒有執(zhí)行任何業(yè)務(wù)邏輯的方法信认,請刪除或給予注釋
  4. 刪除多余的資源或文件
  5. 添加必要的注釋
    5.1 所有 .h 文件中的property 需要給出清晰注釋,非必要變量請勿防止出現(xiàn)在 .h文件中
    5.2 比較大的代碼塊需要給出注釋
    5.3 所有自定義的方法需要給出注釋
    5.4 所有代碼中出現(xiàn)的阿拉伯?dāng)?shù)字需要給出注釋
    5.5 程序中出現(xiàn)加密/解密 邏輯的操作地方均抽,需要給出注釋說明過程(無論是系統(tǒng)還是自定義)
  6. 盡量少用大段打印狮杨,非必要可以注釋或刪除,盡量消除警告(不影響程序正常運行)
  7. 整體代碼風(fēng)格要統(tǒng)一
    7.1 代碼后的'{'不需要獨占一行
    7.2 運算邏輯符和變量之間空一格
    7.3 多用#pragma mark - xxx講方法分塊到忽,#pragma mark與下面的代碼之前不要空行
    7.4 遵循一般代碼規(guī)范,多模仿蘋果API

4.通用規(guī)范

1 下面所有規(guī)則對第三方類庫無約束
     * 所有類清寇、方法喘漏、屬性等命名,做到見名知意华烟,采用駝峰式命名規(guī)則
     * 根據(jù)資源類型或者所屬業(yè)務(wù)邏輯對項目資源進行分組翩迈,使得整個項目結(jié)構(gòu)清晰明了
     * 整個項目保持一種代碼書寫風(fēng)格(這個風(fēng)格由無錫團隊根據(jù)自己編碼習(xí)慣來定),讓你的代碼變的優(yōu)雅盔夜!
2. 命名規(guī)范
     * 所有類名稱以項目工程開頭命名负饲,eg:“XP”堤魁、“ZJG”、“SZ”
     * 針對不同視圖控制器返十,在末尾添加后綴妥泉,eg:
        UIViewController  后綴添加“ViewController”
        UIView 后綴添加“View”
        UIButton 后綴添加“Button”、“Btn”
        UILabel 后綴添加“Label"
3. 單頁代碼最好控制在800行以內(nèi)洞坑,每個方法最好不要超過100行盲链,過多建議對代碼進行重構(gòu)
4. 相同的邏輯方法定義避免在多個地方出現(xiàn),盡量將公用的類迟杂、方法抽取出來
5. 刪除未被使用的代碼刽沾,不要大片注釋未被使用的代碼,確定代碼不會使用排拷,請及時刪除
6. 對其他項目中copy過來的代碼侧漓,根據(jù)具體需要更新代碼風(fēng)格,及時刪除未被使用的代碼
7. 項目中所有Group或者文件名稱(圖片名字等)监氢,不要使用漢字命名布蔗,盡量使用英文命名,國內(nèi)特有名詞可以使用拼音忙菠。
8. 項目中所有Group都需要在項目目錄中存在一個真實的目錄何鸡,Group中的文件與真實目錄中文件一一對應(yīng)。
9. 請在項目中寫必要代碼的注釋
10. 請多使用 #pragma mark - Mark Name 對方法進行分組 eg:
     * #pragma mark - View lifeCycle
     * #pragma mark - View lifeTerm
     * #pragma mark - Init methods
     * #pragma mark - Action methods
     * #pragma mark - Common methods
     * #pragma mark - UIActionSheetDelegate
     * #pragma mark - UIImagePickerControllerDelegate
     * #pragma mark - UITableViewDelegate Methods
     * #pragma mark - UITableViewDataSource Methods
     * #pragma mark - UIScrollViewDelegate Methods
     * #pragma mark - UITextFieldDelegate Methods
     * #pragma mark - UITextViewDelegate Methods 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末牛欢,一起剝皮案震驚了整個濱河市骡男,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌傍睹,老刑警劉巖隔盛,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異拾稳,居然都是意外死亡吮炕,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門访得,熙熙樓的掌柜王于貴愁眉苦臉地迎上來龙亲,“玉大人,你說我怎么就攤上這事悍抑■” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵搜骡,是天一觀的道長拂盯。 經(jīng)常有香客問我,道長记靡,這世上最難降的妖魔是什么谈竿? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任团驱,我火速辦了婚禮,結(jié)果婚禮上空凸,老公的妹妹穿的比我還像新娘嚎花。我一直安慰自己,他們只是感情好劫恒,可當(dāng)我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布贩幻。 她就那樣靜靜地躺著,像睡著了一般两嘴。 火紅的嫁衣襯著肌膚如雪丛楚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天憔辫,我揣著相機與錄音趣些,去河邊找鬼。 笑死贰您,一個胖子當(dāng)著我的面吹牛坏平,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锦亦,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼舶替,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了杠园?” 一聲冷哼從身側(cè)響起顾瞪,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎抛蚁,沒想到半個月后陈醒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡瞧甩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年钉跷,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肚逸。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡爷辙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出朦促,到底是詐尸還是另有隱情犬钢,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布思灰,位于F島的核電站,受9級特大地震影響混滔,放射性物質(zhì)發(fā)生泄漏洒疚。R本人自食惡果不足惜歹颓,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望油湖。 院中可真熱鬧巍扛,春花似錦、人聲如沸乏德。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽喊括。三九已至胧瓜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間郑什,已是汗流浹背府喳。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蘑拯,地道東北人钝满。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像申窘,于是被迫代替她去往敵國和親弯蚜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容

  • iOS編程規(guī)范0規(guī)范 0.1前言 為??高產(chǎn)品代碼質(zhì)量,指導(dǎo)廣大軟件開發(fā)人員編寫出簡潔剃法、可維護碎捺、可靠、可 測試玄窝、高效...
    iOS行者閱讀 4,459評論 21 35
  • iOS開發(fā)規(guī)范 引子 在看下面之前牵寺,大家自我檢測一下自己寫的代碼是否規(guī)范,代碼風(fēng)格是否過于迥異閱讀困難恩脂?可以相互閱...
    BGDane閱讀 1,380評論 1 4
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理帽氓,服務(wù)發(fā)現(xiàn),斷路器俩块,智...
    卡卡羅2017閱讀 134,657評論 18 139
  • 1黎休、引言 數(shù)據(jù)庫設(shè)計過程中表、字段等的命名規(guī)范也算是設(shè)計規(guī)范的一部分玉凯,不過設(shè)計規(guī)范更多的是為了確保數(shù)據(jù)庫設(shè)計的合理...
    SnowflakeCloud閱讀 40,999評論 0 48
  • 柳暗花明又一村 睡夢中被一縷陽光刺醒 習(xí)慣性的打開手機 點開微信 發(fā)現(xiàn)幾天前沉底的文章 今天又莫名其妙的被選了上去...
    一一KK閱讀 429評論 1 0