深入瞭解頂級前端開發者的痛點
原文連結:Deep dive into top web developer pain points
譯者:Yodonicc
從一些與頂級開發者一對一的對話中,收集到的關於開發者痛點的見解。
幾個月前,Paul Kinlan(譯者注:Paul Kinlan是Google Chrome團隊總負責)釋出了2021年開發者的首要痛點,所以在這篇文章的開頭,對過去兩個季度的情況進行了更新,感覺很合適。數字有一些變化,但排名沒有變化。
| 挑戰 | 2021年第一季度 | 2021年第二季度 | 2021年第三季度 | 2021年第四季度 | | ------------------ | --------- | --------- | --------- | --------- | | 跟上網路平臺或網路標準的變化 | 27% | 26% | 27% | 22% | | 跟上大量的新的和現有的工具或框架 | 26% | 26% | 25% | 21% | | 使設計或體驗在不同的瀏覽器上執行一致 | 26% | 28% | 24% | 21% | | 跨瀏覽器測試 | 23% | 24% | 20% | 20% | | 瞭解並實施安全措施 | 23% | 25% | 20% | 19% |
正如保羅的博文中提到的,我們需要解決這些痛點。作為一個更大的努力的一部分,我和我的同事Kadir Topal已經採訪了超過18個開發者。我們的目的是調查並開始瞭解解決頂級開發者痛點的路徑。
開發者討論
免責宣告:這些見解是基於與開發人員的少量對話。當使用 "所有 "或 "一些 "時,這指的是接受採訪的開發者,而不是整個社群。要更廣泛地推斷這些見解,還需要更多的研究。
這些對話很好地提醒了我們,網路開發者社群是多麼令人驚訝和多樣化,我想感謝所有與我們交談的開發者。一些開發者有超過25年的經驗,而另一些則在2020年才開始。一些開發者通過正式的電腦科學學位開始他們的職業生涯,而另一些則是獨立開始他們的職業生涯。一些開發者積極尋求新事物,並通過閱讀瀏覽器的釋出說明來跟上潮流,而另一些則通過同事和朋友瞭解新事物。有些人認為複雜性是工作的一部分,並喜歡接受挑戰,而其他人只是想完成他們的工作。在考慮解決這些痛點時,重要的是在我們的腦海中保持這種多樣性!
所有開發人員中的一個共同點是,他們都在使用CMS或框架來完成他們的工作。Wordpress、React、Bootstrap、Angular和Tailwind都被提及,沒有一個開發者在生產中使用vanilla模式的網路平臺。在開始一個專案時選擇一個框架是一個挑戰,開發人員經常考慮到非技術性的要求。例如,僱傭一個開發人員來使用該框架是否容易。如果解決方案中不包括框架和CMS,我們就無法改善開發者的痛點。
談到網路平臺,大多數開發者把平臺理解為他們在上面開發的東西。這不僅包括網路平臺的經典定義,還包括CMSs、框架、工具和polyfills。在許多情況下,與這些保持同步是最大的困難所在。這改變了我們對這個問題的解釋,我們現在知道我們需要更新我們的調查,把它分成不同的部分,使之不那麼含糊。
另一個含糊不清的領域是網路標準的定義。當被問及圍繞跟上標準的例子時,許多開發者更多強調了跟上最佳實踐的困難。這是我們需要在調查中澄清的另一個領域。
開發人員在實現特定的用例和模式時尋找最佳實踐。部落格文章和StackOverflow被提到是最佳實踐的來源,但開發者經常懷疑他們所讀的資訊是否真的是最佳實踐,是否是最新的功能和API。他們希望有一個更官方的來源來閱讀這些。
跟上實現新用例的功能和API是一個較小的問題。開發者們更多的是在功能、API和導致最佳實踐變化的平臺變化中掙扎。
大多數開發者同意,相容性是最大的挑戰之一。通過像Compat 2021和Interop 2022這樣的努力,情況正在改善,但很明顯,開發人員還沒有把它看作一個已經解決的問題。
大多數開發者以這種或那種方式使用polyfills。然而,在許多情況下,使用對開發者來說是透明的,因為polyfill可以由Babel等工具或框架自動新增。對於那些自己管理polyfills的人來說,弄清楚一個polyfill是否 "好 "可能是一個問題。開發者們提到使用NPM上的安裝數量和polyfill的建立者作為訊號。有幾個開發者提到,由於放棄了對IE 11的支援,他們做了刪除polyfills的工作。
框架帶來了碎片化的問題。我們聽到這樣的報告:開發者被 "困 "在一箇舊版本的框架中,並因此限制了他們可以使用的功能,但遷移到同一框架的較新版本的代價可能是昂貴的,而且難以證明。
總結
現代網路開發有許多移動部件,包括標準、瀏覽器、庫、polyfills、CMS、框架、最佳實踐和工具。這種多樣性是網路的偉大之處,但是現在,每個開發者都要對每個部分進行理解,以及它們如何相互相容。
我想知道是否有一種方法可以讓開發者更清楚地瞭解所有的東西是如何聯絡在一起的,以及在所有的部分之間有更多的一致性,而不影響多樣性。這是一個巨大的、複雜的問題,而且很難一下子做到。但是從哪裡開始呢?
注:特別感謝技術指導dazhao(趙達)對本文翻譯的審閱指正。