SDK 開發(fā)規(guī)范

最近公司在做SDK,這里總結(jié)下SDK開發(fā)規(guī)范

開發(fā)規(guī)范

  • API功能單一,減少類似enum的入?yún)⒃O計
  • 線程處理, 如非必要不要使用應用主線程,不能長時間占用,SDK內(nèi)應有一個專門線程處理SDK 相關操作
  • 盡量減少全局回調(diào)
  • 提供異常情況回調(diào)和輸出方便接入放定位,錯誤回調(diào)采用code+msg組合
  • 能不用單例的就盡量少的使用
  • 對iOS 來說能不用xib 就不用,能不用通知就不用通知

命名規(guī)范

  • 接口名稱,參數(shù)命名清晰規(guī)范,參數(shù)盡可能少,所有傳入?yún)?shù)要做好校驗,禁止使用拼音和中文
  • 類名前綴和包命名縮寫要一致
  • 函數(shù)命名遵循共性,不要出現(xiàn)歧義或者違背大家的共識
  • 所有資源命名前綴:mEft_xxx_ 工程命名:eft-sdk-xxx-android or eft-sdk-xxx-ios
  • demo 項目命名:demo,包名:cn.eft.sdk.xxx.demo sdk
  • 項目命名:mEftXxxSDK,包名:cn.etf.sdk.xxx

注釋規(guī)范

  • 代碼注釋規(guī)范清楚
  • 接口注釋要完善
  • 注釋形式統(tǒng)一
  • 注釋內(nèi)容準確簡潔

日志設計

  • 核心處理log日志可以配置
  • 可控制打印log級別
  • 主流程,異常日志存儲方便定位問題

第三方庫依賴處理原則

  • 能用系統(tǒng)的API解決的,就不要使用第三方,減少對其他庫的依賴;
  • 最小可用性原則,即用最少的代碼,如無必要勿增實體;
  • 最少依賴性原則,即用最低限度的外部依賴,如無必要勿增依賴
  • SDK開發(fā)中,需要盡量避免依賴第三方庫以免引起不必要的沖突
  • 如果確實因為項目需要,要引入一些開源庫,可以通過源碼集成的形式引入,再更改一下包名(類名),避免集成沖突。

版本管理規(guī)范

  • 使用三位版本號,每位版本號最高三位數(shù)字如:1.0.12
  • 版本號遞增原則:
  • 第三位:bug修復,極小的變更
  • 第二位:一般的功能迭代
  • 第一位:項目重構(gòu),功能變更較大,需團隊共同確定

打包原則

  • 對外提供的包不能包含任何編譯生成的文件和目錄,如安卓的build目錄 iOS XcodeData
  • 使用腳本一鍵打包,提升打包效率,降低手動打包帶來的出錯率
  • 打包腳本需與項目其他腳本分離,盡量職責單一, 包中盡量提供示例工程, 示例工程必須讓開發(fā)者以最低的成本運行起來
  • 打包完成的SDK,集成到示例工程,要進過QA測試才能放給用戶

通用規(guī)范 (注意事項)

  • 接口隔離 (小而 精簡)
  • 接口易用性 (對外接口易用,易懂)
  • 向后兼容 (升級SDK兼容)
  • 配套有完整且詳細的使用說明文檔和版本更新說明
  • AppId 和 AppKey的分配,用于區(qū)分集成sdk的是哪一個公司,做好權(quán)限控制
  • SDK的 sdkVersion要盡量小,最好不要超過使用SDK的項目的Version(支持的系統(tǒng))
  • 盡量不要引用第三方庫,要盡量使用系統(tǒng)自帶的功能,然后在其基礎上進行封裝。
  • SDK需要有較強的容錯性,增減穩(wěn)定,增大力度對于SDK內(nèi)部異常進行捕獲。
  • SDK內(nèi)部對于關鍵路徑要有詳細的Log記錄,便于后期排查問題。
  • 各個庫之間要做到高內(nèi)聚,低耦合
  • 核心代碼的安全性
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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

  • 入職以來一直負責SDK的開發(fā)工作。從第一個版本一直到現(xiàn)在,期間遇到了不少問題,踩過不少坑,也對接過不少集團內(nèi)部SD...
    JamesYu閱讀 28,850評論 50 176
  • 藍師傅最近幾個月非常忙,很久沒更新文章了,慚愧慚愧,距離上一篇技術(shù)文章已經(jīng)是半年前了~ 前幾個月負責游戲SDK的開...
    藍師傅_Android閱讀 2,373評論 1 15
  • SDK(Software Development Kit)是軟件開發(fā)工具包的意思,一般我們將一部分功能單獨封裝成一...
    散楓閱讀 1,956評論 0 2
  • sdk接口設計sdk接口設計應該遵循單一職責原則、迪米特(最少了解)法則、開閉原則(對擴展開發(fā)、對修改關閉)等。1...
    Joey_Zjy閱讀 519評論 0 1
  • 推薦指數(shù): 6.0 書籍主旨關鍵詞:特權(quán)、焦點、注意力、語言聯(lián)想、情景聯(lián)想 觀點: 1.統(tǒng)計學現(xiàn)在叫數(shù)據(jù)分析,社會...
    Jenaral閱讀 5,974評論 0 5

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