相比于APP的開發(fā)叠必,SDK的開發(fā)有些不同:
1、拓展性要求更高:SDK需要對外提供接口妹窖,無論是迭代還是重構(gòu)澜躺,原有接口都不能變更凑术,否則會對SDK使用者帶來兼容写穴、維護成本琼富;
2、質(zhì)量要求更高:SDK可能在各種業(yè)務場景中使用蜓萄,使用情況復雜俄讹;且如果有質(zhì)量問題時每個SDK使用方都需要升級,所以發(fā)布的SDK版本一定要是高質(zhì)量的版本绕德;
3患膛、測試難度更大:SDK很多時候只有接口沒有界面,對于測試來講既是黑盒耻蛇、又不確定SDK使用者怎么調(diào)用踪蹬,即使測試時沒問題也很難保證在業(yè)務中使用時沒有問題。
??對于1已有成熟的解決方案臣咖,有新需求或需求變動跃捣,新增接口并讓原接口過時即可。下面結(jié)合我實際負責SDK開發(fā)的經(jīng)歷夺蛇,談一談2和3疚漆,即如何保障SDK的開發(fā)質(zhì)量:
一、評審環(huán)節(jié):
??評審環(huán)節(jié)最為重要的是在滿足當前需求之外刁赦,還要基于對業(yè)務的理解娶聘,洞察可能的潛在需求,基于對需求的理解和洞察甚脉,設計接口和丸升。盡可能在SDK設計時就考慮到需求可能的變更情況,設計出職責明確牺氨、兼容性強的接口狡耻,避免因為需求變更導致接口的改動。比如下載接口的設計猴凹,一次可以添加一個下載任務夷狰,也可能有一次性添加多個下載任務的需求。
??除此之外郊霎,還需要為SDK制定版本號(在代碼中寫明版本沼头,而非在SDK名字上體現(xiàn))和一套錯誤碼,便于在SDK出問題時能夠快速定位問題歹篓。
??SDK設計完成后瘫证,需要要求APP需求方的開發(fā)人員一起參與評審,主要評審接口設計的合理性和易用性庄撮,確保達成一致后才進入開發(fā)環(huán)節(jié)背捌。
二、開發(fā)環(huán)節(jié):
??因為SDK的特殊性洞斯,質(zhì)量保障不能強依賴測試毡庆,既然SDK不好測,那就想辦法讓開發(fā)出來的SDK質(zhì)量有保障烙如、通過開發(fā)端提供測試工具簡化測試的工作么抗。
??靠譜的解決方案是為SDK開發(fā)Demo,Demo中演示每個接口的調(diào)用方式亚铁,并提供測試模式蝇刀,用于對接口的性能、安全性等測試徘溢。通過Demo既引導了APP開發(fā)人員盡可能按預期的方式使用接口吞琐,又為測試人員提供了方便,通過測試模式可以對各接口做性能然爆、安全等專項站粟,專項驗證SDK的質(zhì)量。如果SDK存在需要長時間運行等可能導致功耗問題的情況曾雕,需要通過多渠道打包生成多個Demo奴烙,通過專項驗證同時運行對整機性能的影響。
??為了便于開發(fā)者使用剖张,為SDK寫ReadMe切诀,介紹接口的使用方法、使用流程是必不可少的搔弄。
三趾牧、發(fā)布環(huán)節(jié):
??SDK的發(fā)布可以借鑒APP的發(fā)布流程,先和需求方拿一個APP聯(lián)調(diào)肯污,集成進APP灰度驗證SDK的質(zhì)量翘单,如果質(zhì)量OK再全量。
四蹦渣、維護環(huán)節(jié):
??為SDK設計一套單獨的異常采集方案哄芜,將SDK和APP的異常分開,避免因為SDK集成到APP中無法單獨統(tǒng)計SDK的異常率柬唯,通過統(tǒng)計SDK的異常率來衡量SDK的質(zhì)量认臊。
??剛開始接手SDK開發(fā)時情況是比較糟糕的,發(fā)布SDK版本時總是心驚膽戰(zhàn)锄奢,市場反饋有APP的問題時失晴,經(jīng)常聽到APP開發(fā)人員反饋這是SDK的問題剧腻。通過將上面的做法融入到流程和規(guī)范中,并不定期抽查團隊成員對流程和規(guī)范的遵守情況約束團隊遵守規(guī)范⊥科ǎ現(xiàn)在幾乎很難遇到之前那樣的情況了书在,一年下來因為SDK導致的嚴重問題最多有1-2次,SDK的異常率遠低于APP的異常率拆又。
??上述的總結(jié)只講了在開發(fā)過程中有真正實踐過的方法儒旬,并非完美方案,像通過單元測試保障SDK接口的穩(wěn)定性帖族、通過熱更新實現(xiàn)SDK補丁的動態(tài)更新都是有效保障SDK開發(fā)質(zhì)量的方法栈源。
下面是對這篇文章的總結(jié):
1、SDK相比于APP竖般,需要更為注重開發(fā)質(zhì)量甚垦;
2、保障SDK開發(fā)質(zhì)量的方法有:為SDK開發(fā)測試模式涣雕、輸出SDK使用Demo和說明文檔制轰、對SDK做專項測試、先灰度再全量胞谭、對SDK做異常采集垃杖;
3、SDK的開發(fā)丈屹,永遠是質(zhì)量第一调俘、效率第二。嚴格遵守流程和規(guī)范旺垒,只有這樣彩库,才不會陷入被使用方質(zhì)疑的境況,才有機會始終以實現(xiàn)新增需求而非維護為主先蒋。