iOS 小談一敘

一、規(guī)范

1) git 提交規(guī)范
# 提交管理
Type(scope) : # module name #  subject

例如:
        fix:  # 租賃合同 # 修改xxx

Type 必須填寫

* feat: 新功能
* fix:修復bug
* Docs:文檔改變
* Refactor: 某個已有功能重構(gòu)
* Perf: 性能優(yōu)化
* Test: 增加測試
* build:改變build工具
* revert:撤銷上一次commit
* merge:合并代碼 

subject:commit 簡單的說明,必須填寫

適當使用git merge / git rebase

2) 代碼規(guī)范
# 1、命名規(guī)范
    類名、協(xié)議名、變量名、方法名、常量命令、宏定義命名、通知名
    盡量使用 用前綴避免命名空間沖突

# 2、mark 標記類型

#pragma mark - lifeCycle
#pragma mark - public
#pragma mark - request
#pragma mark - delegate
#pragma mark - privates
#pragma mark - lazy

# 3、數(shù)據(jù)源顯示UI
    
    比如自定義cell、view
    在需要加載數(shù)據(jù),顯示UI的時候,統(tǒng)一用一個方法傳遞數(shù)據(jù)源,這個方法可以統(tǒng)一用 Protocol 來處理,特殊的單獨處理
    - (void)showData:(id)data;

# 4、變量的訪問
    
    對象內(nèi)部盡量直接訪問實例變量,因為速度較快;

    編譯器所生成的代碼會直接訪問保存對象實例變量的那塊內(nèi)存
    不會調(diào)用“set方法”,繞過了屬性所定義的內(nèi)存管理語義
    
    一般寫入實例變量,通過set 方法

# 5、注釋
    供外部使用的,請使用文檔注釋

# 6、多用類型常量,少使用宏定義
    宏定義增加編譯時間
    沒有類型檢查,編譯通常不會報錯,所以錯誤異常很難定位


# 7、頭文件導入
    
    盡量使用向前聲明的方法 @class xxx  

    降低耦合、減少編譯時間
        盡量在extension 里面 設(shè)置private屬性,在.h文件中,設(shè)置public屬性

# 8、資源圖片
       改好英文名字之后才放入到工程里面(不能直接去工程里面改名字,因為圖片的名字沒有改變)

# 9、說明文件
    
    為了提高效率,人員之間的對接,應(yīng)該有一個說明文檔,可以通過網(wǎng)頁查看,記錄相關(guān)的事宜   
        
        1、規(guī)范文檔
        2、第三方庫的功能類型以及的使用的事例(防止同一個功能,存在很多版本)
        3、多搞交流會,提高技術(shù)

注意

  • 改動別人模塊的代碼,一定要 模塊負責人 代碼review一下

二、六大原則


中心思想: 高內(nèi)聚 低耦合


1. 單一職責原則
    一個類或者一個方法只負責一項職責,盡量做到類的只有一個行為原因引起變化 

2. 里氏替換原則
    子類可以擴展父類的功能,但不能改變原有父類的功能;
    父類出現(xiàn)的地方,子類都可以出現(xiàn),并且將父類對象替換子類對象的時候,程序不會拋出任何異常或錯誤
    因此:盡量不要重載或者重寫父類的方法(抽象方法除外),因為這樣會改變父類的原有的行為


3. 依賴倒置原則
    面向接口編程,高層模塊不應(yīng)該依賴低層模塊(原子操作的模塊),兩者都應(yīng)該依賴于抽象。
    接口(也可以是抽象類)就是一種抽象,只要不修改接口聲明,大家可以放心大膽調(diào)用,至于接口的內(nèi)部實現(xiàn)則無需關(guān)心,可以隨便重構(gòu)。
    這里,接口就是抽象,而接口的實現(xiàn)就是細節(jié)

4. 接口隔離
    客戶端不應(yīng)該依賴它不需要的接口,一個類對另一個類的依賴應(yīng)該建立在最小的接口上

5. 迪米特原則
    最少知道原則,盡量降低類與類之間的耦合;
    如果兩個類不必彼此直接通信,那么這兩個類就不應(yīng)當發(fā)生直接的相互作用。
    如果其中的一個類需要調(diào)用另一個類的某一個方法的話,可以通過第三者轉(zhuǎn)發(fā)這個調(diào)用。

6. 開閉原則
    對擴展開放,對修改關(guān)閉;是指設(shè)計的時候,盡量讓設(shè)計的類做好后就不再修改,如果有新的需求,通過新加類的方式來滿足,而不去修改現(xiàn)有的類(代碼)

注意

  • 繼承不要濫用

三、架構(gòu)

1) 業(yè)務(wù)模塊

首頁 、客戶、消息、 我的

細分:
委托、租賃合同、營銷工具、后臺管理、IM、ReactNative、Q聊、實勘、拓房、鑰匙管理、跟進、個人中心、
掃碼登錄

2) 功能模塊

細分:

  • 營銷工具【分享、電話、短信】
  • 路由:
  • 網(wǎng)絡(luò)框架
  • 下載功能
  • 異常防護
  • 埋點
  • Js交互、RN與原生交互
  • 性能監(jiān)聽
  • 播放視頻、瀏覽圖片、語音
  • 上傳視頻、圖片
  • 工具類:
  • Q聊
  • 推送
  • 二維碼功能
3) base 模塊

公共UI組件類
彈框類組件:alertView、sheetView、toastview、popoverView
分段類組件: segmentView、flitterView、MenuView
搜索框組件:
時間選擇器:

分類:
foundation框架類: NSString、NSDate、NSDictionary、NSArray…
UIKit框架類:UIView、UIButton、UITextField…

4) 架構(gòu)

1. 架構(gòu)圖

架構(gòu)圖.png

2. 私有pod 庫

  • 利用pod 私有庫封裝base 層
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 上一篇中我們對組件化的準備工作做了介紹,這篇文章我們以SXNews為例進行組件化,Demo地址在這里,殼工程...
    CodeWeaver閱讀 9,668評論 26 46
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭,有人歡樂有人憂愁,有人驚喜有人失落,有的覺得收獲滿滿有...
    陌忘宇閱讀 8,879評論 28 54
  • 信任包括信任自己和信任他人 很多時候,很多事情,失敗、遺憾、錯過,源于不自信,不信任他人 覺得自己做不成,別人做不...
    吳氵晃閱讀 6,390評論 4 8
  • 步驟:發(fā)微博01-導航欄內(nèi)容 -> 發(fā)微博02-自定義TextView -> 發(fā)微博03-完善TextView和...
    dibadalu閱讀 3,429評論 1 3
  • 回這一趟老家,心里多了兩個疙瘩。第一是堂姐現(xiàn)在談了一個有婦之夫,在她的語言中感覺,她不打算跟他有太長遠的計劃,這讓...
    安九閱讀 3,657評論 2 4

友情鏈接更多精彩內(nèi)容