精品欧美一区二区三区在线观看 _久久久久国色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有中文| 欧美特大特白屁股xxxx| 国产不卡视频一区| 777777777亚洲妇女| 91中文字幕永久在线| 国产精成人品2018| 亚洲国产日韩一级| 新呦u视频一区二区| 亚洲国产中文字幕在线| 久久综合婷婷| 欧美激情影音先锋| 日韩免费成人av| 9l视频自拍九色9l视频成人| 色爱区综合激月婷婷| 米仓穗香在线观看| 成人网视频在线观看| 高清成人在线观看| 国产精品丝袜久久久久久不卡| 欧美日韩精品在线观看视频 | 成人高清免费在线| ww亚洲ww在线观看国产| 91福利视频导航| 最新中文字幕第一页| 亚洲欧洲日本mm| 久久五月天综合| 99久久99久久精品免费看小说.| 五月六月丁香婷婷| 18深夜在线观看免费视频| 二区在线播放| 亚洲国产电影在线观看| 精品不卡在线| 性一交一乱一色一视频麻豆| 精品一区二区三区视频在线观看| 日本成人激情视频| 中文字幕一区二区三区手机版| 偷偷www综合久久久久久久| 亚洲片av在线| 中文字幕av网址| 黄色免费大全亚洲| 日韩免费视频一区二区| 91视频福利网| 国产日韩在线观看视频| 欧美年轻男男videosbes| www.色就是色| 外国电影一区二区| 在线观看日韩电影| 午夜精品在线免费观看| 日本中文字幕一区二区| 色天使久久综合网天天| 国产又黄又大又粗视频| 国产精品13p| 欧美视频在线观看 亚洲欧| 91动漫在线看| 少妇在线看www| 午夜成人在线视频| 春日野结衣av| 亚州一区二区三区| 欧美日韩一区中文字幕| av亚洲天堂网| 精品一区二区三区视频在线播放| 91精品国产91久久综合桃花| 69久久精品无码一区二区| 精品国产伦一区二区三区观看说明| 欧美日本在线看| 国产精品久久久久久久av福利| 99久久久成人国产精品| 欧美一区二区三区男人的天堂| 免费人成视频在线播放| 动漫视频在线一区| 日韩电影免费观看中文字幕| 谁有免费的黄色网址| 日本一区二区高清不卡| 久久久久www| 久久久久性色av无码一区二区| 亚洲午夜久久久久久尤物| 91av国产在线| 中文字幕制服诱惑| 国产成人久久精品77777最新版本| 亚洲一区二区三区乱码aⅴ| 成人免费观看在线视频| 91一区一区三区| 婷婷五月色综合| 肉体视频在线| 日韩欧美黄色动漫| 黄色国产小视频| 精品中文字幕一区二区三区四区| 精品国产自在久精品国产| 成人精品在线观看视频| 久久福利影院| 97在线观看视频| 中文字幕欧美人妻精品| 日韩中文字幕| 日韩精品中文字幕在线一区| 三级视频网站在线观看| 色综合中文网| 另类天堂视频在线观看| 日本午夜视频在线观看| 久久精品免费看| 精品国产乱码一区二区三区四区| avav免费在线观看| 亚洲国产色一区| 成年人三级黄色片| 亚洲精品国产精品粉嫩| 美女国内精品自产拍在线播放| 国产精品午夜影院| 国产一区二区三区av电影 | 1204国产成人精品视频| 亚洲免费精彩视频| 久久久久久久久久久97| 青娱乐精品视频在线| 好吊色欧美一区二区三区| 欧美日韩欧美| 在线区一区二视频| v天堂中文在线| 亚洲破处大片| 国产欧美精品日韩精品| 亚洲色图另类小说| 夜夜嗨av一区二区三区中文字幕 | 国产亚洲精品女人久久久久久| 爽好久久久欧美精品| 成人综合色站| а√天堂8资源在线官网| 欧美在线999| 精品人妻一区二区三区视频| 精品二区视频| 99re国产| 黄色网页在线播放| 欧美日韩免费一区二区三区| 加勒比综合在线| 亚洲美女色禁图| 国产欧美日韩综合一区在线观看| 97caopor国产在线视频| 欧美日韩国产美| 超碰人人干人人| 日韩精品91亚洲二区在线观看| 国产99在线免费| sm国产在线调教视频| 欧美日本国产视频| 天天爽天天爽天天爽| 免费成人在线观看视频| 亚洲高清视频在线观看| 亚洲精品在线影院| 一区二区亚洲精品国产| 中文字幕乱码人妻二区三区| 国产日韩av一区二区| 亚洲 中文字幕 日韩 无码| 天堂在线精品| 欧美综合在线观看| 欧美拍拍视频| 欧美自拍丝袜亚洲| 日本不卡一二区| 九色综合狠狠综合久久| 国产又黄又爽免费视频| 国产专区精品| 久久97久久97精品免视看 | 国产乱人伦偷精品视频不卡| 三级在线免费观看| 第四色中文综合网| 日本久久91av| 午夜伦理在线| 日韩亚洲欧美高清| 日本免费观看视| 国产亚洲精品bt天堂精选| 成人免费xxxxx在线视频| 成人三级视频| 91色视频在线导航| heyzo高清在线| 亚洲女在线观看| 中文字幕av资源| 亚洲欧美一区二区三区久本道91| 性生交大片免费看l| 99国产精品久久久久久久成人热 | 欧美欧美欧美| 欧美日韩国产另类不卡| 永久免费看黄网站| 97精品国产露脸对白| 日本成人黄色网| 欧美在线三区| 蜜桃传媒视频麻豆第一区免费观看| 精品欧美日韩精品| 精品国内自产拍在线观看| www.超碰在线.com| 一本色道久久综合亚洲aⅴ蜜桃| 妺妺窝人体色WWW精品| 国产一区二区不卡| 欧美视频第一区| 天天做天天爱天天综合网| 国产一区喷水| 亚洲一区二区小说| 97免费视频在线| 思思99re6国产在线播放| 精品国产乱码久久久久久老虎| 91视频久久久| 亚洲国产wwwccc36天堂| 极品蜜桃臀肥臀-x88av| 成人免费视频网站在线观看| 一区二区成人网| 日韩午夜在线电影| 亚洲第一页在线视频| 亚州精品视频| 99久久久久国产精品免费 | 91沈先生播放一区二区| 精品国产第一福利网站| 九九热在线精品视频| 欧美777四色影视在线| 日韩美女视频在线| 又骚又黄的视频| 精品久久香蕉国产线看观看亚洲 | 成人免费高清在线播放| 日韩美女在线视频| 91九色蝌蚪91por成人| 欧美日韩中文在线| 久久久久久激情| 亚洲图片欧美激情| 国产成人免费观看网站| 91最新地址在线播放| 亚洲av无一区二区三区久久| 蜜臀av在线播放一区二区三区 | 欧美成人精品欧美一级| 中文字幕+乱码+中文字幕一区| 午夜视频在线观看国产| 国产精品资源站在线| 麻豆一区二区三区视频| 亚洲综合激情| 男人操女人逼免费视频| 欧美日韩一卡| 亚洲天堂第一区| 亚洲精品一区二区妖精| 亚洲国产精品久久久久久女王| 色88888久久久久久影院| 国产精品手机在线| 91欧美极品| 91九色对白| 日韩精品一区二区三区中文| 91精品一区二区| 亚洲精品69| 国产美女被下药99| 91福利精品在线观看| 国产精品18久久久久久麻辣| gay欧美网站| 日本视频久久久| free欧美| 国产精品久久久久久久久久久不卡| 亚洲永久av| 日韩av电影在线网| 成人软件在线观看| 国产精品日本精品| 美女视频一区| 91在线免费观看网站| 日本免费一区二区三区视频| 亚洲xxx大片| 北条麻妃在线一区二区免费播放| 国产精品一区二区三区在线观| 国产+成+人+亚洲欧洲在线| 极品校花啪啪激情久久| 天堂99x99es久久精品免费| 欧美一区二区综合| 久久亚洲影视| 三上悠亚免费在线观看| 午夜日韩视频| 成年人视频观看| 日本欧美一区二区在线观看| 中文字幕 日韩 欧美| 国产传媒久久文化传媒| 黄色av网址在线观看| 国产日产欧美一区二区视频| 999福利视频| 一区二区三区四区在线| 日韩乱码在线观看| 色视频成人在线观看免| 97人妻人人澡人人爽人人精品 | 国产色在线 com| 精品国产一区二区三区久久狼5月 精品国产一区二区三区久久久狼 精品国产一区二区三区久久久 | 欧美体内she精高潮| 国产白丝精品91爽爽久久| 国产中文字幕一区二区| 国产精品久久久久一区| 欧洲猛交xxxx乱大交3| 欧美日韩一区免费| 亚洲一区在线观| 亚洲国产精品女人久久久| 久草在线青青草| 欧美成人精品在线观看| 天堂8中文在线最新版在线| 国产欧美日韩91| 嫩草国产精品入口| 亚洲欧美国产一区二区| 亚洲激情综合| 超碰人人草人人| 99re这里只有精品6| 在线免费看视频| 欧美日韩激情视频8区| 在线免费观看视频网站| 亚洲白拍色综合图区| 一本一道波多野毛片中文在线 | 中文字幕天堂在线| 欧美一级艳片视频免费观看| 色猫av在线| 欧美成人在线免费视频| 欧美在线va视频| 国产一区二区三区四区五区在线 | caopor在线视频| 成人午夜免费av| 久久久久久久麻豆| 色婷婷综合久久久久中文一区二区| 超碰在线播放97| 日韩中文字幕在线免费观看| 久久青青视频| 国产精品一码二码三码在线| 91亚洲国产成人久久精品| 欧美亚洲国产成人| 国产大片一区二区| 日韩三级在线观看视频| 欧美亚洲图片小说| 嫩草在线播放| 亚洲91精品在线| 中文字幕视频精品一区二区三区| 亚洲不卡1区| 激情文学一区| 一级全黄裸体片| 亚洲精品乱码久久久久久| 中文字幕在线网址| 这里只有精品视频| 都市激情亚洲一区| 免费精品视频一区二区三区| 99精品免费视频| 午夜男人的天堂| 亚洲线精品一区二区三区八戒| 99久久国产免费| 久久av.com| 国产高清日韩| 波多野结衣激情| 国产真实乱对白精彩久久| 99热这里只有精品4| 精品污污网站免费看| 99视频在线观看地址| 国产精品国产三级国产aⅴ浪潮| 蜜桃tv一区二区三区| aⅴ在线免费观看| 久久婷婷一区二区三区| 综合网在线观看| 亚洲欧美中文在线视频| 成人爱爱网址| 日韩精品国内| 美女视频黄 久久| 日本少妇aaa| 在线不卡免费欧美| gogo在线观看| 99视频在线免费观看| 欧美日韩国产高清| 欧美激情 亚洲| 日韩欧美精品免费在线| 国产在线一在线二| 国产精品美女av| 久久久国产精品| 男人添女人荫蒂国产| 亚洲.国产.中文慕字在线| 香蕉久久一区二区三区| 国产精品jvid在线观看蜜臀 | 久久久久久久久久久综合| 丰满少妇久久久久久久| 国偷自拍第113页| 一区二区三区精品99久久| 亚洲我射av| 九九爱精品视频| 国产日韩欧美麻豆| 国产特黄一级片| 97超级碰碰碰久久久| 精品日韩在线| 久久综合桃花网| 高潮白浆女日韩av免费看| www.在线播放| 成人综合色站| 日韩高清不卡一区二区| 欧美三级在线免费观看| 亚洲美女av在线| 91精品一久久香蕉国产线看观看| 成人免费看片'免费看| 久久男人中文字幕资源站| 一二三四区视频| 久久久久久久久久av| 精品国产中文字幕第一页| 日本高清免费在线视频| 日韩欧美a级成人黄色| 最近高清中文在线字幕在线观看| 99国产盗摄| 蜜桃视频免费观看一区| 日本少妇性生活| xxav国产精品美女主播| 欧美黑人巨大videos精品| 久久6免费视频| 日韩欧美在线一区| 亚洲婷婷噜噜| 神马影院午夜我不卡| 懂色一区二区三区免费观看 | 中文字幕在线免费观看视频| 一区二区在线观| 久久久久国产精品麻豆ai换脸| 国产黄色美女视频| 国产精品夜间视频香蕉|