最近發現自己有乙個經驗主義的毛病,不太容易接受新的知識,這對從事技術研發的人來說不太合理,需要改之。
正文:通過讀寫大量**我有自己的一套程式設計思路和習慣,自認為自己的編碼習慣還是不錯的,**結構也算清晰,因為我一直以來都是**看的多寫的多,但是總結的比較少,知識經常不成體系。以後多花點時間把自己的經驗和學習知識加以總結一下吧,這樣有利於去指導新人,也更有利於加深自己的知識認知。今天就從**規範入手總結一下ios開發中好的編碼規範吧。我們在開發中看別人的**的時候經常會去抱怨至少內心裡罵娘,其實別人看你的**也許也在抱怨你,我更深刻的意識到:高手和新手有**規範水平的差異,高手與高手之間有變成思想的差異,新手之間就在模仿中就更加凌亂了。因此團隊開發一定要有很好的且統一的編碼規範,這樣才有利於團隊開發與快速維護。今天先寫第一篇:《ios開發(oc)中的命名規範》
命名原則
1.一般性原則:可讀性高(簡潔且清晰)和防止命名衝突(通過加字首來保證)。
objective-c 的命名通常都比較長, 名稱遵循駝峰式命名法. 乙個好的命名標準很簡單, 就是做到在開發者一看到名字時, 就能夠懂得它的含義和使用方法. 另外, 每個模組都要加上自己的字首, 字首在程式設計介面中非常重要, 可以區分軟體的功能範疇並防止不同檔案或者類之間命名發生衝突, 比如相簿模組(photogallery)的**都以pg作為字首: pgalbumviewcontroller, pgdatamanager.
**
點評
insertobject:atindex:
good
insert:at:
不清晰;要插⼊什麼?「at」表⽰示什麼?
removeobjectatindex:
good
removeobject:
不錯,因為⽅法是⽤用來移除作為引數的物件
remove:
不清晰;要移除什麼?
2.一致性
盡可能與
cocoa
程式設計接⼝命名保持一致。如果你不太確定某個命名的⼀致性,標頭檔案或參考文件中的範例,在使⽤多型方法的類中,命名的⼀致性⾮常重要。在不同類中實現相同功能的⽅法應該具有同的名稱。
**
點評
– (nsinteger)tag
在 nsview, nscell, nscontrol 中有定義
– (void)setstringvalue:(nsstring *)
在許多 cocoa classes 中都有定義
檔案的命名
檔案的副檔名應該如下: .h
c/c++/objective-c 的標頭檔案 .m
ojbective-c 實現檔案
.mmojbective-c++ 的實現檔案
.cc純 c++ 的實現檔案 .c
純 c 的實現檔案
類別的檔名應該包含被擴充套件的類名,如:
gtmnsstring+utils.h
或``gtmnstextview+autocomplete.h``。
類的命名
類名(以及類別、協議名)應首字母大寫,並以駝峰格式分割單詞。
1.類的字首
1)所有類名、列舉、結構、protocol定義時最好加乙個統一的標示符,可以是專案縮寫,或者個人專案的名稱縮寫,例如都加上全大寫的hoo(我的姓氏)作為字首
2)根據功能模組可以在給功能模組的類新增功能模組的名稱字首,如使用者中心的profileviewcontroller.可以命名為hooucprofileviewcontroller.
2.類的字尾
所有protocol定義時,都加上字尾delegate 。如,hoorefreshviewdelegate,表示refreshview的協議;
所有的控制器都加上controller,所有的通知名都加上notification。
類別命名
類名+標識+擴充套件(uiimageview +hp+web)
例:如果我們想要建立乙個基於uiimageview 的類別用於網路請求,我們應該把類別放到名字是uiimageview+hpweb.h的檔案裡。uiimageview為要擴充套件的類名,hp為專屬標識,web為擴充套件的功能。
方法命名
方法名應遵守小駝峰原則,首字母小寫,其他單詞首字母大寫,每個空格分割的名稱以動詞開頭。執行性的方法應該以動詞開頭,小寫字母開頭,返回性的方法應該以返回的內容開頭,但之前不要加get。 如:
12 3
- (void
)insertmodel:(id)model atindex:(nsuinteger)atindex;
- (instancetype)arraywitharray:(nsarray *)array;
列舉的命名
正宗的ios開發者當然要以objective-c的方式命名列舉,如: 1
2 34 5
6 7typedef ns_enum(nsinteger, uiviewanimationtransition) ;
屬性、變數命名
變數名使用小駝峰法, 使變數名盡量可以推測其用途屬性具有描述性。別一心想著少打幾個字母,讓你的**可以迅速被理解更加重要。每個屬性命名都加上型別字尾,如,按鈕就加上
button
字尾,模型就加上
model
字尾。
@property (nonatomic, strong) uibutton *submitbutton;
1)類成員變數名
成員變數用小駝峰法命名並字首下劃線,如:uibutton *_submitbutton;
2)區域性變數名
遵守小駝峰命名規則,如:nsinteger numcompletedconnections =3;
const常量
以小寫k
開頭,後面單詞首字母大寫,其餘小寫。如:
const
float
kmaxheigt =
100.0f;
如果是特殊含義的常量也建議加上字尾,如通知加上notification為字尾,如:
extern nsstring * const kloginsuccessnotification
資源檔案命名 (,本地化檔案)
這個資源命名方式,以功能為組織形式,是乙個很好的習慣,有利於檢視資源檔案。
原則:
iOS OC命名規範
正文 通過讀寫大量 我有自己的一套程式設計思路和習慣,自認為自己的編碼習慣還是不錯的,結構也算清晰,因為我一直以來都是 看的多寫的多,但是總結的比較少,知識經常不成體系。以後多花點時間把自己的經驗和學習知識加以總結一下吧,這樣有利於去指導新人,也更有利於加深自己的知識認知。今天就從 規範入手總結一下...
C語言之命名規範
一 關鍵字 c語言提供的有特殊含義的符號,共32個。在xcode中關鍵字全部高亮顯示,關鍵字全部都為小寫。如return int等。二 識別符號 定義 識別符號是程式設計師在程式中自定義的一些符號和名稱。關鍵字是系統自帶的,識別符號是自定義的。如函式的名稱等,用來區分各種事務。識別符號有一定的命名規...
命名規範 C 命名規範約定
命名規則約定 序 號描述示例 1類命名混合使用大小寫,首字母大寫 classname 2型別定義,包括列舉和typedef,混合使用大小寫,首字母大寫 typename 3區域性變數混合使用大小寫,且首字母小寫,名字與底層資料型別無關,且應該反映其所代表的事物 localvariable 4子程式引...