iOS 優(yōu)雅的命名

減少縮寫

命名縮寫只用于通用專業(yè)術(shù)語,如 URL歉甚,不可自創(chuàng)命名縮寫万细,如 Ctr、Msg纸泄。命名寧可長一些赖钞,也不要難于理解。

是否在看別人代碼時各種縮寫而不知其所以然聘裁?簡短的名字確實比較好仁烹,但不可濫用縮寫導(dǎo)致失去可讀性。

過程化

動作發(fā)生之前用 Will咧虎,發(fā)生之后用 Did卓缰,詢問是否發(fā)生用 Should。

每個處理都是有一定過程的砰诵,這個處理往往會產(chǎn)生一些通知和回調(diào)征唬,好的命名必須要明確當前過程中的步驟。命名這些通知和回調(diào)時最好提供發(fā)生前后兩個版本茁彭,如果發(fā)生前要回調(diào)確認总寒,請用 Should 命名該回調(diào),并返回一個 BOOL 值理肺。

名字空間

各種全局作用范圍的函數(shù)摄闸,常量,類妹萨,枚舉年枕,結(jié)構(gòu)等命名必須加命名前綴。

Objective-C中沒有C++那樣的名字空間概念乎完,也沒有Java包名的概念熏兄,隨著工程代碼的增加,難免會出現(xiàn)名字沖突树姨,因此全局作用范圍的名字必須唯一摩桶。比較經(jīng)典的做法就是加命名前綴。大多數(shù)人認為命名前綴只是在類的前面加幾個大寫字母帽揪,其實不僅僅如此硝清。

?類型(類、枚舉转晰、結(jié)構(gòu))命名前要加相關(guān)模塊前綴芦拿。

UIView 
NSString 
CGRect 

?常量命名要加相關(guān)類型名前綴砾肺。

UIApplicationDidFinishLaunchingNotification 
CGRectZero 

?函數(shù)命名要加相關(guān)類型名前綴。

CGRectMake 
CGPointMake 

?枚舉類型命名要加相關(guān)類名前綴防嗡,并且枚舉值命名要加枚舉類型前綴变汪。

typedef NS_ENUM(NSInteger, UIViewAnimationTransition) { 
    UIViewAnimationTransitionNone, 
    UIViewAnimationTransitionFlipFromLeft, 
    UIViewAnimationTransitionFlipFromRight, 
    UIViewAnimationTransitionCurlUp, 
    UIViewAnimationTransitionCurlDown, 
}; 

做到以上幾點幾乎可以做到名字不會沖突。

參數(shù)提示

方法命名時蚁趁,每個參數(shù)前要加參數(shù)的名稱提示裙盾。

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
- (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender 

對象命名

給一個帶修飾的對象命名時要采用修飾+類型的方式,而不是先指定其類型他嫡。

很多人喜歡把對象的類型放在對象的命名前面番官,從而來標識一個對象是什么類型,這很不符合Objective-C語言的特點钢属,容易引起歧義徘熔,比如一個 UILabel 對象:

titleLabel      //表示標題的label,是UIlabel對象 
labelTitle      //label的標題淆党?似乎是一個NSString酷师? 
 
confirmButton   //確認按鈕 
buttonConfirm   //不自然的命名,看上去像是按鈕點擊動作染乌。 

方法命名符合語法

大部分方法可以分成下面兩類山孔,而這兩類往往被亂用。它們是:
?要什么
?做什么

“要什么”表示取得某個對象荷憋,要以名詞作為方法的開頭台颠;“做什么”表示執(zhí)行某種操作,要以動詞作為方法開頭勒庄〈埃看看下面這個命名方式:

- (XXItem *)itemNamed:(NSString *)name           //Good. 意思清晰 
- (XXItem *)findItemWithName:(NSString *)name    //更像是一種操作,而不是返回一個對象实蔽。 

findItemWithName 這個命名表示一種操作荡碾,而無需返回對象,比如它可以用于設(shè)置類的內(nèi)部成員盐须,比如:

- (void)findItemWithName:(NSString *)name{ 
    ... 
    self.foundItem = xxx; 
    ... 
} 

get

“要什么”往往被胡亂命名為get開頭的方法玩荠。首先get是一個動詞漆腌,所以它還是“做什么”或者說“做的是要什么”贼邓。那么get方法不要用于返回對象,但它可用于參數(shù)中返回闷尿。

- (XXItem *)getItemAtIndex:(NSUInteger)index                  //Bad!! 不規(guī)范的命名 
- (XXItem *)itemAtIndex:(NSUInteger)index                     //Good, 命名清晰 
- (void)getItem:(XXItem **)outItem atIndex:(NSUInteger)index  //比較符合規(guī)范塑径,但第二種更好。 

可知性

回調(diào)時被調(diào)用者要知道其調(diào)用者

可以在回調(diào)方法中第一個參數(shù)中加上調(diào)用者:

- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
- (void)buttonTapped:(UIButton*)sender 

常量還是宏

全局常量不可使用宏定義
我們經(jīng)程罹撸看到一些用宏定義的通知统舀,關(guān)鍵字等匆骗。其實這么做是非常危險的,因為宏很可能被重定義誉简,而且引用不同的文件可能會導(dǎo)致宏的不同碉就,所以盡量使用const來定義常量。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末闷串,一起剝皮案震驚了整個濱河市瓮钥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌烹吵,老刑警劉巖碉熄,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異肋拔,居然都是意外死亡锈津,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進店門凉蜂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來幢妄,“玉大人,你說我怎么就攤上這事豁鲤∥食” “怎么了?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵爆存,是天一觀的道長蛉顽。 經(jīng)常有香客問我,道長先较,這世上最難降的妖魔是什么携冤? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮闲勺,結(jié)果婚禮上曾棕,老公的妹妹穿的比我還像新娘。我一直安慰自己菜循,他們只是感情好翘地,可當我...
    茶點故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著癌幕,像睡著了一般衙耕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上勺远,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天橙喘,我揣著相機與錄音,去河邊找鬼胶逢。 笑死厅瞎,一個胖子當著我的面吹牛饰潜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播和簸,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼彭雾,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了锁保?” 一聲冷哼從身側(cè)響起冠跷,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎身诺,沒想到半個月后蜜托,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡霉赡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年橄务,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片穴亏。...
    茶點故事閱讀 39,745評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡蜂挪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嗓化,到底是詐尸還是另有隱情棠涮,我是刑警寧澤,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布刺覆,位于F島的核電站严肪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏谦屑。R本人自食惡果不足惜驳糯,卻給世界環(huán)境...
    茶點故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望氢橙。 院中可真熱鬧酝枢,春花似錦、人聲如沸悍手。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽坦康。三九已至竣付,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間涝焙,已是汗流浹背卑笨。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留仑撞,地道東北人赤兴。 一個月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像隧哮,于是被迫代替她去往敵國和親桶良。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,652評論 2 354

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