標籤:軟體工程 attribute int 標準 無法 pre family button set
1. 總體
指導原則【規則1-1】首先是為人編寫程式,其次才是電腦。
說明:這是軟體開發的基本要點,軟體的生命週期貫穿產品的開發、測試、生產、使用者使用、版本升級和後期維護等長期過程,只有易讀、易維護的軟體代碼才具有生命力,所以提倡寫代碼之前多思考,特別是邏輯複雜或者技術痛點較高的地方,個人思考不清楚的,可以和團隊成員進行溝通。
【規則1-2】保持代碼的簡明清晰,避免過分的編程技巧。
說明:簡單是最美。保持代碼的簡單化是軟體工程化的基本要求。不要過分追求技巧,否則會降低程式的可讀性。
【規則1-3】編程時首先達到正確性,其次考慮效率。
說明:編程首先考慮的是滿足正確性、健壯性、可維護性、可移植性等品質因素,最後才考慮程式的效率和資源佔用。
【規則1-4】編寫代碼時要考慮到代碼的可測試性。
說明:不可以測試的代碼是無法保障品質的,開發人員要牢記這一點來設計、編碼。實現設計功能的同時,要提供可以測試、驗證的方法。
【規則1-5】函數(方法)是為一特定功能而編寫,不是萬能工具箱。
說明:方法是一個處理單元,是有特定功能的,所以應該很好地規劃方法,不能是所有東西都放在一個方法裡實現,也不能把所有東西都放在一個類裡面實現(比如說VC)。
【規則1-6】
鼓勵多加註釋。
【規則1-7】建議少用XIB,特別是XIB中的約束。
2.控制器規範【規則2-1】不需要對外提供的方法和屬性,
不得在標頭檔(.h)中進行定義。
【規則2-2】標頭檔中對外提供的API,建議以方法參數的方式,不建議採用屬性的方式。
說明:這是因為採用屬性的方式,如果該控制器調用地方較多,每個地方的參數不一樣,會造成調用方屬性賦值的困惑。
【規則2-3】不建議在控制器中直接調用網路請求(HDFNet)和進行資料處理。
【規則2-4】控制器一般承載較多的邏輯處理,因此對控制器的檔案結構做如下規範:
檔案頭#import (依次為標準庫標頭檔、非標準庫標頭檔)宏定義全域資料類型類定義
檔案頭#import (依次為標準庫標頭檔、非標準庫標頭檔) 檔案內部使用的宏檔案內部使用的資料類型全域變數本地變數(即靜態全域變數)類的實現#pragma mark - LifeCycle#pragma mark - Private Method#pragma mark -- UI#pragma mark -- 資料載入和解析#pragma mark - Event#pragma mark - Delegate#pragma mark -- UITableViewDataSource#pragma mark -- UITableViewDelegate#pragma mark - Getter/Setter
【規則2-5】空行。【規則2-4】中的每一項內容之間空一行,方法之間空一行,重要的程式碼片段之間空一行。3.命名規範【規則3-1】所有檔案命名需要添加首碼。【規則3-2】業務模組
建議自訂一個首碼,比如家庭醫生,可以加首碼HDFFamilyDoctor。【規則3-3】命名遵循駝峰法命名規則。
說明:
- 小駝峰法:除第一個單詞之外,其他單字首大寫;
- 大駝峰法:把第一個單詞的首字母也大寫。
【規則3-4】類命名遵循大駝峰法規則:
首碼+描述+類型。
說明:以家庭醫生服務頁為例,首碼為HDFFamilyDoctor,描述為Service,類型為ViewController,那麼該類命名為HDFFamilyDoctorServiceViewController。
關於類型,主要有如下幾類:
| 描述 |
類型 |
| 控制器 |
ViewController |
| 表格行 |
Cell |
| 視圖 |
View |
| 模型 |
Model |
| 資料請求 |
DataHelper |
【規則3-5】屬性命名遵循小駝峰法規則:
描述+類型簡寫
說明:比如定義一個姓名的標籤,描述為name,類型為Label,命名為nameLabel。
關於類型縮寫,主要有如下兩大類:
一、Foundation類型
Foundation類型 |
縮寫 |
| NSString |
String |
| Integer/int |
Int |
| BOOL/Boolean |
Bool |
| char |
Char |
| NSArray |
Array |
| NSDictionary |
Dic |
| NSDate |
Date |
| NSObject |
Obj |
二、UIKit類型
| UIKit類型 |
簡寫 |
UIKit類型 |
簡寫 |
| UILabel |
Label |
UIButton |
Btn |
| UITextView |
TextView |
UITextField |
TextField |
| UITableView |
TableView |
UIImageVIew |
ImageView |
| UIWebView |
WebView |
UIScrollView |
ScrollView |
| UIViewController |
VC |
UITableViewCell |
Cell |
【規則3-6】方法命名遵循小駝峰法規則,建議遵守如下相關細則:
- 方法的名稱應全部使用有意義的單片語成,讀起來像一句完整的話,能讓人從名字就能知道方法的作用;
- set方法前需要添加set,get方法前不需要添加get;
- 常用的方法命名應該使用約定的動詞,如initWith、insert、remove、replace等;
- init方法應該遵循Apple命名規則,傳回型別使用 instancetype而不是id;
- 方法簽名中,應該在方法類型(-/+ 符號)之後有一個空格。在方法各個段之間應該也有一個空格。
【規則3-7】枚舉類型的類型和枚舉值命名推薦使用如下格式:
typedef NS_OPTIONS(NSInteger, MASAttribute) { MASAttributeLeft = 1 << NSLayoutAttributeLeft, MASAttributeRight = 1 << NSLayoutAttributeRight};【規則3-8】圖片命名採用規則:
模組+功能+類型
說明:
- 模組可分為公用模組和私人模組,可自訂模組的縮寫,比如說公用模組的導覽列,可以定義縮寫為nav;
- 功能根據具體的用途劃分,比如說返回按鈕,功能可定位為back;
- 類型主要有幾類:如背景(bg),按鈕(btn)等。
綜上所述,如果是導覽列的返回按鈕,可命名為[email protected]。
4.注釋
【規則4-1】注釋建議統一使用VVDocument外掛程式。
【規則4-2】每個標頭檔必須添加註釋,用於對該類的功能做說明。
【規則4-3】標頭檔中定義的屬性和方法,必須添加註釋。
說明:屬性的注釋建議在屬性後使用“//<!”添加。
【規則4-4】實現檔案中定義的
變數、屬性和自訂方法,必須添加註釋。
【規則4-5】實現檔案中系統方法或系統代理程式,不強制添加註釋。
【規則4-6】實現檔案方法中,對功能段代碼添加註釋,比如說一個視圖的定義和屬性設定,那麼可以作為一個功能段添加註釋。
【規則4-7】枚舉類型、宏定義、結構體等建議添加註釋。
iOS編碼規範(簡版)