iOS編碼規範(簡版)

來源:互聯網
上載者:User

標籤:軟體工程   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】命名遵循駝峰法命名規則。

說明:

  1. 小駝峰法:除第一個單詞之外,其他單字首大寫;
  2. 大駝峰法:把第一個單詞的首字母也大寫。
【規則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】方法命名遵循小駝峰法規則,建議遵守如下相關細則:
  1. 方法的名稱應全部使用有意義的單片語成,讀起來像一句完整的話,能讓人從名字就能知道方法的作用;
  2. set方法前需要添加set,get方法前不需要添加get;
  3. 常用的方法命名應該使用約定的動詞,如initWith、insert、remove、replace等;
  4. init方法應該遵循Apple命名規則,傳回型別使用 instancetype而不是id;
  5. 方法簽名中,應該在方法類型(-/+ 符號)之後有一個空格。在方法各個段之間應該也有一個空格。
【規則3-7】枚舉類型的類型和枚舉值命名推薦使用如下格式:
typedef NS_OPTIONS(NSInteger, MASAttribute) {    MASAttributeLeft = 1 << NSLayoutAttributeLeft,    MASAttributeRight = 1 << NSLayoutAttributeRight};
【規則3-8】圖片命名採用規則: 模組+功能+類型

說明:

  1. 模組可分為公用模組和私人模組,可自訂模組的縮寫,比如說公用模組的導覽列,可以定義縮寫為nav;
  2. 功能根據具體的用途劃分,比如說返回按鈕,功能可定位為back;
  3. 類型主要有幾類:如背景(bg),按鈕(btn)等。

綜上所述,如果是導覽列的返回按鈕,可命名為[email protected]。

4.注釋

【規則4-1】注釋建議統一使用VVDocument外掛程式。

【規則4-2】每個標頭檔必須添加註釋,用於對該類的功能做說明。

【規則4-3】標頭檔中定義的屬性和方法,必須添加註釋

說明:屬性的注釋建議在屬性後使用“//<!”添加。

【規則4-4】實現檔案中定義的 變數、屬性和自訂方法,必須添加註釋

【規則4-5】實現檔案中系統方法或系統代理程式,不強制添加註釋。

【規則4-6】實現檔案方法中,對功能段代碼添加註釋,比如說一個視圖的定義和屬性設定,那麼可以作為一個功能段添加註釋。

【規則4-7】枚舉類型、宏定義、結構體等建議添加註釋。

iOS編碼規範(簡版)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.