一種構(gòu)建開發(fā)者平臺的金字塔模型
譯文【51CTO.com快譯】您是否聽說過“開發(fā)者金字塔”的概念?它是一種簡單的結(jié)構(gòu),代表著開發(fā)者將如何學(xué)習(xí)與使用目標(biāo)平臺,社區(qū)將如何在該平臺上成長,以及如何通過構(gòu)建各種程序,來提高開發(fā)者的水平,并讓社區(qū)更加成熟。在本文中,我們將逐步解構(gòu)開發(fā)者金字塔,以幫助您了解如何從零開始構(gòu)建新的金字塔,以及那些可用作改進(jìn)現(xiàn)有開發(fā)水平的診斷工具。
通常,開發(fā)者金字塔由三個(gè)部分組成。如下圖所示,每個(gè)部分都有著自己所服務(wù)的角色,以及支持該角色所需的基礎(chǔ)結(jié)構(gòu)。
其實(shí),金字塔對于開發(fā)人員來說是一個(gè)很好的隱喻,它暗示著金字塔只能從基礎(chǔ)結(jié)構(gòu)開始構(gòu)建。在下層尚未完成之前,您是無法直接到達(dá)金字塔頂端的。那么開發(fā)人員要想讓自己的程序達(dá)到頂端,就需要保證基礎(chǔ)的堅(jiān)固與廣泛。
支持學(xué)習(xí)者
在上文中,我們提到了為開發(fā)者社區(qū)中的學(xué)習(xí)者提供支持。此處的“學(xué)習(xí)者”不能被簡單地理解為“初學(xué)者”,而是那些在使用既有軟件產(chǎn)品進(jìn)行二次開發(fā)的整個(gè)過程中,意識到需要通過補(bǔ)充某些知識,來了解核心概念,進(jìn)而得出優(yōu)秀實(shí)踐,并提高軟件產(chǎn)品質(zhì)量的人員。
其實(shí)從本質(zhì)上說,開發(fā)人員是一些永不停止的學(xué)習(xí)者。無論是平臺上的新手、還是資深的用戶,無論是新手程序員、還是專家,無論是要學(xué)習(xí)新的知識、還是查缺補(bǔ)漏,他們對金字塔底層基礎(chǔ)的依賴性只會有增無減。
建立金字塔的基礎(chǔ)
下面我們來看看開發(fā)人員在目標(biāo)平臺上如何積累成功構(gòu)建的所需資源。
工具
無論是要去下載的工具包,還是使用基于云服務(wù)的平臺,開發(fā)人員都需要通過工具來幫助他們配置、管理和監(jiān)視自己所構(gòu)建的應(yīng)用程序。您可以有針對性地去收集如下領(lǐng)域的工具,以根據(jù)不同的應(yīng)用場景,按需實(shí)現(xiàn)其具體的功能:
- 用戶注冊
- 應(yīng)用注冊
- 密鑰和訪問管理
- 數(shù)據(jù)支持
- 調(diào)試與診斷工具(https://dzone.com/articles/how-to-debug-and-optimize-boolean-strings-tutorial)
- 分析工具
文檔和內(nèi)容
內(nèi)容是幾乎每一位開發(fā)人員程序的“命脈”。由于它是其編程思想的直接表達(dá),以便使用該系統(tǒng)的其他開發(fā)者了解與學(xué)習(xí),因此,它值得您花費(fèi)大量的時(shí)間和精力,去精心打磨。您可以從各種博客文章、視頻、書籍、網(wǎng)絡(luò)研討會等渠道來營銷自己的產(chǎn)品。其中,最值得您關(guān)注的一項(xiàng)核心資源是文檔。它通常分為三大類:
參考資料
如果您只能為軟件產(chǎn)品制作一份文檔的話,那一定是定義系統(tǒng)基本輸入和輸出的參考資料。此類資料的可讀性和參考性尤為重要。劣質(zhì)的參考文檔往往會帶來適得其反的效果。它們將不可避免地給您的支持團(tuán)隊(duì)造成負(fù)擔(dān),并且阻礙社區(qū)在支持方面的推進(jìn)。因此,我們甚至可以在公司的內(nèi)部建立一種文化:使開發(fā)人員以完備的文檔為榮,并將其作為開發(fā)過程的必備要素加以維護(hù)。
入門指南
在軟件產(chǎn)品中,入門指南往往僅占總內(nèi)容集的最小部分,但是大家在對產(chǎn)品進(jìn)行優(yōu)化時(shí),卻時(shí)常能獲得團(tuán)隊(duì)的廣為關(guān)注。由于“快速入門指南”是最終用戶和其他開發(fā)人員對于目標(biāo)軟件的第一印象,因此我們需要保證質(zhì)量,以便其他開發(fā)人員據(jù)此了解到下一步需采取何種步驟。在具體實(shí)踐中,我們可以在設(shè)計(jì)和編寫上參考如下原則:
- 為開發(fā)人員提供一站式的入門指南,羅列出所有值得注意的關(guān)鍵點(diǎn)。
- 任何諸如訪問站點(diǎn)的變更、以及API的調(diào)整等針對本平臺的迭代和功能的提升,都應(yīng)當(dāng)反映到入門指南中,并能清晰地查找和定位到。
- 請盡量保持簡單,以避免糾結(jié)細(xì)節(jié)、或通過示例去踐行軟件的理想狀態(tài)。開發(fā)人員應(yīng)能夠獲悉完成那些首次成功調(diào)用API的最小任務(wù)集。
- 通常,我們見到的入門指南是基于文本的形式,但是為了吸引不同類型的受眾,我們可以考慮采用多媒體的形式。例如:我們可以開發(fā)出視頻內(nèi)容,甚至是游戲闖關(guān),以吸引年輕一代的開發(fā)人員。
代碼示例與參考實(shí)現(xiàn)
在必要的時(shí)候,您可能需要為開發(fā)人員提供一些功能齊全的應(yīng)用,以作為平臺的優(yōu)秀實(shí)踐和參考。為了讓開發(fā)人員能夠據(jù)此在您的產(chǎn)品上自行構(gòu)建與開發(fā)出新的產(chǎn)品,您所給出的參考實(shí)現(xiàn)應(yīng)清晰明確,并注意如下方面:
- 如何將應(yīng)用集成到CI/CD(https://dzone.com/articles/learn-how-to-setup-a-cicd-pipeline-from-scratch)的框架中?如何部署到諸如Heroku、Google Cloud或AWS等云端。
- 如何與諸如Node/Express、Visual Studio等流行的框架相集成?
有了上面的討論,我們的開發(fā)者金字塔的基礎(chǔ)已基本成形,請參閱下圖:
規(guī)模建設(shè)
不知您是否已發(fā)現(xiàn),人們愿意一開始就進(jìn)行平臺構(gòu)建的主要目的是:希望最終通過一個(gè)社區(qū)來不斷迭代和完善其對應(yīng)的各項(xiàng)功能與應(yīng)用。因此,在金字塔的中層,我們需要配備不同的論壇、博客、研討會、以及其他活動。
工程文化
對于許多初創(chuàng)公司,以及項(xiàng)目團(tuán)隊(duì)而言,他們的壓力主要來源于按時(shí)交付。每個(gè)組織都有自己的文化,在此,我希望每個(gè)產(chǎn)品開發(fā)團(tuán)隊(duì)都能夠建立和遵循一種重視文檔的工程文化,并將其貫徹到產(chǎn)品的開發(fā)整個(gè)過程中。
您可以采用Swagger或類似的框架,來定義自己的API,并建立一個(gè)開發(fā)的過程。在該過程中,開發(fā)人員擁有定義資源的所有權(quán),并負(fù)責(zé)提供足夠的內(nèi)容,以便內(nèi)、外部開發(fā)者的按需使用。當(dāng)然,他們也需要謹(jǐn)慎而全面地考慮到,該過程的接口一旦發(fā)生更改,則可能會給向后兼容性、以及現(xiàn)有的實(shí)現(xiàn)帶來何種影響。
分析工具
通常而言,我們是否具備針對目標(biāo)程序及內(nèi)容的調(diào)整與優(yōu)化能力,將完全取決于所收集的流經(jīng)該節(jié)點(diǎn)的相關(guān)數(shù)據(jù)量。為了實(shí)現(xiàn)該目標(biāo),我們往往需要通過如下三步走,來創(chuàng)建良好的數(shù)據(jù)收集與分析環(huán)境:
- 創(chuàng)建一個(gè)帳戶,以專門收集此類信息。同時(shí)為內(nèi)、外部開發(fā)者分配不同的賬號。
- 獲悉其他開發(fā)人員是否訪問過您的平臺,是否瀏覽過相關(guān)教程與指南,是否調(diào)用了您提供的API,即評估用戶的轉(zhuǎn)換率。
- 通過設(shè)定某些API的調(diào)用閾值,以獲悉開發(fā)人員在激活了賬號后,是否會持續(xù)使用該平臺。
自動化
為了對開發(fā)人員提供持續(xù)的支持,并管理和收集他們可能遇到的問題,我們可以借用諸如HubSpot或Customer.io之類的營銷自動化工具,來與他們保持聯(lián)系,以及在開發(fā)人員發(fā)布了程序之后,幫助他們提高應(yīng)用的軟件質(zhì)量。
原文標(biāo)題:Developer Pyramid: A Tool for Building Developer Programs,作者:Byrne Reese
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】