GitHub 被微軟收購後的 52 天,改版並放棄了 jQuery!
上個月,『全球最大同性交友平台』GitHub 被微軟以 75 億美元(摺合人民幣 480 億)的價格正式收購,這一事件引發諸多程序員擔憂:
微軟收購之後,Github 是否會將不再開源?
為防範於未然,開發者正把 repos 遷移到 GitLab 等其他 Git 託管平台;
GitHub 有 Atom,微軟有 Visual Studio,用戶明顯重複。
對此,微軟回應了一切,並表示不打算在 GitHub 上做太多改變,且以開發者為中心的初心不會改變,會積極地擁抱開源。
如今,52 天過去了,Github 也做出一些微軟特色的改變。
改版放棄了 jQuery
之前不少網友就發現 GitHub 首頁改版了,並大呼太不習慣。昨天,Github 前端團隊的 Mislav Marohni? 在 Twitter 發布了一則消息,表明在 GitHub 網站重構過程中放棄了 jQuery,沒有再次使用其他任何框架去代替它,而是使用了原生的 JS,具體實現:
使用 querySelectorAll 來查詢 DOM 節點;
使用 fetch 來代替 ajax;
事件處理使用了事件代理;
使用 DOM 標準化寫了 polyfill;
使用了自定義元素。
此外,據 Web 系統工程師 muan 表示,GitHub 早已將 Fetch、Delegated events、Custom Elements 項目開源,因此也不難猜測,基於此已有的經驗 GitHub 才會進行棄 jQuery 的重構。
Fetch:https://github.com/github/fetch(polyfill)
Delegated events:https://github.com/dgraham/delegated-events
Custom Elements:https://github.com/search?q=topic%3Aweb-components+org%3Agithub
jQuery 的流行到被拋棄?
2006 年,jQuery 的第一個版本的面世,憑藉著簡潔、靈活的編程風格受到了開發者的喜愛。而它本身是一個 JavaScript 框架,它的設計的宗旨是「write Less,Do More」,即倡導寫更少的代碼,做更多的事情。它封裝了 JavaScript 常用的功能代碼,提供一種簡便的 JavaScript 設計模式,優化 HTML 文檔操作、事件處理、動畫設計和 Ajax 交互。
從之前的風靡到如今的被拋棄,究其原因,不少前端工程師表示,對於 jQuery 來說,大量的操作 DOM 雖然方便,但是會犧牲很多頁面的性能。另一方面,現階段 React、Vue 和 Angularjs 等主流前端框架並不依賴 jQuery,都可以獨立使用。況且瀏覽器的兼容問題越來越少,當瀏覽器兼容不再是問題時,jQuery 的價值就大打折扣了。
不過 GitHub 使用 fetch 來代替 ajax 這一舉措來看,fetch 幾乎不支持 IE (https://caniuse.com/#search=fetch),這是否也意味著 GitHub 已放棄 IE 瀏覽器的兼容?
如何看待 GitHub 網站放棄 jQuery 的使用?
基於此問題,Hacker News (https://news.ycombinator.com/item?id=17612540)上的網友展開了熱烈的討論,其表示:
@interlocutor:GitHub 網站移除 jQuery 並不是一件好事情。具有諷刺意味的是,從這個網站中可以(http://youmightnotneedjquery.com/)對比左右的代碼,我們發現相同的功能,jQuery 使用的代碼量更少。
其實,jQuery 具有許多簡潔方便的功能,如 addClass("selected") 和 siblings().removeClass("selected"),開發者不必每次選擇之後檢查空值。
不過像 closest() 和 remove() 這樣的函數在 IE11 並不兼容,其他 replaceWith()、before() 在 Edge 中也不可用。
對於簡單一點的網站,想要通過重構刪除 jQuery 很容易,但是對於更複雜的 JavaScript 應用程序,尤其是具有大量交互的網站,刪除 jQuery 只會導致更多的代碼產生或最終編寫大量的實用程序函數。
@geuis:jQuery 對 JavaScript 和瀏覽器生態系統產生了巨大的影響。 一個偉大的工具是指,它解決的問題不再存在,那麼可以功成身退了。
@patorjk:大約 8 年前,我剛接觸到一個項目時,我的老闆告訴我,這個 Web App 非常慢,希望我幫助它加快響應速度。當時我看了一下,發現 App 使用了大量具有重疊功能的庫——jQuery、ExtJS、Mochikit、YUI。我發現在開發時,每位開發者都只是為其實現的功能簡單地選擇了適用的庫,這就導致 App 過於膨脹(並且複雜)。不過,如今瀏覽器 API 及其 polyfill 已經有足夠標準化的 Web 應用程序開發,這是一件好事情。
在國內,不少前端開發者對 GitHub 棄用 jQuery 也表示不解,甚至不少開發者表示發出「我剛學會,你就棄用」的無奈,對此,你怎麼看?
※繼 Linux 之父之後獨立開發者 Jonathan Blow 再次炮轟 C++ 可怕
※Firefox 居然連 IE 都不如!
TAG:CSDN |