成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

歷時大半年,Github團隊成功減少30kb依賴體積

開發 前端
作為一家大公司,一部分人被劃分出來從事性能優化工作。但是,狼多肉少,哪有那么多可優化點呢?

[[400288]]

你沒看錯,Github前端團隊花費大半年時間,成功將項目依賴包體積減少30kb。

減少的部分是啥呢?jQuery。

技術還是技術債

多年以來,Github逐漸發展為一家擁有數百名工程師的公司。

作為一家大公司,一部分人被劃分出來從事性能優化工作。

但是,狼多肉少,哪有那么多可優化點呢?

找新的性能優點難,找你老代碼的麻煩還不容易?

于是,團隊將目光盯向了「技術債」。

[[400290]]

魯迅曾說過,前人用過的技術,如果阻礙后人重復造輪子,就成技術債了。

[[400291]]

那么該挑哪個債來還呢?jQuery真是不二人選。原因如下:

  • 廣泛依賴,這一改起來工作量絕對有了
  • jQuery代表老一代web開發方式。一下替換個新潮的,這對比,明顯!
  • jQuery好說也有30kb,蒼蠅雖小也是肉

說干就干,讓我們先評估下工作量。

[[400292]]

工作量max max max

新人這時候犯嘀咕:“這工作量,我估保守點,逐步替換,一周開發,一周測試,2周上線?”

組長啪的一下拍桌子:“那得是996的小作坊才這么干!我們大公司做事得專業,這事兒得「穩步迭代,增量解耦」”。

首選:我們得建立指標跟蹤,統計每行代碼中jQuery的調用次數。

實時監控,確保指標穩步下降。

 

調用次數統計

其次,要有專人開發一個lint(見eslint-plugin-jquery),全團隊普及,避免大家繼續使用jQuery方法。

 

一屏截不完的規則

新人問:“那有人添加eslint-disable繞過規則怎么辦?”

組長微微一笑,“小伙子,上道了啊。”

[[400295]]

還得開發一個Github機器人,每當有人提交的新代碼中包含eslint-disable規則,機器人會通知團隊成員,這樣我們能盡快介入review代碼。

最后,jQuery作為一個模塊化的庫,為了保證「穩步移除」,我們需要維護一個自定義jQuery版本。

每當確定一個模塊不再使用,就從自定義版本中移除他,并提供一個更小體積的版本。

比如:當完全用fetch替換$.ajax后,就能將AJAX模塊剔除。

“這一通操作下來,沒有半年工作量,我看不行。”組長輕靠椅背,輕輕搖了搖頭,說道。

[[400296]]

升華主題

你以為這就完啦?naive~

前面做的,只能說穩步推進工作。接下來說的,才是KPI的重中之重。

jQuery被移除,項目必然出現很多原生JS。

重復代碼多了得抽象、得封裝是吧?

“您是說上框架!Vue還是Angular?”新人搶答道。

“小啦!格局小啦!”組長長嘆一口氣。

[[400297]]

“當然是擁抱標準。Vue的模版語法也是根據Web Components標準演化來的。”

“我們要引!領!時!代!”

從現在開始,所有可復用的功能組件都封裝為Web Components。

比如「復制粘貼」功能,要封裝為clipboard-copy:

  1. <clipboard-copy for="blob-path" class="btn btn-sm BtnGroup-item"
  2.   點擊復制 
  3. </clipboard-copy> 
  4. <div id="blob-path">src/index.js</div> 
 遵照HTML標準習慣,點擊clipboard-copy組件后會將for屬性指向的id選擇器對應內容復制到剪貼板。

示例代碼

具體實現

并且開啟Shadow DOM,使組件對外封閉,不會影響其他組件。

你問兼容性?小啦!格局又小啦!

我們這樣的企業就是要推動瀏覽器廠商進步的。

最終產出了有1.4k star的Web Components組件庫github-elements

后記

經過大半年的努力,Github團隊成功將jQuery從項目依賴中根除,減少30kb依賴體積。

如果你審查Github頁面代碼,會時不時看到Web Component,比如:

大公司的工作方法論,你學廢了么?

 

責任編輯:姜華 來源: 魔術師卡頌
相關推薦

2020-09-04 15:18:16

深度學習疫情人工智能

2020-09-18 14:27:26

GitHub代碼開發者

2022-03-29 13:57:07

AI模型谷歌

2022-09-29 15:53:28

蘋果造車

2024-05-21 09:26:54

微服務DDD建模架構

2020-09-18 18:08:35

網絡安全

2023-11-26 18:13:07

iOS 18蘋果

2015-11-19 15:05:42

流量提速降費運營商

2022-06-17 09:42:20

開源MMKV攜程機票

2021-10-27 10:55:29

分布式

2011-12-16 09:24:53

JavaSpring開源框架

2021-08-06 22:36:12

Windows 10Windows微軟

2013-01-10 10:22:07

簡化IT數據中心成本

2011-05-18 20:02:55

蘋果Mac mini

2025-05-13 08:00:00

2012-04-16 09:58:36

光纖寬帶

2015-10-23 13:25:12

Github團隊協作Pull

2015-10-30 09:57:20

2014-09-02 10:28:15

iPhone 6
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99精品视频在线观看 | 亚洲成人免费视频 | 欧美日韩国产一区二区三区不卡 | 99视频免费 | 亚洲免费在线观看av | 四虎影视1304t | 精品影院 | 在线观看免费av网 | 在线成人免费视频 | 国产精品久久久久一区二区三区 | 在线观看成年人视频 | 狠狠久| 国产伦精品一区二区三区精品视频 | 精品一区二区三区免费视频 | 久久一 | 免费看色 | 欧美精品一二区 | 麻豆精品久久 | 国产福利网站 | 欧美一区二区三 | 国产一区二区视频在线 | 国产精品久久久久久久久久久久久 | 国产精品久久久久久一区二区三区 | 午夜免费福利电影 | 亚洲国产一区二区在线 | 亚洲精品视频一区 | 中文字幕高清av | 中文字幕伊人 | 亚洲国产一区二区三区四区 | 欧产日产国产精品视频 | 成人午夜精品 | 欧美日韩中文字幕在线 | 激情毛片 | 成人免费在线视频 | 国产久 | 中文字幕一区二区三区在线乱码 | 欧美黄视频 | 欧美乱做爰xxxⅹ久久久 | 中文字幕第十一页 | 久久久一区二区三区 | 色婷婷av777 av免费网站在线 |