爲什麼這麼多程序員覺得前端開發很難做下去?

無論是新手還是幾年的前端開發程序員,都會又這樣的經歷:當學習了一種前端技術的時候,同時會有幾種新的前端技術誕生。 還有,你選擇的那種前端技術,也許已經過時了。

在抱怨過後,會繼續去學習新技術,或者慢慢放棄。但是很少人會考究,爲什麼會出現這個問題。

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

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

前端技術是否真的變化如此之快?

在探討原因之前,有必要驗證這個問題是否真實。

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

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

如果你也是一個前端黨,無論是在學習前端開發,還是已經工作的,這裏推薦一下我們的前端學習交流羣:731771211 ,這裏是把夢想照亮的地方,同爲了生活而拼搏奮鬥,大家互相幫助。新手加入即可獲得經過整理的最前沿的前端技術資料,不定時更新技術,與企業需求同步。好友都在裏面交流,每天都會有大牛定時講解前端技術!知識改變命運

點擊:加入

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 開發受到隨波逐流的影響。

應該怎麼做?

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

  • [ ] 警惕自我推銷

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

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

  • [ ] 考慮非微型庫架構

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

  • [ ] 不要過分滿足無理需求

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

如果你也是一個前端黨,無論是在學習前端開發,還是已經工作的,這裏推薦一下我們的前端學習交流羣:731771211 ,這裏是把夢想照亮的地方,同爲了生活而拼搏奮鬥,大家互相幫助。新手加入即可獲得經過整理的最前沿的前端技術資料,不定時更新技術,與企業需求同步。好友都在裏面交流,每天都會有大牛定時講解前端技術!知識改變命運

點擊:加入

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章