如何克服 JavaScript 框架疲勞?

jopen 9年前發布 | 8K 次閱讀 JavaScript

Tero Parviainen 著有 Build Your Own AngularJS,曾兩次組織 Clojure CUP 競賽,在 推ter 上有近兩千名關注者。在本文中,Tero 闡述了在 JavaScript 框架層出不窮的當下,不少開發者對 選擇框架的種種困惑,如果你也有類似的困惑,不妨讀一讀。

如何克服 JavaScript 框架疲勞?

JavaScript 社區正受「框架疲勞」困擾。著眼近段時間涌現出的大量新框架、技術和想法,令人振奮的同時也讓人覺得很難追上科技更新的腳步。

既然難以追趕,那么必須選擇專注的領域,而做這個選擇也正是因為這種焦慮感。那么,你在專注于「正確的事」么?你正在學習的框架又是否是最合適你的,或許還有比它更好的?會不會下個月就發生些什么讓你的選擇顯得過時?

這里有一些個人總結,用以抵抗這種疲憊感和焦慮感。

學會欣賞已知中的未知數

事實上如果你遭遇了這個問題,那么說明你已經很了解圍繞 JavaScript 正在發生些什么。所有你認為應該學習的其實都是你有所了解的,它們都是你知識領域中的未知點。在這里,你必須要理解——「已知的未知」會不停地擴張,永無 止境。事實上,恰恰相反:這不僅意味著新事物在不斷出現,還意味著每一次你學習了一些東西,也會了解到與它相關的——那些你原本還不了解的事情。

舉個例子,在讀 Cycle.js 時,才發現對 Reactive Programming 知之甚少。學習 React 又帶來了接觸 React Native、GraghQL、Redux 的途徑,并如此無休止的反復。一件事總是能夠引起另外一件事。

與其被一系列已知的未知所擾,不如學著接受這種情況。當意識到缺乏某種知識,可以選擇后續去學習。知道它存在并大概知道它是什么,這意味著你可以決 定在某個時候,如果可能的話,花費時間去學習這種知識。我們總是陷入選擇中,傾向于抗拒這種選擇卻又因為仍有那么多不會的知識而抱有負罪感。這種糾結毫無 意義,進行選擇比忽略所有可以學習的東西更好。

這種未知——你所不知道的知識——不能作為實際知識和技能的替代,但也絕不是毫無用處。

接受事情總是處在變化中

毫無疑問, Web 開發總在不停地衍變——更好的解決方案被共認,亦或是設備性能增強等等。

無論現在 JavaScript 最前沿的技術是什么,我敢說這個「前沿」絕對支撐不了3年。它們中的大多數會被長久的遺忘,也有一些會留存,但創新也許會圍繞我們甚至還不能想象的某些事情發生。

舉個例子,Angulai 1.x 現在仍然很強大并且會維系數年,但圍繞它并沒有創新點。這種情況最終也同樣會發生在 React 或其他現今看來新奇的技術上。

我們也許并不希望這些發生,但這卻是不可避免的現實,你只能選擇去接受事情的持續變化或者停留在落后于前沿技術的拐點。任何一種選擇都是有效的,但也都要付出成本。無論如何,變化是持續的,試圖阻止這種變化往往收效甚微。

理解一切都有價值

無論你選擇將時間用在哪種框架或者技術上,付出終究會得到回報,即使它不是最正確的那一個。你所學習的一切都在幫助構建你頭腦中的神經元網絡,會幫 你建立某種聯系使你在后續學習其他東西時更加容易,了解一種知識能夠使你跟其他知識進行比較和對比。因此,學習總是有用的,無論學什么。

這還意味著焦慮地去尋找一種正確的框架或技術用來學習并沒有想象中那么重要。不僅僅是因為所謂的正確的框架或技術很難確定,而且在很多情況下它們并 不是一開始就存在的。相反,尋找有用的知識顯然更為簡單,它們無所不在。你也許可以學習一些看起來有趣的東西,即使它并不是絕對正確的東西。

舉個例子,我花費了數年時間學習多種 Ruby 技術并且利用 Ruby 和 Rails 做 App,而在今天我用不到它們,甚至不確定以后是否會用。那么,這是否意味著我花費的那段時間一無所獲?我不這么認為。那些技術不僅在當時很有用,并且所 有在當時學過的東西形成了我現在的編碼風格。我非常希望這種情況也最終發生在我現在學習的工具上。

那么,如何去擺脫因尋找正確框架所產生的焦慮感?在這里你不妨去尋找也許此時并不那么有用的知識——尋找一篇有趣的計算機科學論文并探索其中的觀 點,或者花時間在并不能直接應用于所做之事的技術上。你從這些地方得到的收益也許并不那么明顯,但它們真實存在并會在不經意的地方顯現。暫時擺脫激烈的框 架選擇也能夠讓人振奮。

學會學習

另一種有效的方法是回歸本源,僅僅將時間花在學會學習上。為什么不練習解決問題這一過程本身,或者像刻意練習一樣去研究技術。類似行為將有助于了解職業真正能帶來什么。

這是 Rich Hickey 對此的看法:

你需要仔細辨識事情的本質。精通編程不在于語言、范例、平臺、構建模塊、開源、會議等。這些都是隨著時間變化的基礎知識,汲取知識的能力能夠使你按需使用。我更愿意選擇具備良好學習技巧和解決問題能力的程序員,而不是任何時候只汲取淺顯經驗的程序員。

就像學習新框架很有價值,學會學習很顯然能獲得更大的回報。善于學習和解決問題,將會使你遇到更少的麻煩,不論接下來你會需要什么樣的新技術。

原文鏈接:Overcoming JavaScript Framework Fatigue

本文系 OneAPM 工程師編譯整理。OneAPM 是應用性能管理領域的新興領軍企業,能幫助企業用戶和開發者輕松實現:緩慢的程序代碼和 SQL 語句的實時抓取。想閱讀更多技術文章,請訪問 OneAPM 官方博客

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!