如何克服 JavaScript 框架疲勞?

OneAPM官方技術部落格發表於2015-07-23

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

如何克服  JavaScript  框架疲勞?

以下為譯文:

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

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

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

1.學會欣賞已知中的未知數

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

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

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

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

2.接受事情總是處在變化中

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

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

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

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

3.理解一切都有價值

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

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

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

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

4.學會學習

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

這是 Rich Hickey 對此的看法:

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

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

原文連結:Overcoming JavaScript Framework Fatigue

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

相關文章