精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

大規模的前端組件化與模塊化

移動開發
Andrew Betts是英國金融時報實驗室(FT Labs)的負責人,同時也是一位PHP和JavaScript程序員。他的團隊致力于研發試驗性質的Web技術并發布相關產品——比如金融時報Web App. 在加入金融時報實驗室之前,Andrew創建了Web咨詢公司Assanka,為諸如News International, The Economist Group and the FT這樣的客戶打造創新性的Web項目。

本文根據Andrew Betts在QCon北京2014大會上的主題演講內容整理而成。

Andrew Betts是英國金融時報實驗室(FT Labs)的負責人,同時也是一位PHP和JavaScript程序員。他的團隊致力于研發試驗性質的Web技術并發布相關產品——比如金融時報Web App. 在加入金融時報實驗室之前,Andrew創建了Web咨詢公司Assanka,為諸如News International, The Economist Group and the FT這樣的客戶打造創新性的Web項目。

今天的話題是大規模的前端組件化與模塊化。首先,先介紹一下FT在研發方面面臨的挑戰:

不同的服務如搜索、內容、廣告、應用,都是由不同的團隊來開發,團隊之間的溝通較少。造成的結果就是,整個服務的靈活性和可維護性越來越差,系統變得越來越復雜之后,新人進來的學習難度很大。隨著整個軟件開發生命周期變得越來越復雜,新功能的集成變得越來越難;更糟糕的是,隨著移動設備的流行,研發團隊不得不把同樣一套邏輯分別在桌面端和移動端各自實現一次。這也是全世界的軟件研發團隊面對的挑戰。

為了應對這些問題,FT Labs開始推行幾條前端的開發理念,目前已經獲得比較好的效果。

***條理念是:“活的”風格指南。“活的”風格指南也可以理解為代碼即文檔,文檔即示例。這里舉一個例子,比如Facebook的React項目。你去看React項目的介紹頁,這個頁面本身就是一個React的推薦實現。

當然像React這樣的項目,說明頁面的實現是一個方面,此外還有另一個重點:組件化的開發方式。正如React不是一個框架——它提倡的是無框架,因為任何框架的引入都會增加額外的復雜度和學習成本。組件(Web components)則不同,它一旦開發出來,就是一個隨時可以很方便的調用的功能;而且,不同的團隊可以同時進行不同組件的開發而互不干擾。Web組件是一個正在快速發展中的特性,目前瀏覽器對它的支持還不***,不過也就是1-2年的時間,現在應該要為未來做準備。對于Web開發而言,向前兼容要比向后兼容更加重要。

組件化的使用在我們處理歷史網站的過程中節省了大量的工作。FT有超過600個域名需要維護,很多網頁從互聯網時代早期就開始運作。對于這些遺留頁面,要全都重寫以適應新的瀏覽器是代價高昂、不值得的,但你又要盡可能的讓它們能夠正常顯示。我們用組件來進行局部替換以解決這個問題。比如某個老頁面上有一個圖庫展示,現在的瀏覽器不能顯示了,你就批量把這種老舊的圖庫展示代碼替換成新的圖庫組件代碼即可。

另外還有一點很重要,就是擁抱模塊化,避免在代碼中嵌入依賴關系。做開發這行兒一個很重要的覺悟就是:你要相信,你現在寫出來的這些代碼,等兩年之后,你自己都會不想去看它。模塊化會讓你的生命更簡單。

對于瀏覽器兼容性,正如剛才所說,我們的建議是跟著***的瀏覽器功能走。不過這里面也有一個分界點,就是所謂core experience和primary experience的分界點,并盡可能的將分界點向擴大core experience的方向推進。對于NoJavaScript的處理,我們的經驗是,基本上所有人的瀏覽器都會支持JS的,盡可以放心大膽的用。

說到這里,我要進入今天的重頭了,那就是FT的Origami這個項目。Origami這個項目要做定義的話可以說是一套規范,是一組文檔化的***實踐,同時搭配Registry這套工具,以方便所有人以***實踐建立規范統一的服務和組件。

這套系統的構成大體上包括一套closure compiler,browserfy(+debowerfy&brfs),commonjs,sass(用于做css模塊化),taskrunner(基于grunt),以及bower。系統在設計上遵循幾個原則:

  • 編譯時納入所有依賴
  • 去中心化、分布式,比如我們的git repo是分散的,沒有一個所謂的core或common的codebase
  • 內置命名和封裝的規則

對于上面提到的分界點,Origami是這樣處理的:core的部分需要保證在用戶環境對JavaScript支持差或不支持的情況仍然能夠完成基本內容的呈現、搜索引擎的抓取等。這個分界點在Origami當中通過 if (querySelector in document) 來實現判定。

Registry作為工具,會做以下幾個事情:

  • 掃描所有已知的git服務器
  • 給版本標簽建索引
  • 給每個模塊的每個版本做build
  • 把每個模塊的所有版本收集、整理到一個模塊頁面上

Registry可以說是我們Web服務的一個黃頁。我們把這個黃頁放在公開的互聯網上,這樣所有人都可以上去協作,每個人都可以查看每個組件的每個版本,它們的說明和相關文檔,實現的樣板等。如果有的功能還沒做完或者沒啟用,可以打上一個not implemented的flag。

大家可以在Registry上隨意查看我們的各個組件,比如header,footer,調色板,按鈕等。這些組件調用起來很簡單,以調色板為例,只需要

  1. <link rel="stylesheet" href="http://build.origami.ft.com/bundles/css?modules=o-colors@^2.3.8" />  
  2. <script src="http://build.origami.ft.com/bundles/js?modules=o-colors@^2.3.8"'></script>  

這樣的兩行代碼即可調用任意模塊的任意版本。

我們的build服務可以按需build不同模塊的任意組合,之后還進行打包、壓縮、優化等處理并通過CDN分發(經過了GZIP處理)。調用的時候可以指定調用指定的版本,或者自動調用***版。有了這套系統后,開發者創建原型變得非常簡單了。

下面我介紹一下我們遇到的一些零碎問題,以及我們是如何處理的。

首先,有關polyfill的加載,如何才能讓polyfill僅在需要的時候才加載?我們的處理辦法是在模塊的metadata中進行聲明,哪些是required,哪些是optional,以modernizr測試名來進行控制。

然后,如何在支持JS但是支持的不好的瀏覽器中顯示noscript當中的內容?我們的辦法是定義一個o-nojs-fallback類的div,通過類的visibility來控制呈現。

對于hover的處理,我們用了一個o-hoverable的組件來控制。

對于資源加載,為了確保每個組件都知道其他資源的URL地址,我們專門有一個o-asset組件

***想說的是,將我們的這些工作公開在互聯網上,我們從中收獲了很多。

責任編輯:閆佳明 來源: infoq
相關推薦

2020-09-17 10:30:21

前端模塊化組件

2020-09-18 09:02:32

前端模塊化

2022-09-05 09:01:13

前端模塊化

2013-08-20 15:31:18

前端模塊化

2022-03-11 13:01:27

前端模塊

2023-05-24 10:35:11

Node.jsES模塊

2019-12-02 16:05:10

前端模塊化JavaScript

2016-01-29 20:23:23

華為

2017-02-13 18:46:38

Android模塊化組件化

2019-08-28 16:18:39

JavaScriptJS前端

2017-05-18 11:43:41

Android模塊化軟件

2017-07-11 11:02:03

APP模塊化架構

2022-09-21 11:51:26

模塊化應用

2016-09-23 11:08:35

前端Javascript模塊化

2013-03-19 10:50:38

2018-12-18 11:20:28

前端模塊化JavaScript

2010-01-21 09:27:30

模塊化的優點NetBeans

2022-02-17 16:22:41

高壓直流模塊化UPS

2016-10-09 11:03:41

Javascript模塊化Web

2010-02-03 09:01:01

Java動態模塊化
點贊
收藏

51CTO技術棧公眾號

亚洲成人动漫av| 青青草原综合久久大伊人精品 | 91免费看网站| 欧美日韩在线国产| 欧美黑人巨大videos精品| 狠狠躁夜夜躁人人爽天天天天97 | 午夜欧美一区二区三区在线播放| 欧美日韩在线精品| 国产三级第一页| 日韩一级在线| 精品国产依人香蕉在线精品| 蜜臀av粉嫩av懂色av| 免费毛片一区二区三区| 亚洲熟女综合色一区二区三区| 偷拍自拍一区| 欧美一级在线视频| 免费观看成人网| 调教一区二区| 国产精品网曝门| 黄色在线网站噜噜噜| 激情久久一区二区| 亚洲精品成人天堂一二三| 欧美精品一区二区三区四区五区| 国产偷拍一区二区| 丝袜美腿成人在线| 久久久免费在线观看| 五月天婷婷丁香网| 中文字幕av一区二区三区人| 精品免费日韩av| 一区二区三区在线观看国产| 国产精品v欧美精品v日韩| 久久久久精彩视频| 99av国产精品欲麻豆| xxav国产精品美女主播| 97超碰在线免费观看| 深夜福利一区二区三区| 欧美精品少妇一区二区三区| 久久综合成人精品亚洲另类欧美| 婷婷夜色潮精品综合在线| 国产电影精品久久禁18| 欧美黑人性猛交| 在线观看天堂av| 国产精品视频看看| 豆花视频一区| 欧美日韩亚州综合| 国产一区二区视频免费在线观看| 日本欧美电影在线观看| 亚洲免费在线视频| 亚洲天堂av免费在线观看| 1pondo在线播放免费| 国产亚洲精品久| 久久久久欧美| 日韩毛片在线一区二区毛片| 成人av电影在线| 黄色一区三区| 香蕉视频911| 91麻豆国产在线观看| 99精品一级欧美片免费播放| 99久久精品免费精品国产| 国产在线播放91| 一本大道伊人av久久综合| 久久超碰97中文字幕| 国产精品免费久久久| 中文字幕免费在线看| 久久99久久精品| 欧美激情影院| 色综合久久久网| 国产a视频免费观看| 写真福利精品福利在线观看| 日本道在线观看一区二区| 久久久久久三级| 岛国一区二区| 91精品国产综合久久精品麻豆 | 高清全集视频免费在线| 亚洲视频中文字幕| 91免费国产精品| 多野结衣av一区| 日韩欧美一区二区三区| 国产精品99久久免费黑人人妻| 韩国主播福利视频一区二区三区| 色婷婷久久久综合中文字幕| 8x8x最新地址| 久久伦理中文字幕| 亚洲国产精品va在线看黑人 | 日韩亚洲在线视频| 欧美v亚洲v综合v国产v仙踪林| 欧美一区二区在线免费播放| 色综合久久88色综合天天| 亚洲一区二区精品在线观看| av激情在线| 超鹏97在线| 国内精品第一页| 99中文视频在线| 欧美xxx.com| 亚洲视频小说图片| 日本日本19xxxⅹhd乱影响| 三级成人黄色影院| 欧美一级二级三级九九九| 麻豆影视在线播放| 国产亚洲亚洲| 国产欧美日韩精品在线观看| 国内精品国产成人国产三级| 激情网站五月天| yy6080久久伦理一区二区| 777亚洲妇女| 久久精品女同亚洲女同13| 无码专区aaaaaa免费视频| 午夜性色福利影院| 国产精品色婷婷久久58| 亚洲乱码日产精品bd在线观看| 另类专区亚洲| 日韩免费电影网站| 日本二区在线观看| 黄色成人在线网站| 国产狼人综合免费视频| 99视频国产精品免费观看| 亚洲av无码一区二区三区dv| 中文字幕精品综合| 性欧美大战久久久久久久| 亚洲91在线| 一本色道久久综合狠狠躁篇怎么玩| 久久精品一区二区三| 蜜臀精品一区二区三区在线观看| 九色视频成人porny| 影音先锋在线视频| 欧美日韩一区二区三区高清| 国产精品久久久免费观看| 综合激情一区| 成人xxxxx| 国产对白叫床清晰在线播放| 欧美午夜精品伦理| 亚洲av无码成人精品区| 亚洲a一区二区三区| 国产精品久久久久久久美男| 理论视频在线| 欧美日韩精品二区| 在线xxxxx| 欧美日韩久久| 97超级在线观看免费高清完整版电视剧| www.av在线播放| 一本色道久久综合狠狠躁的推荐| 99久久国产精| 99伊人成综合| 精品国产一区二区三区四区vr | 夜夜操天天操亚洲| 国产亚洲视频中文字幕视频| 黄色片子在线观看| 免费av成人在线| 性欧美大战久久久久久久免费观看| 亚洲一区站长工具| 国产午夜精品久久久| 日本高清www免费视频| www.成人在线| 国产极品尤物在线| 日韩最新在线| 欧美重口另类videos人妖| 亚州精品国产精品乱码不99按摩| 亚洲高清中文字幕| 99久久人妻精品免费二区| 99精品国产99久久久久久福利| 国产区一区二区三区| av日韩中文| 亚洲免费精彩视频| 中文字幕av网站| 国产精品国产精品国产专区不片| 日韩av一卡二卡三卡| 香蕉久久网站| www.成人av| 国产精品25p| 亚洲视频网站在线观看| 最近中文字幕av| 一区在线观看视频| 欧洲成人午夜精品无码区久久| 亚洲免费播放| 日韩av一区二区三区在线| 免费视频观看成人| 久热爱精品视频线路一| 亚洲美女性生活| 欧美性生交xxxxx久久久| 高清国产在线观看| 国产麻豆精品一区二区| 国产高清www| 成人av动漫在线观看| 91在线视频精品| 91吃瓜在线观看| 国产午夜精品全部视频在线播放| 国产露脸无套对白在线播放| 亚洲成人动漫在线观看| 神马久久久久久久久久久| 国产一区不卡在线| 日韩中文字幕在线视频观看| 日韩国产在线| 成人在线免费观看一区| 影视一区二区三区| 欧美日韩电影在线观看| 婷婷色在线观看| 欧美久久久久久久久久| 日韩手机在线观看| 成人免费av电影| 欧美精品免费视频| 午夜影院在线看| 最新中文字幕一区二区三区| 国产精品无码网站| 国产在线视频精品一区| 99色精品视频| 国产专区一区| 亚洲精品一区二区毛豆| 国产精品tv| 91香蕉亚洲精品| 成人福利av| 欧美肥臀大乳一区二区免费视频| 国产在线一二| 精品久久久久久久久久久久包黑料| 夜夜躁日日躁狠狠久久av| 亚洲一区二区精品久久av| a级黄色免费视频| 91免费看视频| 蜜臀视频在线观看| 久久99精品国产| 国产理论在线播放| 99伊人成综合| av日韩一区二区三区| 午夜片欧美伦| 亚洲精品久久区二区三区蜜桃臀| 欧美影院天天5g天天爽| 91亚洲精品丁香在线观看| 成人亚洲综合| 国产精品美女午夜av| 在线播放高清视频www| 高清在线视频日韩欧美| 羞羞网站在线免费观看| 久久精品青青大伊人av| av在线三区| 国产一区二区三区毛片| 久久精品色图| 精品亚洲夜色av98在线观看 | 精品国产乱码久久久久久图片 | 国产91高潮流白浆在线麻豆| 欧美一级xxxx| 蜜臀精品久久久久久蜜臀| 无码人妻丰满熟妇区毛片| 一本色道久久综合亚洲精品高清| 欧美中文字幕在线观看视频| 欧美日韩综合| 精品视频在线观看一区二区| 中文字幕一区二区三区在线视频| 国产精品久久成人免费观看| 视频在线不卡免费观看| 亚洲一区在线免费| 欧美r级电影| 中文精品一区二区三区| 98精品视频| 色爽爽爽爽爽爽爽爽| 亚洲欧美高清在线| 午夜宅男久久久| 免费在线激情视频| 久久精品观看| www.天天射.com| 六月丁香综合在线视频| 亚洲综合婷婷久久| 激情六月婷婷久久| 青娱乐精品在线| 成人午夜在线播放| 亚洲观看黄色网| 久久综合久久综合久久| 国产精品815.cc红桃| 国产精品无码永久免费888| 久久国产高清视频| 一级女性全黄久久生活片免费| 久久久精品91| 欧美午夜片欧美片在线观看| 欧美国产一级片| 91精品国产欧美一区二区成人| 亚洲成人精品女人久久久| 亚洲福利视频专区| 激情综合闲人网| 日日噜噜噜夜夜爽亚洲精品| 色婷婷av在线| 欧美在线xxx| 欧美高清你懂的| 丁香五月网久久综合| 欧美**字幕| 成人短视频在线看| 99精品国产一区二区青青牛奶| 亚洲 中文字幕 日韩 无码| 久久国产福利国产秒拍| 熟女人妻一区二区三区免费看| 91亚洲精品久久久蜜桃| 老司机福利在线观看| 亚洲午夜视频在线观看| 日韩在线视频不卡| 日韩午夜av一区| 黄色av免费在线看| 欧美精品在线免费观看| 欧美黑人粗大| 99久久综合狠狠综合久久止| 美女毛片一区二区三区四区| 黄色小视频大全| 天堂影院一区二区| 又色又爽又黄18网站| 国产婷婷色一区二区三区在线| 欧美日韩在线国产| 在线观看日产精品| www.四虎在线观看| 在线观看久久av| aa国产成人| 91丨九色丨国产| 欧美激情国产在线| 国产三区在线视频| 成人妖精视频yjsp地址| 日本不卡一二区| 91成人国产精品| 亚洲色大成网站www| 欧美国产极速在线| 亚洲一区二区三区久久久| 开心色怡人综合网站| 亚洲久久一区| 白丝校花扒腿让我c| 最新中文字幕一区二区三区 | 三级欧美在线一区| 天堂www中文在线资源| 一区二区三区日韩欧美| 91久久精品国产91性色69| 亚洲欧美在线免费| 欧产日产国产精品视频| 欧美一区三区四区| 亚洲黄色在线网站| 一区二区成人在线视频| 一级特黄aaa| 在线观看欧美日韩| 高清成人在线| 欧美日韩视频在线一区二区观看视频| 亚洲国产一区二区三区a毛片| 香蕉视频1024| 亚洲日本在线视频观看| 97成人免费视频| 日韩中文字幕视频| 看片一区二区| 影音先锋欧美资源| 美女国产一区二区三区| 亚洲色图第四色| 欧美吞精做爰啪啪高潮| yourporn在线观看视频| 26uuu久久噜噜噜噜| 亚洲资源网站| 日本老熟妇毛茸茸| 国产日产欧美一区二区三区| 天天综合久久综合| 在线免费看av不卡| 国产精成人品2018| 婷婷四月色综合| 蜜桃视频一区二区| 亚洲精品成人无码毛片| 亚洲精品视频在线| 亚洲精品无amm毛片| 午夜美女久久久久爽久久| 成人精品动漫一区二区三区| 日本一区二区久久精品| 快she精品国产999| 97伦伦午夜电影理伦片| 五月天亚洲婷婷| 青青草在线播放| 日本乱人伦a精品| 色777狠狠狠综合伊人| 91看片在线免费观看| 亚洲日本电影在线| 国产成人精品一区二三区四区五区| 色综合久综合久久综合久鬼88| 粉嫩一区二区三区在线观看| 欧美日韩亚洲国产成人| 成人18视频在线播放| 欧美一二三区视频| 尤物九九久久国产精品的特点| 欧美区一区二区三区| 精品少妇人妻av免费久久洗澡| 色在线视频观看| 风间由美一区二区三区| 欧美精品九九| 一女三黑人理论片在线| 欧美午夜片在线免费观看| bbbbbbbbbbb在线视频| 国产精品一香蕉国产线看观看| 最新国产精品久久久| 国产精品果冻传媒| 色综合一个色综合亚洲| 超碰在线国产| 91亚洲精品在线| 性一交一乱一区二区洋洋av| 一级黄色录像毛片| 欧美v亚洲v综合ⅴ国产v| 蜜桃视频www网站在线观看| 午夜老司机精品| 蜜桃久久久久久久| 久久久久久久久久久久久久免费看 | 青青草视频在线免费观看| 国产精品国产福利国产秒拍 | 美女在线观看视频一区二区| 日韩成人毛片视频| 亚洲免费伊人电影在线观看av| 国产91精品在线|