為什麼開發者熱衷在Stack Overflow上查閱API文檔?

2020-12-11 CSDN技術社區

微軟等軟體公司為API、服務和軟體平臺等主題創建數以百萬計的文檔,創建軟體文檔費時費力,然而卻越來越不討好,因為軟體開發者對這些枯燥的文字日益失去興趣。如果遇到問題,他們更多時間是到Stack Overflow等開發者問答社區去詢問。那麼,為什麼開發者喜歡在Stack Overflow上查看API文檔呢?以及 為何Stack Overflow能如此受青睞呢?且看本文分析。

企業、開發者的思想轉變

企業也注意到了這一趨勢,如YouTube API就將開發者支持論壇從Google Groups轉移到Stack Overflow,他們的API文檔是由數千個問題組成。Android開發者也是如此,他們更多是到 Stack Overflow討論API相關問題,而不是訪問 developer.android.com開發者官方網站閱讀官方文檔。

開發者開始間接地記錄API,這一過程我們稱之為「群眾文檔」(crowd documentation),他們在博客中推API的相關文章以及提出有關API的問答機制。我們發現未經任何協調,在Stack Overflow上討論API類的Android開發者竟高達88%。

一項新研究跟蹤了Android開發者的訪問歷史,發現開發者多達二分之一的文檔是從Stack Overflow上獲取到的,而Stack Overflow上的示例也多於官方指南,開發者通過搜索更多時候是去訪問Stack Overflow上的問題討論而不是訪問官方文檔。    

為了做調查我們收集了Android開發者1316天的歷史記錄(平均每位開發者有11周),發現有9234位訪問 StackOverflow,2547位訪問 developer.android.com並下載了Android開發文檔。此外,我們還分析了代碼示例使用率,這些數據均是通過Stack Overflow和developer.android.com開發指南的訪問數據而得出。

在這項調查中,我們發現:

  • 開發者從Stack Overflow上獲取文檔比例高達50%;
  • 從Stack Overflow上下載示例要比官方文檔指南要多;
  • 通過Web搜索,發現Stack Overflow上的問題訪問比官方文檔高達 2x-10x。

此外,我們還發現一些有趣的Web瀏覽模式:

  • 開發者直接瀏覽官方文檔呈現間歇式的爆炸模式;
  • 部分開發者以「學徒」的方式通過每位Stack Overflow用戶學習API;
  • 開發者在開發過程中通過搜索連續引用Stack Overflow問題。

為什麼開發人員喜歡在Stack Overflow查閱文檔?

我們分析了開發人員通常多久訪問一次Stack Overflow上Android的開發問題以及官方Android 文檔的訪問頻率。

如圖所示:


在同一天中三位不同的開發者(A,E,Q) 呈現出不同的訪問模式。


我們隨機採訪了選擇使用Android官方文檔的開發者,他們認為:

C:對Android的所有版本保持更新。很多示例與我們所需要的無關(要麼太複雜,要麼不夠詳細!)。

D:官方文檔最重要的一點是缺乏邊緣案例和錯誤文檔。

J:官方文檔中沒有足夠多的示例。

代碼示例:

  • Android官方文檔指南只有36%的API類文檔說明(引用API類的一段文字),而StackOverflow則高達88%;
  • Stack Overflow上的代碼示例是官方文檔的兩倍:官方Android文檔指南只有26%的API類代碼示例,而Stack Overflow有56%;
  • 為整個Android官方文檔指南貢獻代碼的權威人士總數為1,711人,而Stack Overflow上的編碼貢獻者有156,747人。

文檔使用模式


開發流程圖

大多數開發者通過搜索訪問Stack Overflow,另外一些開發者直接訪問官方文檔。兩位開發人員:A和B,他們通過Stack Overflow不斷「監控」Android開發的最新問題。

學徒與專家

起初,我也曾在developer.android.com中進行查詢相關問題,但在我看來,對於一位新手通過搜索開發者文檔來進行Android開發將是一項艱巨的任務。因此,我選擇查看Stack Overflow上一些知名專家的文章,這也是學習Android最簡單的方法。當你擁有Android方面的基礎知識時,開發文檔對你非常有用。

有趣的是,Stack Overflow上出現了同樣的思想認知:

大部分Stack Overflow的貢獻者非常樂意回答你的問題。

原文出自:  ninlabs 

(編譯/夏夢竹 審校/王然)


話題補充: 為什麼Stack Overflow會如此成功?

Stack Overflow做了一個很窄的問答社區,他的成功在於定位精準以及針對用戶的產品設計。

CSDN和程式設計師雜誌 創始人蔣濤認為:Stack Overflow在產品設計上的特色值得學習

1)更輕的參與,更快的反饋系統

  原來的問答制模式,包括CSDN BBS需要用戶回答問題才得分。 參與方式比較重, 而現在Stack Overflow的投票機制對問題表示贊同(提問的人也能得到積分),對回答表示贊同或反對,很容易參與。提問題和回答問題的人也容易得到滿足。    

2)更嚴格的管理,更開放的參與

 Stack Overflow對問題內容質量控制很嚴,而且設計的是全員參與管理模式,只要你又足夠的Reputation,就可以管理,比原來的斑竹管理模式更合理有效。

開發者 王詩沐:Stack Overflow的tag設計是集各家之大成

1. tag貫穿整個產品。不僅只是幫助用戶搜索信息,Stack Overflow很早就允許用戶訂閱tag,設置自己喜歡和不喜歡的tag;後來又開發了tag的badges,很好地和reputation聯繫在了一起。再後來用tag來做廣告。可以說Stack Overflow的tag設計是集各家之大成,在裡面可以看到delicious、twitter等的優點,而且還自己創新了tag的badges。

2. 早期非常focus在基本需求。最早的Stack Overflow的界面比現在更樸素,資源全集中在問題與答案、用戶投票和聲望設計上,礎搭的十分牢固。

3. 放長線,釣大魚。Stack Overflow現在最大的特點就是單純,很多推廣時期依靠的功能(badges、reputation等),實際上都是基礎功能延伸而來的,這個很多產品都沒做到,國內尤其多。比如騰訊微博的badges,怎麼看怎麼生硬。這實際上體現了Stack Overflow在產品節奏和規劃上的高明,各個複雜的功能和系統,其實都是從主幹上延伸開來,而非再生主幹。

相關焦點

  • Stack Overflow: 我們如何賺錢
    對於公司,我們的目標是提供數量不多,但是精準匹配的開發者,而不是數量龐大但是匹配度很低的開發者。這就是我們體現價值的地方。我們一直在優化目前業界的招聘流程,我們不希望公司和開發者在招聘和求職上極大地浪費時間並且低效。
  • StackOverflow 發布 2016 年開發者調查報告
    ,調查對象為在 Stack Overflow 註冊的開發者用戶。本文選取了部分統計數據,完整調查結果請查看StackOverflow 2016 年開發者調查報告開發者概況地理位置有很多安卓開發者自稱為移動開發者(3%)。 大約2.5%的開發人員是iOS移動開發人員。最受歡迎的技術全棧:
  • StackOverflow 上面最流行的 7 個 Java 問題!
    StackOverflow發展到目前,已經成為了全球開發者的金礦。它能夠幫助我們找到在各個領域遇到的問題的最有用的解決方案,同時我們也會從中學習到很多新的東西。這篇文章是在我們審閱了StackOverflow上最流行的Java問題以及答案後從中挑出來的。即使你是一個有豐富經驗的開發者,也能從中學到不少東西。
  • StackOverflow 上面最流行的 7 個 Java 問題!| 值得一看
    一、分支預測問題連結:https://stackoverflow.com/questions/11227809/why-is-it-faster-to-process-a-sorted-array-than-an-unsorted-arrayStackOverflow上最多投票的一個
  • Stack Overflow 發布 2016 開發者調查報告:JavaScript 最受歡迎...
    開發者問答網站 Stack Overflow 是頗受開發者歡迎的開發知識經驗問答網站。網站每年都會對用戶進行調查,了解開發者的構成、開發語言選擇等情況。其中 Rust、Swift、F#、Scala 以及 Go 當選 2016 開發者最喜愛語言,這是 Rust、Swift 與 Go 連續第 2年 當選了。而 VB 很不幸地成為了開發者最討厭的語言。Android、Node.js 以及 AngularJS 是開發者最想學的三門語言。在使用趨勢方面,一些新的開發技術勢頭良好。
  • 用StackOverflow訪問數據實現主成分分析(PCA)
    rstudio :: conf 2018https://www.rstudio.com/resources/videos/understanding-pca-using-shiny-and-stack-overflow-data/高維數據此次分析使用的是去年
  • Stackoverflow問答:Java是傳值還是傳引用?
    來自:並發編程網 - ifeve.com原文:http://stackoverflow.com
  • Stack Overflow 調查顯示:Rust 是最受歡迎的程式語言
    開發者問答網站 Stack Overflow 對程式設計師社區展開了年度調查,調查顯示的結果剛剛公布。開發人員總體上對人工智慧發展的可能性保持樂觀態度,但對 AI 是否具有危險性的看法卻不一致。Python 在程式語言行列上升,超過了今年流行的 C#,就像去年它超過了 PHP 一樣。在對未來的工作進行評估時,不同的開發人員考慮的因素不一樣。
  • smart-doc 2.0.1 發布,Java 零註解 API 文檔生成工具
    smart-doc是一款同時支持java restful api和apache dubbo rpc接口文檔生成的工具
  • Stack Overflow 發布2020開發者報告
    得注意地是,工作年限在 25 年以上的開發者佔比僅為 12.9%。開發者年齡分布其中30歲以下的開發者佔比52%教育背景受訪者的學歷情況如下:69%的受訪者是本科和碩士學位,博士學位的開發者佔比僅為2.9%。
  • Java開發者必備十大學習網站
    Stack overflow   Stack overflow.com 可能是編程界中最流行的網站了 , 是一個與程序相關的 IT 技術問答網站,用戶可以在網站免費提交問題,瀏覽問題,索引相關內容,在創建主頁的時候使用簡單的 HTML 。
  • smart-doc 2.0.2 發布,Java 零註解 API 文檔生成工具
    支持 JavaBean 上的 JSR303 參數校驗規範,支持分組驗證。 對 json 請求參數的接口能夠自動生成模擬 json 參數。 對一些常用欄位定義能夠生成有效的模擬值。 支持生成 json 返回值示例。 支持從項目外部加載原始碼來生成欄位注釋(包括標準規範發布的 jar 包)。
  • Java開發者必備 10 大學習網站
    Stack overflow  Stack overflow.com 可能是編程界中最流行的網站了 , 是一個與程序相關的 IT 技術問答網站,用戶可以在網站免費提交問題,瀏覽問題,索引相關內容,在創建主頁的時候使用簡單的 HTML 。一部分的程式設計師學習 API 或者程式語言 , 通常依賴於代碼示例 ,stackoverflow 就可以提供大量的代碼片段。
  • Stack Overflow 2020報告出爐
    大數據文摘出品最近全球熱門論壇Stack Overflow發布了開發者報告,這份開發者報告是通過65000
  • Java 開發者會從 Stack Overflow 得到存在安全隱患的答案
    維吉尼亞理工大學的研究人員分析了流行編程問答社區 Stack Overflow 上的帖子,發現許多程式設計師缺乏網絡安全方面的訓練,給出答案時似乎並不真正理解與代碼相關的安全問題。Spring Security 旨在促進安全編碼,但很明顯,許多開發者發現其 API 太複雜,文檔不夠完善,運行時系統的錯誤報告令人困惑。研究人員還發現,有時候得到最多好評的答案包含了不安全的建議,會在軟體中引入漏洞。而別人給出的更正確的答案卻經常因為低聲譽而得不到重視。
  • Spring Doc 生成OPEN API 3文檔
    概述公司正好最近在整理項目的文檔,且文檔對於構建REST API來說是至關重要的。在這篇文章中,我將介紹Spring Doc , 一個基於OpenAPI 3規範簡化了Spring Boot 1.x和2.x應用程式的API文檔的生成和維護的工具。2.
  • 淺談CloudStack 與 ZStack 架構與性能
    實踐上,部署過若干套KVM+Ceph的私有雲方案並交付應用,積累一定調試和故障排錯經驗。然而,ZStack成為當前較為耀眼的開源IaaS方案,其開發者張鑫(Frank Zhang)就曾在Cloud.com和Citrix從事CloudStack架構設計和開發工作。正所謂「青出於藍而勝於藍」,ZStack能不能超越IaaS前輩們成為「最後」一個Stack?
  • Stack Overflow 2017 開發者調查報告(程式設計師必看)
    這讓我聯想到了之前的一份網際網路趨勢調查報告,調查結果是人們對手機的使用時間一直在高速增加,然而 PC 的使用時間並沒有下降,而是平緩維持,也就說,手機其實並沒有吞噬 PC 的使用時間,而是吞噬了人們的閒暇時間而已。不過從另一個角度來看,web 開發的崗位需求還是大,市場上 web 開發的人才供給量也是很大的,不過物以稀為貴,這意味著競爭也更加激烈。
  • StackOverflow:7個你從未見過的Java問題最佳答案
    僅在上個禮拜,就有4600個問題被提出,毫無疑問這裡是開發者們最大也是最為活躍的線上社區。此信息同樣也出自StackOverflow 2016年的開發者調查中 ,56033名開發者被問到關於開發語言的選擇,JAVA是第三位。因為在市場上JAVA佔據著主導,因此我們估計讀者也曾經有那麼一兩次的去訪問StackOverflow來尋找答案。
  • 手寫文檔離線識別api
    手寫文檔離線識別api現在人工智慧越來越普及,以前很麻煩的工作,現在變得非常簡單,很早以前,有一批專門打字的人,打字員每天工作就是打字,把一些手寫的內容,或者列印文檔,書本上的內容,手打輸入計算機;現在文字識別