十項(xiàng)經(jīng)典的技巧構(gòu)建完美SDK
譯文過(guò)去十年以來(lái),SDK的使用已經(jīng)成為開(kāi)發(fā)生命周期中的重要組成部分。事實(shí)上,其在產(chǎn)品中的應(yīng)用與集成已經(jīng)非常普遍。甚至對(duì)開(kāi)發(fā)者而言,了解框架知識(shí)的重要性已經(jīng)高于學(xué)習(xí)算法本身。
而在今天的文章中,我們將了解十項(xiàng)技巧,希望它們能幫助各位打造出***的SDK:
0. 了解現(xiàn)有成果
在動(dòng)手之前,我們首先需要了解競(jìng)爭(zhēng)對(duì)手或者其它企業(yè)是否已經(jīng)完成了各位預(yù)期的SDK方案。這類(lèi)方案可以作為很好的參考點(diǎn),大家不妨從中選取精華、摒棄糟粕。
1. 簡(jiǎn)單性
簡(jiǎn)單的代碼能夠確保成果的易用性。具體來(lái)講,代碼的交互方式越少越好,例如只提供一個(gè)接口類(lèi); 減少方法簽名,例如只保留少數(shù)輸入?yún)?shù)等等。除了初始化之外,一且SDK的使用方式都應(yīng)盡可能保持簡(jiǎn)單。要實(shí)現(xiàn)這一目標(biāo),大家可以提供默認(rèn)配置及默認(rèn)實(shí)現(xiàn)類(lèi),同時(shí)允許高級(jí)用戶(hù)對(duì)其加以修改。隱藏一切用戶(hù)不需要使用的類(lèi)與方法,即只在用戶(hù)需要時(shí)才開(kāi)放類(lèi)/方法,否則僅在本地或私有范圍內(nèi)使用。部分IDE能夠幫助大家自動(dòng)實(shí)現(xiàn)代碼檢測(cè)與冗余部分清除。說(shuō)明文檔:讓文檔盡可能易于理解,即提供充分的解釋表述但又要注意別啰里啰嗦。另外,內(nèi)嵌代碼示例也是很好的提示方式。
2. 保證易于上手
即保證用戶(hù)能夠在5分鐘以?xún)?nèi)學(xué)會(huì)使用代碼。這一點(diǎn)非常重要,特別是考慮到有時(shí)候用戶(hù)會(huì)評(píng)估我們的產(chǎn)品——如果無(wú)法輕松上手,他們很可能直接選擇放棄。
3. 保持簡(jiǎn)短
這部分要求對(duì)說(shuō)明文檔特別重要,但有時(shí)也會(huì)體現(xiàn)在用戶(hù)與SDK代碼的交互流程當(dāng)中。要在說(shuō)明文檔中實(shí)現(xiàn)簡(jiǎn)短效果,大家應(yīng)當(dāng)提供代碼示例、使用自解釋方法名稱(chēng)并提供默認(rèn)配置。
4. 整合
我們必須記住,用戶(hù)的開(kāi)發(fā)環(huán)境往往多種多樣。舉例來(lái)說(shuō),如果我們?cè)诰帉?xiě)一套Android庫(kù),則需要充分考慮要素整合:如果用戶(hù)使用Android Studio與gradle,則須提供aar artifact并將其發(fā)布至遠(yuǎn)程庫(kù); 如果用戶(hù)使用Eclipse,則需要提供變更AndroidManifest.xml所必需的jar文件以及SDK獨(dú)立eclipse項(xiàng)目。當(dāng)然,這部分工作無(wú)法一蹴而就,大家可以在項(xiàng)目推進(jìn)當(dāng)中聽(tīng)取意見(jiàn)并逐步納入更多整合元素。
5. 示例項(xiàng)目
在GitHub當(dāng)中創(chuàng)建基礎(chǔ)項(xiàng)目,用于模擬客戶(hù)使用SDK的過(guò)程。通過(guò)這種方式,我們能夠了解客戶(hù)如何利用產(chǎn)品滿足自身需求,又會(huì)提出哪些產(chǎn)品整合要求。如果大家打算展示某些高級(jí)用法,則應(yīng)建立另一獨(dú)立項(xiàng)目。一般來(lái)講,用戶(hù)會(huì)將其作為自己的主要說(shuō)明文檔來(lái)源,因此請(qǐng)?zhí)峁﹥?nèi)嵌注釋并盡可能以自解釋方式編寫(xiě)代碼。
6. 概述
在說(shuō)明文檔或者README當(dāng)中提供關(guān)于解決方案的總體概述。在這里,我通常會(huì)提供一個(gè)示例用例以解釋SDK的常規(guī)使用情況。如果可以,不妨提供簡(jiǎn)單的圖表或者圖例,從而幫助那些沒(méi)時(shí)間逐行閱讀文本的用戶(hù)快速掌握其使用方法。
7. 快速開(kāi)始
使用SDK領(lǐng)域中被廣泛接受的慣例性方法。我們應(yīng)盡可能使用常規(guī)的負(fù)載、構(gòu)建模式及其它設(shè)計(jì)思路,從而保證默認(rèn)配置能夠有效幫助用戶(hù)快速開(kāi)始項(xiàng)目使用。
8. 默認(rèn)配置
良好的默認(rèn)配置能夠有效提升代碼簡(jiǎn)單性并降低調(diào)整難度。我們提供的默認(rèn)機(jī)制(無(wú)論是配置方案還是實(shí)現(xiàn)方式)都應(yīng)適用于大部分SDK目標(biāo)用戶(hù)。大家可以提供多種重載方法,其中最簡(jiǎn)單的簽名會(huì)默認(rèn)調(diào)用更為復(fù)雜的方法簽名。
9. 發(fā)布
- 提供不可編輯的脫機(jī)格式——PDF。我們能夠輕松創(chuàng)建這類(lèi)說(shuō)明資料并將其保存在Dropbox上以備隨時(shí)更新。
- 在線——建立企業(yè)網(wǎng)站。這是最理想的方式,但其更新工作也可能給IT團(tuán)隊(duì)帶來(lái)一定負(fù)擔(dān)。
希望這些技巧能夠幫助大家構(gòu)建起自己的***SDK!
原文標(biāo)題:10 Tips on How to Build the Perfect SDK
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】