當前位置:
首頁 > 科技 > 為什麼前端開發這麼不穩定?

為什麼前端開發這麼不穩定?

作者|Jimmy Breck-McKye

譯者|胡紅星

編輯|覃雲 - 前端之巔

我們都有這樣的經歷:當學習了一種前端技術的時候,同時會有幾種新的前端技術誕生。 還有,你選擇的那種前端技術,也許已經過時了。

然而我們似乎也從來沒有關注為什麼會這樣。

典型的解釋似乎是 web 開發者天生不耐煩,永遠追求最前沿的技術,趕時髦。總的來說:前端技術更迭如此之快是整個開發者社區的不明智(而你的不明智行為完全取決於你無法控制的因素)。

不管真實原因是否是這樣,前端開發確實存在這樣的問題。

前端開發有多不穩定?

在探討原因之前,有必要驗證這個問題是否真實。 前端技術是否真的變化如此之快?

考慮一下 Github 上星號最多的 JavaScript 前端技術列表:

最短的 2.5 年也不是那麼久 - 不到傳統桌面系統迭代周期的一半,這足以說明問題。 那麼是什麼原因導致了這種快速的,甚至是不可持續的變化?

React

造成這個問題的原因可能是 React。 作為一款功能強大的工具,它需要大量的輔助模塊和支持庫,而這正是問題出現的地方。React 社區是一個很大的微型庫架構組織,其中應用程序由許多獨立的單一功能 JavaScript 庫組成,該架構是為了致敬 Unix 哲學。

這種架構的優勢在於,隨著新的實踐的出現,可以輕鬆地進行調整,這對快速創新(如過去幾年一樣)是有意義的。 缺點是增加了變化的影響範圍,並且需要大量的審查。

這就是我的核心觀點:JavaScript 的問題不在於語言,網路或其他任何特定技術,而是選擇的架構無法讓開發者跟上變化趨勢。

NPM 問題

現代 JavaScript 最大的資產是 NPM。它提供了大量的模塊,可以滿足任何人的特定需求,但是很難過濾和決策。哪些庫真的被支持?哪些庫的功能是正確的?哪些不是有惡意的庫? JavaScript 開發人員真正作為唯一的參考標準就是流行度 - 下載數量和 star 數量 - 這加速了庫的傳播。

當然,還有其他驗證庫的方法:可以通過 Github 問題閱讀並搜索 StackOverflow。你可以做一些測試,甚至自己檢查源代碼。但是這需要很多時間。

這是 JavaScript 開發人員的弱點。作為一名面試官,我經常會問面試者是如何選擇技術,但回答往往讓我失望,因為知名度幾乎總是他們選擇某個庫的唯一標準。軟體工程至少部分是研究工作,我們需要培養初級程序員的研究能力。但即使這樣做了,這些可能性仍然會出現在他們身上。

設想成為一名初級開發人員

把自己設想為一個初級到中級的 JavaScript 開發者,首次編寫一個新的應用程序。

從完全空白,這讓事情變得簡單。你很佛系,所以從選擇一個簡單的框架開始。聽起來不錯(這也是你的唯一選擇)。

作為準系統它沒有什麼作用,所以選擇輔助庫的任務落在你肩上。如果你在做前端工作,它可能是 Redux 的表單和 API 請求的庫。如果是後端,它可能是 Express 的中間件。

然後你開始搜索,搜索結果中的一篇來自 Medium(譯註:博客網站) 的博客推薦 X.js。該博客的作者是 X,但她從未表明這種特殊的利益衝突。Medium 上所有的博客都一樣,所以永遠不能用知名度來作為我們的參考標準。

你錯過了指出了 X.js 中的一些重要不足之處的答覆,因為 Medium 在有意忽略。然後繼續搜索,發現了 Y.js.

這次你在 Twitter 上找到一個鏈接 - 超過一百個點贊!這應該值得信賴了吧,畢竟這麼多人為自己"把關"了。你在感謝中點了個贊,然後跳轉到了 Github 的鏈接。

但不是那麼快。這個鏈接太老了 - 該庫現已棄用。你可以看出,DEPRECATED 這個詞無處不在,十分醒目。

Y.js 是「面向對象」的。你認為這是一件好事,隱約回想起 ComSci 第一年關於 Smalltalk 和消息傳遞的一些東西。但顯然這是非常糟糕的。

另一篇 Medium 上的博客試圖解釋為什麼,雖然推理有些模糊,並且用你不認識的密集術語來包裝。後來事實證明,這個術語是由該博客的作者發明的,文中權威的參考鏈接也來自他自己的博客。

更糟糕的是,該帖稱,即使在 JavaScript 面試中提到 OOP 也會使你完全失業!你現在已經迷失方向了。值得慶幸的是 - 有他的 $ 50 美元的 JavaScript web 開發課程。你很慶幸找到這麼好的資源,記下了鏈接,並點了贊。

所以,你將轉向 Z.js,這個庫有更多的 star,文檔似乎不太有用。 儘管列出了很多方法,但如何實際使用? 至少看到它使用了一種叫做「標準 JS」的東西,你認為它與 ECMA 標準委員會有關? 其實並沒有。

但怎樣才能避免這些坑呢? 誰來幫助你避免采坑? 高級開發人員也正在學習。 我們都捲入了追求最新技術,追趕潮流的旋渦中,只是為了保持最新並保持就業。

所以,你採取了看似最可靠的標準:Github 項目 star 最多。 這就是為什麼 JavaScript 開發受到隨波逐流的影響。

應該怎麼做?

像大多數抱怨者一樣,我只想表達不滿,而不是解決它們。 但我有一些想法:

警惕 Medium

Medium 上有點難以區分權威內容。以前博客允許優秀的作者創建自己的視覺主題,幫助訪問者識別之前幫助過他們的來源。

警惕自我推銷

在過去的幾年裡,JavaScript 世界出現了激進的自我營銷,這可能是因為付費在線培訓材料的興起以及作為 Github名人的就業、諮詢優勢。

我對好的內容沒有任何問題,但也出現了很多不誠實的手段:自我引用 ,發明專有術語(例如"Standard.js")

考慮非微型庫架構

嘗試能提供大面積的功能,並且不需要很多插件來提高生產力的框架來開始你的項目 - 這將立即減少變化的影響範圍。 這是我對 Vue.js 非常感興趣的原因之一。 您也可以將 React 用作入門工具包或較大框架的一部分,如 Next。

不要過分滿足無理需求

唯一需要知道整個公司技術棧細節的是自由身承包商,他們獲得了可觀的工資來完成項目。 否則,大多數僱主不需要你了解最新 React 的細節。 所以,避免學習所有東西的要求:大部分都是沒用的。

http://www.breck-mckye.com/blog/2018/05/why-is-front-end-development-so-unstable/


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 InfoQ 的精彩文章:

Spark Streaming 實時計算在甜橙金融監控系統中的應用及優化
【QCon直播】Kafka作者 Jun Rao、滴滴產品高級副總裁 俞軍正在分享!

TAG:InfoQ |