亚洲一区二区三区在线播放,伊人久久精品无码av一区,亚洲国产精品一区二区第一页免,无码aⅴ精品一区二区三区浪潮

熱門文章

最新文章

一篇文章讀懂什么是前端工程化

發布時間:2021-06-22 15:26:45

1. 什么是前端工程化

自有前端工程師這個稱謂以來,前端的發展可謂是日新月異。相比較已經非常成熟的其他領域,前端雖是后起之秀,但其野蠻生長是其他領域不能比的。雖然前端技術飛快發展,但是前端整體的工程生態并沒有同步跟進。目前絕大多數的前端團隊仍然使用非常原始的“切圖(FE)->套模板(RD)”的開發模式,這種模式下的前端開發雖說不是刀耕火種的原始狀態,但是效率非常低下。

前端的工程化問題與傳統的軟件工程雖然有所不同,但是面臨的問題是一樣的。我們首先回顧一下傳統的軟件開發流程模型:

上圖中的運行和維護并不是串行關系,也并非絕對的并行關系。維護貫穿從編碼到運行的整個流程。

如果說計算機科學要解決的是系統的某個具體問題,或者更通俗點說是面向編碼的,那么工程化要解決的是如何提高整個系統生產效率。所以,與其說軟件工程是一門科學,不如說它更偏向于管理學和方法論。

軟件工程是個很寬泛的話題,每個人都有自己的理解。以上是筆者個人的理解,僅供參考。

具體到前端工程化,面臨的問題是如何提高編碼->測試->維護階段的生產效率。

可能會有人認為應該包括需求分析和設計階段,上圖展示的軟件開發模型中,這兩個階段具體到前端開發領域,更恰當的稱謂應該是功能需求分析和UI設計,分別由產品經理和UI工程師完成。至于API需求分析和API設計,應該包括在編碼階段。

2. 前端工程化面臨的問題

要解決前端工程化的問題,可以從兩個角度入手:開發和部署。

從開發角度,要解決的問題包括:

  1. 提高開發生產效率;

  2. 降低維護難度。

這兩個問題的解決方案有兩點:

  1. 制定開發規范,提高團隊協作能力;

  2. 分治。軟件工程中有個很重要的概念叫做模塊化開發其中心思想就是分治。

從部署角度,要解決的問題主要是資源管理,包括:

  1. 代碼審查;

  2. 壓縮打包;

  3. 增量更新;

  4. 單元測試;

要解決上述問題,需要引入構建/編譯階段。

2.1 開發規范

開發規范的目的是統一團隊成員的編碼規范,便于團隊協作和代碼維護。開發規范沒有統一的標準,每個團隊可以建立自己的一套規范體系。

值得一提的是JavaScript的開發規范,尤其是在ES2015越來越普及的局面下,保持良好的編碼風格是非常必要的。筆者推薦Airbnb的eslint規范。

2.2 模塊/組件化開發

2.2.1 模塊還是組件?

很多人會混淆模塊化開發和組件化開發。但是嚴格來講,組件(component)和模塊(module)應該是兩個不同的概念。兩者的區別主要在顆粒度方面。《Documenting Software Architectures》一書中對于component和module的解釋如下:

A module tends to refer first and foremost to a design-time entity. ... information hiding as the criterion for allocating responsibility to a module.
A component tends to refer to a runtime entity. ... The emphasis is clearly on the finished product and not on the design considerations that went into it.

In short, a module suggests encapsulation properties, with less emphasis on the delivery medium and what goest on at runtime. Not so with components. A delivered binary maintains its "separateness" throughout execution. A component suggests independently deployed units of software with no visibility into the development process.

簡單講,module側重的是對屬性的封裝,重心是在設計和開發階段,不關注runtime的邏輯。module是一個白盒;而component是一個可以獨立部署的軟件單元,面向的是runtime,側重于產品的功能性。component是一個黑盒,內部的邏輯是不可見的。

用通俗的話講,模塊可以理解為零件,比如輪胎上的螺絲釘;而組件則是輪胎,是具備某項完整功能的一個整體。具體到前端領域,一個button是一個模塊,一個包括多個button的nav是一個組件。

模塊和組件的爭論由來已久,甚至某些編程語言對兩者的實現都模糊不清。前端領域也是如此,使用過bower的同行知道bower安裝的第三方依賴目錄是bower_component;而npm安裝的目錄是node_modules。也沒必要為了這個爭得頭破血流,一個團隊只要統一思想,保證開發效率就可以了。至于是命名為module還是component都無所謂。

筆者個人傾向組件黑盒、模塊白盒這種思想。

2.2.2 模塊/組件化開發的必要性

隨著web應用規模越來越大,模塊/組件化開發的需求就顯得越來越迫切。模塊/組件化開發的核心思想是分治,主要針對的是開發和維護階段。

關于組件化開發的討論和實踐,業界有很多同行做了非常詳細的介紹,本文的重點并非關注組件化開發的詳細方案,便不再贅述了。筆者收集了一些資料可供參考:

  1. Web應用的組件化開發;

  2. 前端組件化開發實踐;

  3. 大規模的前端組件化與模塊化。

3. 構建&編譯

嚴謹地講,構建(build)和編譯(compile)是完全不一樣的兩個概念。兩者的顆粒度不同,compile面對的是單文件的編譯,build是建立在compile的基礎上,對全部文件進行編譯。在很多Java IDE中還有另外一個概念:make。make也是建立在compile的基礎上,但是只會編譯有改動的文件,以提高生產效率。本文不探討build、compile、make的深層運行機制,下文所述的前段工程化中構建&編譯階段簡稱為構建階段。

3.1 構建在前端工程中的角色

在討論具體如何組織構建任務之前,我們首先探討一下在整個前端工程系統中,構建階段扮演的是什么角色。

首先,我們看看目前這個時間點(2016年),一個典型的web前后端協作模式是什么樣的。請看下圖:

上圖是一個比較成熟的前后端協作體系。當然,目前由于Node.js的流行開始普及大前端的概念,稍后會講述。

自Node.js問世以來,前端圈子一直傳播著一個詞:顛覆。前端工程師要借助Node.js顛覆以往的web開發模式,簡單說就是用Node.js取代php、ruby、python等語言搭建web server,在這個顛覆運動中,JavaScript是前端工程師的信心源泉。我們不討論Node.js與php們的對比,只在可行性這個角度來講,大前端這個方向吸引越來越多的前端工程師。

其實大前端也可以理解為全棧工程師,全棧的概念與編程語言沒有相關性,核心的競爭力是對整個web產品從前到后的理解和掌握。

那么在大前端模式下,構建又是扮演什么角色呢?請看下圖:

大前端體系下,前端開發人員掌握著Node.js搭建的web server層。與上文提到的常規前端開發體系下相比,省略了mock server的角色,但是構建在大前端體系下的作用并沒有發生改變。也就是說,不論是大前端還是“小”前端,構建階段在兩種模式下的作用完全一致,構建的作用就是對靜態資源以及模板進行處理,換句話說:構建的核心是資源管理。

3.2 資源管理要做什么?

前端的資源可以分為靜態資源和模板。模板對靜態資源是引用關系,兩者相輔相成,構建過程中需要對兩種資源使用不同的構建策略。

目前仍然有大多數公司將模板交由后端開發人員控制,前端人員寫好demo交給后端程序員“套模板”。這種協作模式效率是非常低的,模板層交由前端開發人員負責能夠很大程度上提高工作效率。

3.2.1 靜態資源構建策略

靜態資源包括js、css、圖片等文件,目前隨著一些新規范和css預編譯器的普及,通常開發階段的靜態資源是:

  1. es6/7規范的文件;

  2. less/sass等文件(具體看團隊技術選型);

  3. [可選]獨立的小圖標,在構建階段使用工具處理成spirit圖片。

構建階段在處理這些靜態文件時,基本的功能應包括:

  1. es6/7轉譯,比如babel;

  2. 將less/sass編譯成css;

  3. spirit圖片生成;

以上提到的幾個功能可以說是為了彌補瀏覽器自身功能的缺陷,也可以理解為面向語言本身的,我們可以將這些功能統稱為預編譯。

除了語言本身,靜態資源的構建處理還需要考慮web應用的性能因素。比如開發階段使用組件化開發模式,每個組件有獨立的js/css/圖片等文件,如果不做處理每個文件獨立上線的話,無疑會增加http請求的數量,從而影響web應用的性能表現。針對諸如此類的問題,構建階段需要包括以下功能:

  1. 依賴打包。分析文件依賴關系,將同步依賴的的文件打包在一起,減少http請求數量;

  2. 資源嵌入。比如小于10KB的圖片編譯為base64格式嵌入文檔,減少一次http請求;

  3. 文件壓縮。減小文件體積;

  4. hash指紋。通過給文件名加入hash指紋,以應對瀏覽器緩存引起的靜態資源更新問題;

  5. 代碼審查。避免上線文件的低級錯誤;

以上幾個功能除了壓縮是完全自動化的,其他兩個功能都需要人工的配置。比如為了提升首屏渲染性能,開發人員在開發階段需要盡量減少同步依賴文件的數量。

以上提到的所有功能可以理解為工具層面的構建功能。

以上提到的構建功能只是構建工具的基本功能。如果停留在這個階段,那么也算是個及格的構建工具了,但也僅僅停留在工具層面。對比目前較流行的一些構建產品,比如fis,它具備以上所得的編譯功能,同時提供了一些機制以提高開發階段的生產效率。包括:

  1. 文件監聽。配合動態構建、瀏覽器自動刷新等功能,提高開發效率;

  2. mock server。并非所有前端團隊都是大前端(事實上很少團隊是大前端),即使在大前端體系下,mock server的存在也是很有必要的;

我們也可以將上面提到的功能理解為平臺層面的構建功能。

3.2.2 模板的構建策略

模板與靜態資源是容器-模塊關系。模板直接引用靜態資源,經過構建后,靜態資源的改動有以下幾點:

  1. url改變。開發環境與線上環境的url肯定是不同的,不同類型的資源甚至根據項目的CDN策略放在不同的服務器上;

  2. 文件名改變。靜態資源經過構建之后,文件名被加上hash指紋,內容的改動導致hash指紋的改變。

其實url包括文件名的改動,之所以將兩者分開論述是為了讓讀者區分CDN與構建對資源的不同影響。

對于模板的構建宗旨是在靜態資源url和文件名改變后,同步更新模板中資源的引用地址。

現在有種論調是脫離模板的依賴,html由客戶端模板引擎渲染,簡單說就是文檔內容由JavaScript生成,服務端模板只提供一個空殼子和基礎的靜態資源引用。這種模式越來越普遍,一些較成熟的框架也驅動了這個模式的發展,比如React、Vue等。但目前大多數web產品為了提高首屏的性能表現,仍然無法脫離對服務端渲染的依賴。所以對模板的構建處理仍然很有必要性。

具體的構建策略根據每個團隊的情況有所差異,比如有些團隊中模板由后端工程師負責,這種模式下fis的資源映射表機制是非常好的解決方案。本文不討論具體的構建策略,后續文章會詳細講述。

模板的構建是工具層面的功能。

3.2.3 小結

構建可以分為工具層面和平臺層面的功能:

  • 工具層面

  1. 預編譯,包括es6/7語法轉譯、css預編譯器處理、spirit圖片生成;

  2. 依賴打包;

  3. 資源嵌入;

  4. 文件壓縮;

  5. hash指紋;

  6. 代碼審查;

  7. 模板構建。

  • 平臺層面

  1. 文件監聽,動態編譯;

  2. mock server。

4. 總結

一個完整的前端工程體系應該包括:

  1. 統一的開發規范;

  2. 組件化開發;

  3. 構建流程。

開發規范和組件化開發面向的開發階段,宗旨是提高團隊協作能力,提高開發效率并降低維護成本。

構建工具和平臺解決了web產品一系列的工程問題,旨在提高web產品的性能表現,提高開發效率。

隨著Node.js的流行,對于前端的定義越來越寬泛,在整個web開發體系中。前端工程師的角色越來越重要。本文論述的前端工程體系沒有涉及Node.js這一層面,當一個團隊步入大前端時代,前端的定義已經不僅僅是“前端”了,我想Web工程師這個稱號更合適一些。

之前跟一位前端架構師討論構建中對于模塊化的處理時,他提到一個很有意思的觀點:所謂的壓縮打包等為了性能做出的構建,其實是受限于客戶端本身。試想,如果未來的瀏覽器支持大規模并發請求、網絡延遲小到微不足道,我們還需要壓縮打包嗎?

誠然,任何架構也好,策略也好,都是對當前的一種解決方案,并不是一條條鐵律。脫離了時代,任何技術討論都沒有意義。


返回頂部
亚洲一区二区三区在线播放,伊人久久精品无码av一区,亚洲国产精品一区二区第一页免,无码aⅴ精品一区二区三区浪潮
<span id="fu32q"></span>
    1. <li id="fu32q"><meter id="fu32q"><th id="fu32q"></th></meter></li>
      麻豆国产一区二区| 成人手机电影网| 狠狠色丁香婷综合久久| 国产a久久麻豆| 91天堂素人约啪| 国产成人精品影院| jlzzjlzz国产精品久久| 国产成人自拍高清视频在线免费播放| 91蜜桃视频在线| 久久66热偷产精品| kk眼镜猥琐国模调教系列一区二区| 99精品热视频| www.在线成人| 蜜臀精品一区二区三区在线观看| av不卡免费电影| 精品系列免费在线观看| 91免费观看国产| 国产成人综合网| 韩国欧美国产1区| 青草av.久久免费一区| aaa亚洲精品| 国产激情一区二区三区| 九九视频精品免费| 蜜桃久久av一区| 91在线观看高清| 国产99久久久国产精品潘金 | 国产精品自产自拍| 国模娜娜一区二区三区| 黑人巨大精品欧美一区| 97久久超碰国产精品电影| 国产成人aaa| 国产在线日韩欧美| 精品一区二区三区影院在线午夜| 日韩高清不卡在线| 蜜桃一区二区三区在线| 日韩电影在线观看电影| 久久66热偷产精品| 极品美女销魂一区二区三区免费| 日本不卡视频在线| 男女视频一区二区| 轻轻草成人在线| 蜜桃av一区二区在线观看| 视频一区国产视频| 日韩专区中文字幕一区二区| 97aⅴ精品视频一二三区| 99久久国产综合精品麻豆 | 国产一区二区三区观看| 久久99精品国产麻豆婷婷洗澡| 免费人成网站在线观看欧美高清| 日韩精彩视频在线观看| 奇米四色…亚洲| 蜜臀国产一区二区三区在线播放| 另类欧美日韩国产在线| 精品一区二区av| 国产精品资源在线看| 国产精品一区2区| 国产 日韩 欧美大片| 成人手机电影网| 日韩制服丝袜av| 捆绑调教一区二区三区| 激情综合色综合久久综合| 国产精品影视网| 成人精品视频一区二区三区尤物| 日韩电影免费在线| 久久精品国产77777蜜臀| 狠狠色综合日日| 成人一道本在线| 91麻豆免费视频| 老司机午夜精品| 国产黄人亚洲片| 波多野洁衣一区| 麻豆国产一区二区| 成人一级片在线观看| 日韩制服丝袜先锋影音| 国产九九视频一区二区三区| 99精品视频在线观看| 精久久久久久久久久久| 成人黄色一级视频| 开心九九激情九九欧美日韩精美视频电影 | 激情图区综合网| 丰满白嫩尤物一区二区| 日韩av电影天堂| 国产精品2024| 日韩在线播放一区二区| 久久66热re国产| 91视频你懂的| 国产成人精品www牛牛影视| 日本一区中文字幕| 国产a精品视频| 国产一区二区精品在线观看| 99久久久精品免费观看国产蜜| 久久99这里只有精品| 99久久精品免费| 激情综合网天天干| 日韩av电影天堂| 99re在线精品| 国产91精品露脸国语对白| 奇米四色…亚洲| 日韩国产高清在线| 成人激情小说乱人伦| 黄页视频在线91| 久久精品72免费观看| 91丨九色丨蝌蚪富婆spa| 国产一区视频导航| 理论电影国产精品| 免费在线观看视频一区| 91视视频在线观看入口直接观看www | 视频一区二区三区入口| 粉嫩一区二区三区性色av| 男女男精品视频网| 日韩高清中文字幕一区| 盗摄精品av一区二区三区| 国产在线精品免费av| 免费不卡在线视频| 免费精品视频在线| 美女在线视频一区| 免费观看在线综合| 久久精品国产精品亚洲精品| 男女男精品视频| 毛片av中文字幕一区二区| 91啪九色porn原创视频在线观看| 国产+成+人+亚洲欧洲自线| 国产成人综合在线| 成人在线视频一区二区| 成人v精品蜜桃久久一区| 国产69精品久久久久777| 国产69精品久久久久777| 成人综合婷婷国产精品久久 | 水野朝阳av一区二区三区| 99热在这里有精品免费| 国产电影精品久久禁18| 国产iv一区二区三区| 成人精品一区二区三区中文字幕| 成人免费av资源| 91亚洲永久精品| 日日骚欧美日韩| 免费成人av资源网| 国精品**一区二区三区在线蜜桃| 国产精品一品二品| 国产91精品在线观看| 99久久婷婷国产综合精品| 日韩电影一区二区三区四区| 另类的小说在线视频另类成人小视频在线| 久99久精品视频免费观看| 国产一区二区三区综合| 成人综合激情网| 91麻豆国产在线观看| 美女网站色91| 国产馆精品极品| 91丝袜呻吟高潮美腿白嫩在线观看| 奇米888四色在线精品| 久久av中文字幕片| 国产91在线看| 日韩和欧美的一区| 国产麻豆精品theporn| 成人性生交大片免费| 日韩激情一区二区| 国产精品一区专区| 日韩精品每日更新| 国产成人精品免费视频网站| 日韩国产高清影视| 国产超碰在线一区| 日韩av电影一区| 成人免费精品视频| 久久99精品国产.久久久久| 国产成人一区二区精品非洲| 日韩精品电影一区亚洲| 国产成人精品1024| 久久精品理论片| eeuss鲁片一区二区三区在线观看 eeuss影院一区二区三区 | 狠狠网亚洲精品| 91在线码无精品| 狠狠色丁香久久婷婷综| 99久久99精品久久久久久 | 国产精品系列在线播放| 成人免费的视频| 精品一区二区免费视频| 99re成人在线| 国产+成+人+亚洲欧洲自线| 裸体在线国模精品偷拍| 99国产精品久久久| 国产成人三级在线观看| 久久精品72免费观看| 99re这里只有精品视频首页| 国产成人精品在线看| 韩国精品一区二区| 石原莉奈在线亚洲二区| av一区二区不卡| 国产东北露脸精品视频| 激情五月婷婷综合网| 秋霞午夜鲁丝一区二区老狼| 99久久精品99国产精品 | 国产精品一区二区果冻传媒| 91看片淫黄大片一级在线观看| 国产99久久久国产精品潘金 | 国产综合久久久久久鬼色| 日本中文字幕一区| 91在线国产福利| a美女胸又www黄视频久久| 国产成a人亚洲精| 国产福利一区二区三区视频| 国产剧情一区在线| 国产精品资源网| 国产一级精品在线| 韩国三级中文字幕hd久久精品| 麻豆久久久久久| 久久精品国产99国产精品| 美日韩一级片在线观看| 裸体一区二区三区| 狠狠色狠狠色综合| 国产成人在线网站| 成人少妇影院yyyy| av不卡一区二区三区| 91丝袜呻吟高潮美腿白嫩在线观看| 99久久婷婷国产综合精品电影| av电影在线观看不卡| av亚洲产国偷v产偷v自拍| 成人97人人超碰人人99| aaa亚洲精品一二三区| 日日欢夜夜爽一区| 久久精品久久综合| 国产又粗又猛又爽又黄91精品| 国产一区二区不卡| 波多野洁衣一区| 爽好多水快深点欧美视频| 蜜桃在线一区二区三区| 国产美女视频91| 国产不卡在线一区| 91丨九色丨尤物| 久久se这里有精品| 成人听书哪个软件好| 99精品视频在线观看| 美日韩一级片在线观看| 国产成人自拍网| 三级亚洲高清视频| 精久久久久久久久久久| 成人高清免费观看| 免费高清在线一区| 国产成a人无v码亚洲福利| 首页国产欧美日韩丝袜| 国产一区二区三区综合| 99久久久久久| 极品销魂美女一区二区三区| 不卡av在线免费观看| 久久精品国产在热久久| 国产v日产∨综合v精品视频| 91麻豆精品在线观看| 国产一区二区在线免费观看| 99精品热视频| 国产伦精品一区二区三区免费迷| 不卡一二三区首页| 黄色小说综合网站| 丝袜美腿成人在线| 粉嫩嫩av羞羞动漫久久久| 美腿丝袜亚洲色图| 91丨九色丨蝌蚪富婆spa| 激情综合亚洲精品| 日韩不卡免费视频| 成人久久视频在线观看| 国产自产高清不卡| 日本视频在线一区| 粉嫩aⅴ一区二区三区四区五区| 日韩高清电影一区| av成人老司机| 国产91对白在线观看九色| 久久97超碰色| 三级成人在线视频| av在线一区二区| 国产精品一区二区不卡| 久久精品国产免费| 日韩一区欧美二区| 91首页免费视频| 成人av手机在线观看| 国产激情精品久久久第一区二区 | 高清在线观看日韩| 国产一区福利在线| 国产一区美女在线| 奇米在线7777在线精品| 天堂在线亚洲视频| 成人一区二区三区| 国产激情一区二区三区| 国产麻豆成人传媒免费观看| 精品在线一区二区| 毛片av一区二区| 美女视频免费一区| 视频一区二区三区中文字幕| 99视频热这里只有精品免费| av在线不卡网| 99精品国产热久久91蜜凸| 成人av在线一区二区三区| 国产成人免费视| 国产精品一区二区在线观看不卡| 精品一区二区免费看| 激情六月婷婷久久| 国产一区在线观看视频| 国产精品一区免费视频| 国产一区二区中文字幕| 国产精品一区2区| 国产sm精品调教视频网站| 成人激情免费网站| 99精品久久久久久| 91看片淫黄大片一级在线观看| 91亚洲国产成人精品一区二区三| 91美女福利视频| 另类综合日韩欧美亚洲| 国内久久精品视频| 国产成人亚洲综合a∨婷婷| 成人一二三区视频| 91免费视频观看| 日本欧美加勒比视频| 精品一区二区三区的国产在线播放| 国产一区欧美一区| 不卡的av中国片| 日韩不卡在线观看日韩不卡视频| 久久av老司机精品网站导航| 国产精品一区在线观看乱码 | 麻豆精品在线观看| 国产大陆a不卡| 91免费看`日韩一区二区| 日本亚洲免费观看| 国产一区二区三区四区五区美女| 国产福利一区在线| 日韩经典中文字幕一区| 激情丁香综合五月| 99久久精品国产一区二区三区 | 成人一区二区三区在线观看| 99精品视频在线免费观看| 青青草91视频| 国产91在线观看| 日韩成人一区二区三区在线观看| 国产一区二区免费在线| 成人国产精品免费观看| 免播放器亚洲一区| 成人免费av网站| 精品一区二区久久久| 波多野洁衣一区| 狠狠色丁香久久婷婷综合丁香| av男人天堂一区| 国产真实精品久久二三区| 成人h动漫精品一区二区| 91农村精品一区二区在线| 国产乱码精品一区二区三区忘忧草 | 国产成人av电影在线| 日韩精品亚洲一区二区三区免费| 国产精品资源站在线| 日本午夜精品一区二区三区电影| 国产成人免费视频网站高清观看视频| 91丨九色丨国产丨porny| 国产成人精品一区二区三区四区| 美国十次了思思久久精品导航| 成人av第一页| 国产成人一区二区精品非洲| 蜜臀av性久久久久蜜臀aⅴ | 91麻豆免费在线观看| 国产精品一二一区| 蜜臀av国产精品久久久久| 91在线视频免费观看| 国产精品亚洲一区二区三区在线| 日韩高清国产一区在线| 成人黄色av网站在线| 国产精品原创巨作av| 久久精品国产精品亚洲红杏 | 99精品热视频| 国产精品1024| 国产一区日韩二区欧美三区| 免费观看在线综合色| 日日噜噜夜夜狠狠视频欧美人| 成人av电影在线观看| 高清视频一区二区| 国产精品亚洲午夜一区二区三区| 精品一区二区三区免费| 久久er精品视频| 精品一区二区三区在线观看 | 成人爽a毛片一区二区免费| 国产毛片精品视频| 极品少妇一区二区| 国内精品久久久久影院一蜜桃| 蜜臀精品久久久久久蜜臀| 奇米影视7777精品一区二区| 91美女精品福利| 日韩中文欧美在线| 日韩国产欧美三级| 奇米精品一区二区三区四区| 蜜臀av性久久久久蜜臀av麻豆 | 久久国产三级精品| 麻豆国产精品777777在线| 久久国产麻豆精品| 精品一区二区久久| 国产成人自拍网| 99久久伊人精品| 日本在线不卡一区| 久久99久久精品| 国产毛片精品一区| 成人国产精品免费观看| 99久久er热在这里只有精品66| 日韩精品成人一区二区在线| 久久精品国产精品亚洲综合| 国产在线视频一区二区三区| 粉嫩久久99精品久久久久久夜| 成人一区二区三区|