JavaScript 雖火,但不要輕易去追隨!

雲棲號資訊:【點擊查看更多行業資訊
在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!

現在的情況是這樣的:你在瀏覽器中輸入twitter.com,然後就看到某人發了一條關於如何使用React Hooks的新推文。但是,由於某些原因,你的公司或團隊尚未切換到Hooks,又或者,也許你們已經在用了,但不是以新的“流行”的那種方式用。也許你們用的是Vue.js或Angular,但是現在這些關於React Hooks的信息隨處可見,甚至你會覺得在晚飯的時候,關於React Hooks的消息幾乎都要出現在你的微波爐上了。

鑑於現在這種情況,你開始質疑,自己的代碼庫中的內容是否正確?是不是應該使用剛剛看的技術文章內容來重構這塊邏輯?隨着心中的疑問告一段落,你開始想象實際代碼的樣子。

而現在,你突然有了使用它的衝動。你聯繫團隊負責人,或者向整個團隊發消息,把這個超酷的新方法告訴他們,並建議開始使用它。

重寫代碼


image


(圖片大意:這次你選的庫和構建工具肯定是正確的了,真實世界:每六個月重寫一遍你的前端代碼)

前段時間,@ ThePracticalDev 的Twitter帳號上發表了一本不存在的書的封面。早在2016年,開玩笑揶揄不斷變化的JavaScript世界就已經是一種時尚了,但方式和當今有所不同。

image

噓,我發明了時光機(不要告訴別人)!讓我們快速穿越回到2016年。

咻!好了咱們到了。現在JavaScript的環境是這樣的:

如果你已經在使用JavaScript框架了,或者想要使用,則可能會選擇Angular.js。但是,Angular 2馬上就要來臨,它的新特性會使得你需要重寫幾乎所有內容。另外,一個名爲React.js的新秀即將成熟,馬上就要粉墨登場。當然,Vanilla JS和不使用框架的人也是存在的。在2016年,不使用框架仍然是一種流行的觀點,但是正在逐漸消亡中。

在瞭解了這一切之後,你會怎麼做?你會選擇哪條路,理由又是什麼?作爲一個從未來穿越回來的人,現在答案似乎很明顯了,那就是React。但是,如果你決定使用Angular.js,在接下來的幾年裏你將很容易受到誘惑而去使用新的Angular版本,並重寫代碼。如果你選擇使用React,那麼你將是一個幸運的贏家,因爲當今每個人都上了React這條船。而現在,你很想丟棄類組件,轉而使用那些美妙誘人的Hooks函數組件,對嗎?好吧,至少這不像Angular.js到Angular 2的跨度那麼大,起碼不需要學習一個全新的API,對吧?

選擇太多,時間太少。該怎麼辦?

我們現在選擇什麼,或者我們過去選擇了什麼都沒關係。我們仍然會被誘惑,或者不得不在日後重寫自己的代碼。原因可能是多種多樣的:

你的公司以前使用的是(任意框架名稱),並且無法僱用新員工

你覺得舊的解決方案不再適合自己,並且你想要新元素

你順應了行業趨勢,並希望使用最新和最好的技術。

除非我們打破這個循環。

打破循環

不斷改進,併發布更新更好版本的基因已深深刻入我們這個行業。對於更高效,更簡單,更美觀,更健壯解決方案的需求鞭策我們前進。破壞持續學習和進步的想法是與當今所有事物背道而馳的。我現在還不會去走這條路,但是如果你想在以後瞭解更多關於這方面的信息,請考慮訂閱我的newsletter。

不斷學習新事物的想法是好的,我對此也表示同意,但問題是應該多久學一次呢?縱觀JavaScript的世界,新的想法、博客文章、庫、框架以及諸如此類的東西你方唱罷我登場。當一樣東西流行起來,人們就迅速嘗試去採用。我並不是說你不應該擁抱新事物,或者不應該考慮採用不同的方法來解決問題,我完全不是這個意思。我想表達的是,這種事情能不能做得不要那麼勤。

讓我們更加務實一點吧。我以前使用過axios,效果很好。你可以對其進行測試,支持廣泛,具有很高的得分(GitHub星標),等等。然後,我看到一篇博客文章,告訴大家要替換axios,實施自己的fetching logic。

在看了文章“用簡單的自定義fetch wrapper替換axios”的標題後,它吸引着你順着作者的思路從頭讀到尾。它使你質疑自己之前的選擇。

image

我不會詳細給你介紹是否應該採用帖子的做法,帖子本身已經說得很清楚了。然而我可以幫助你進行基本決策。

你現在對axios滿意嗎?如果答案是肯定的,則最好把替換它的想法放到一邊。axios對你或你的團隊來說很困難嗎?如果答案是肯定的,請嘗試聽從該帖子的建議,並看看效果如何。

簡而言之:不要輕信天花亂墜的宣傳。嘗試去“感受”哪個適合你,然後就選擇哪個。儘量不要屈服於浮華的新推文,博客文章,Hacker News熱門文章,應做或不應該做的熱門話題標籤。請繼續讀下去,以瞭解如何避免這種炒作驅動的開發。

HDD-炒作驅動開發(Hype Driven Development)

炒作在我們行業中很普遍。還記得NoSQL嗎?還有當每個人都對微服務愛的死去活來的那時候?或者AI /機器學習的大爆發?數都數不清。人們總是對新的突破性技術和想法感到興奮。Gartner的炒作週期曲線簡直太對了:

image

它展示的是新興技術的典型生命週期。你是否能想出自己正在使用的某樣東西可能正好落入圖表的某個階段?Ayman製作了更詳細的炒作週期圖:

image

在想追隨最近某個JS趨勢的時候想一下這個曲線,它處在哪個位置上?

如何對待技術熱潮?

這種炒作和興奮感有時在生活中還挺有用的。如果沒有它,生活將變得乏味而無聊。時不時地追隨一下熱點和潮流,可能會給人耳目一新的感覺,但是你始終應該先做好功課。

在嘗試採用全新的熱門庫或框架時,請記住這一點,向你自己和你的團隊提出以下問題:

在做決定之前進行研究和測試

閱讀博客文章,推文和公告也許有幫助,但要獲得最佳體驗,瞭解一樣東西適不適合自己,是需要去親身經歷的。試着用你打算使用的技術搭建一個原型出來。看看它與你正在做的其他事情配合得怎麼樣。

如果你打算在團隊級施展某樣東西,那麼可以試試團隊黑客馬拉松。黑客馬拉松是與團隊一起測試新技術的好方法,而且你可以盡情揮灑創造力來解決問題。然後,你可以與團隊進行某種回顧,討論技術的優缺點。

它能解決您的問題嗎?代價是多少?

你目前的方式是否存在某個特定的問題?如果是的話,請測試一下新技術是否能夠解決這個問題。學習這個技術需要多少時間?學習並重寫以前的解決方案是否值得?它會在多大程度上減慢你團隊的開發進度?

徵求他人意見

如果你在小型公司工作,或你的團隊缺乏有經驗的成員,那這一項可能會比較難。試着去尋求架構師或高級工程師的意見吧。僅僅因爲某些庫能夠爲AirBnB及其網站提供良好的服務,並不意味着這對你而言也是最佳選擇,你可能忽略了它的某些方面。與經驗豐富的人交談有時是一種榮幸,如果可以,請不要浪費機會!

如果你是高級開發人員,請試着與初級開發或經驗不足的人聊聊。許多公司正在運行所謂的“反向指導”計劃,讓初級人員指導公司的高級成員。高級人員的經驗用來交換初級人員的新奇角度。你會驚訝地發現可以學習和分享的東西有很多。

總之,請不要因爲自己剛剛看到了什麼熱點內容就草率地做出決定。

原文:https://pragmaticpineapple.com/do-not-follow-javascript-trends/

作者簡介:Nikola Đuza,工作語言爲JavaScript和Ruby,現居諾維薩德。

【雲棲號在線課堂】每天都有產品技術專家分享!
課程地址:https://yqh.aliyun.com/live

立即加入社羣,與專家面對面,及時瞭解課程最新動態!
【雲棲號在線課堂 社羣】https://c.tb.cn/F3.Z8gvnK

原文發佈時間:2020-06-29
本文作者:Nikola Đuza
本文來自:“ CSDN”,瞭解相關信息可以關注“ CSDN

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