亭亭五月天在线观看,亭亭五月天在线观看,国产最新av一区二区,国产 高清 中文字幕,99re热久久亚洲综合精品成人,熟妇 一区二区三区,一级做a爰片性色毛片武则天,美女的骚穴视频播放,国产美女午夜免费视频

首頁(yè)>國(guó)內(nèi) > 正文

世界微動(dòng)態(tài)丨提效新紀(jì)元-組件化開(kāi)發(fā)在轉(zhuǎn)轉(zhuǎn)App中的應(yīng)用-后端篇

2023-05-10 11:04:29來(lái)源:轉(zhuǎn)轉(zhuǎn)技術(shù)

1 前言

組件化開(kāi)發(fā)是一種利用可重用的軟件構(gòu)件來(lái)設(shè)計(jì)和開(kāi)發(fā)計(jì)算機(jī)系統(tǒng)的過(guò)程。借助組件化開(kāi)發(fā)可以實(shí)現(xiàn)最小化、高效交付。

平臺(tái)基礎(chǔ)體驗(yàn)部將業(yè)務(wù)邏輯抽象為組件,通過(guò)組合組件快速構(gòu)建商品Feed流,研發(fā)效率整體提升2倍。組件化開(kāi)發(fā)不僅帶來(lái)效率的提升,同時(shí)極大地增加了代碼復(fù)用性、降低了系統(tǒng)的復(fù)雜性等等。本文將詳細(xì)介紹組件化開(kāi)發(fā)的落地過(guò)程,為大家揭曉轉(zhuǎn)轉(zhuǎn)App快速迭代的奧秘。


(資料圖片僅供參考)

2 背景

平臺(tái)基礎(chǔ)體驗(yàn)部主要承接轉(zhuǎn)轉(zhuǎn)App、小程序迭代。

2021年底,基于轉(zhuǎn)轉(zhuǎn)定位于“有質(zhì)檢、放心買賣的二手交易平臺(tái)”的背景,對(duì)首頁(yè)Feed(Feed,即:商品列表頁(yè))、主搜Feed整體改造。排期時(shí),我們發(fā)現(xiàn)商品卡片渲染投入耗時(shí)過(guò)多,無(wú)法完成春節(jié)前交付。短期解決方案,可以額外投入人力,按期交付。但考慮未來(lái)還會(huì)整體改版,需要尋求一種方式,能夠快速承接全平臺(tái)范圍產(chǎn)品迭代。

2022年3月,我們著手策劃新方案,并構(gòu)建出一套組件化開(kāi)發(fā)流程。

2022年9月底,距離轉(zhuǎn)轉(zhuǎn)集團(tuán)宣布品牌升級(jí)還有一個(gè)月的時(shí)間,App、小程序需要整體換新,其中僅Feed功能點(diǎn),升級(jí)多達(dá)20幾處。組件化開(kāi)發(fā)借此契機(jī),開(kāi)始大范圍應(yīng)用,效果得到了印證。

圖1 Feed改版UI示例

3 現(xiàn)狀分析3.1 對(duì)接流程與開(kāi)發(fā)流程

需求正式評(píng)審后,進(jìn)入接口評(píng)審階段,日常對(duì)接流程如下圖所示。

圖2 對(duì)接流程

開(kāi)發(fā)同學(xué)小張,根據(jù)App首頁(yè)UI圖例定字段后,同步給native以及QA。隨后著手另一功能點(diǎn):App收藏夾推薦,定字段、同步字段。

接口評(píng)審后,進(jìn)入開(kāi)發(fā),開(kāi)發(fā)流程如下圖所示。

圖3 開(kāi)發(fā)流程

RD小張開(kāi)發(fā)首頁(yè)時(shí),首先獲取各業(yè)務(wù)的RPC數(shù)據(jù),然后自上而下寫好數(shù)據(jù)渲染邏輯。完成自測(cè)后,提供給native、QA測(cè)試環(huán)境。緊接著,投入到收藏夾功能點(diǎn)開(kāi)發(fā),流程類似。

看似十分順暢的流程,在執(zhí)行過(guò)程中并不順利,總會(huì)有一些“小插曲”,比如:

(1)UI中出現(xiàn)了橫排卡片樣式,卡片上多了一個(gè)心智元素,native小劉要求增加一個(gè)userText字段。

(2)同一個(gè)UI在小程序上卻要使用不同的商品圖尺寸,F(xiàn)E小方大喊:給我返回16×16的尺寸!

(3)小張忙得不亦樂(lè)乎,小趙過(guò)來(lái)支援,給商品圖字段定義為infoImage,與此前的image字段命名不同,QA小張、native小李很生氣,表示我不能接受,字段不統(tǒng)一難于維護(hù)。

圖4 對(duì)接流程中的小插曲

對(duì)接流程問(wèn)題多多,開(kāi)發(fā)流程當(dāng)然也沒(méi)有想象的那么順利。PM會(huì)提出一些臨時(shí)要求:在某些功能點(diǎn)上增加AB實(shí)驗(yàn),或者調(diào)整某處功能點(diǎn)的展示邏輯。RD在實(shí)現(xiàn)過(guò)程中可能會(huì)調(diào)整元素的渲染順序,進(jìn)而影響全局?jǐn)?shù)據(jù)渲染正確性,為了避免代碼調(diào)整引入額外的缺陷,QA的測(cè)試的用例也會(huì)變多。

圖5 開(kāi)發(fā)流程中的小插曲

3.2 項(xiàng)目進(jìn)展

進(jìn)入開(kāi)發(fā)前,RD基于現(xiàn)有的改動(dòng)點(diǎn)做出技術(shù)評(píng)估,輸出排期。以App首頁(yè)、App收藏夾推薦為例,從產(chǎn)品規(guī)則上看,只有RPC數(shù)據(jù)源不同,RD認(rèn)為大部分邏輯是可以復(fù)用的。所以,功能相近的位置可能會(huì)適當(dāng)?shù)臏p少排期。

但實(shí)際開(kāi)發(fā)中,新的代碼邏輯與歷史邏輯存在沖突,無(wú)法順利的融入到數(shù)據(jù)渲染代碼塊。各接口的實(shí)體類定義五花八門,復(fù)用某些數(shù)據(jù)渲染方法時(shí),存在很多實(shí)體之間的數(shù)據(jù)轉(zhuǎn)換,代碼顯得十分臃腫。很多無(wú)法預(yù)知的“小插曲”導(dǎo)致原本答應(yīng)產(chǎn)品在10個(gè)工作日內(nèi)完成20個(gè)Feed改造,即使加班也無(wú)法按時(shí)交付。其他職能的進(jìn)度也會(huì)受到影響,給整個(gè)項(xiàng)目帶來(lái)風(fēng)險(xiǎn)。

圖6 項(xiàng)目進(jìn)展

3.3 問(wèn)題匯總

回顧對(duì)接、開(kāi)發(fā)流程,主要暴露以下幾個(gè)問(wèn)題:

版本、終端、UI差異增加了代碼的復(fù)雜性,難以復(fù)用:RD為了適配各端不同的樣式,或者兼容native產(chǎn)生的線上問(wèn)題,或者為了兼容不同版本的樣式,往往要寫很多控制邏輯,使得代碼邏輯越來(lái)越臃腫,復(fù)雜性與維護(hù)成本逐漸增加。接口返回值字段不統(tǒng)一:因?yàn)殚_(kāi)發(fā)人員的命名習(xí)慣不一致,隨著接口的增多、產(chǎn)品的不斷迭代,可能會(huì)出現(xiàn)多個(gè)字段描述同一個(gè)功能點(diǎn)的情況。接口字段數(shù)量成爆炸式增長(zhǎng),難以維護(hù)。出現(xiàn)問(wèn)題時(shí),RD很難快速定位字段,溝通成本、認(rèn)知成本也會(huì)大幅增加。無(wú)法適應(yīng)產(chǎn)品快速迭代:AB方案的加入、產(chǎn)品邏輯的調(diào)整使得元素的渲染邏輯過(guò)于龐大,元素之間的依賴關(guān)系變得更加復(fù)雜,RD無(wú)法快速交付。工作內(nèi)容重復(fù),排期長(zhǎng),易引入延期風(fēng)險(xiǎn):很多功能點(diǎn)十分相似,但是開(kāi)發(fā)中無(wú)法完美復(fù)用,使得排期較長(zhǎng)。過(guò)長(zhǎng)的排期外加無(wú)法預(yù)知的隱藏問(wèn)題,很有可能帶來(lái)延期風(fēng)險(xiǎn)。3.4 問(wèn)題切入點(diǎn)與解決方案切入點(diǎn)

(1)RPC模塊、數(shù)據(jù)渲染邏輯中,有些內(nèi)容完全一致,如果將他們劃分為模塊,將大幅增加代碼的復(fù)用性。

(2)數(shù)據(jù)渲染數(shù)據(jù)是過(guò)程化的、自上而下的,如果能夠打破這種串行開(kāi)發(fā)模式,各數(shù)據(jù)渲染邏輯之間的耦合性大幅降低。

圖7 流程分析圖示-1

(3)深入觀察單一數(shù)據(jù)渲染內(nèi)部,如果將版本兼容、終端差異、AB實(shí)驗(yàn)等從數(shù)據(jù)渲染邏輯中剝離,只留下核心邏輯,數(shù)據(jù)模渲染更具復(fù)用性。

(4)不同元素的數(shù)據(jù)渲染邏輯之間難免會(huì)存在依賴關(guān)系,需要有一種資源編排機(jī)制,能夠?qū)⒏鲾?shù)據(jù)渲染邏輯按規(guī)則組織起來(lái)。

圖8 流程分析圖示-2

解決方案

結(jié)合相關(guān)的技術(shù)調(diào)研以及業(yè)界相關(guān)的經(jīng)驗(yàn),我們引入了《組件化開(kāi)發(fā)》,即:基于組件的開(kāi)發(fā)。組件、組件化開(kāi)發(fā)帶來(lái)的優(yōu)勢(shì)能夠達(dá)成我們的訴求,組件、組件化開(kāi)發(fā)具體是什么,具有什么優(yōu)勢(shì)?接下來(lái)將具體展開(kāi)描述。

4 走進(jìn)組件化開(kāi)發(fā)4.1 組件定義

組件是一組功能相關(guān)的邏輯、數(shù)據(jù)的聚合。

組件是自包含和完備的,通常以一組完備的API形式開(kāi)放給使用者,使用者不需要了解組件內(nèi)部的邏輯,只需要關(guān)注API的使用,組件的實(shí)現(xiàn)邏輯和依賴由組件自己負(fù)責(zé)。

4.2 組件分類按職能可將組件分為:技術(shù)組件和業(yè)務(wù)組件。業(yè)務(wù)組件是把一組相關(guān)的業(yè)務(wù)邏輯封裝為一個(gè)組件,也稱為管理邏輯組件。按層次可以分為:框架組件、平臺(tái)組件、通用管理邏輯組件、領(lǐng)域管理邏輯組件、行業(yè)管理邏輯組件、個(gè)性化管理邏輯組件等。按來(lái)源可以分為:開(kāi)源組件、商業(yè)組件、自研組件等。4.3 組件模型

組件需要遵守組件模型協(xié)議。組件模型是一組標(biāo)準(zhǔn)。維多利亞大學(xué)電子與計(jì)算機(jī)工程系給出的組件模型如下圖所示。

圖9 組件模型的基礎(chǔ)元素

組件模型包括:接口列表、命名、元數(shù)據(jù)、互通性、自定義組件接口、組合接口、組件演進(jìn)、打包與部署。

4.4 組件特點(diǎn)

一個(gè)設(shè)計(jì)良好的組件應(yīng)該具備如下幾個(gè)特點(diǎn):

可管理:組件是基于統(tǒng)一的模型進(jìn)行設(shè)計(jì)和實(shí)現(xiàn),遵循統(tǒng)一的技術(shù)規(guī)范,由統(tǒng)一的元數(shù)據(jù)進(jìn)行描述,有清晰的分類和分層,可由組件工具進(jìn)行統(tǒng)一管理,以規(guī)范一致的模式進(jìn)行使用??蓮?fù)用:可復(fù)用是組件的一個(gè)核心特點(diǎn)。通常組件都是經(jīng)過(guò)良好的設(shè)計(jì)和封裝的,可以被多個(gè)場(chǎng)景復(fù)用。只有能夠復(fù)用,才能更好地發(fā)揮組件的價(jià)值??膳渲茫簽榱烁玫貜?fù)用,組件在不同的場(chǎng)景下使用時(shí)不需要去修改組件自身,通常組件需要把不同場(chǎng)景下可能會(huì)變化的部分作為可變參數(shù),允許使用者通過(guò)配置不同的值,來(lái)滿足不同使用場(chǎng)景下的需求,使組件具有更好的可復(fù)用性。可配置的內(nèi)容通常包括環(huán)境信息、參數(shù)、規(guī)則、模型屬性等??蓴U(kuò)展:在使用組件的過(guò)程中,當(dāng)通過(guò)配置也無(wú)法滿足場(chǎng)景化的使用需求時(shí),組件的可擴(kuò)展性就變得尤其重要,如果一個(gè)組件不具備可擴(kuò)展性,將極大降低組件的復(fù)用價(jià)值。組件的擴(kuò)展性通??梢酝ㄟ^(guò)良好的設(shè)計(jì)來(lái)實(shí)現(xiàn),如支持繼承,可局部邏輯重寫;支持事件,通過(guò)前置后置事件,允許使用定制規(guī)則和邏輯,就可以更好地滿足不同場(chǎng)景下的個(gè)性化使用需求,提高組件的可復(fù)用性,發(fā)揮出組件更大的價(jià)值。4.5 組件化開(kāi)發(fā)

組件化開(kāi)發(fā):組件化開(kāi)發(fā),即:基于組件的開(kāi)發(fā)(Component-Based Development,簡(jiǎn)稱:CBD),是一種利用可重用的軟件構(gòu)件(組件)來(lái)設(shè)計(jì)和開(kāi)發(fā)計(jì)算機(jī)系統(tǒng)的過(guò)程。

組件化開(kāi)發(fā)的起源:組件化開(kāi)發(fā)出現(xiàn)于20世紀(jì)90年代末。當(dāng)時(shí)面向?qū)ο蠼i_(kāi)發(fā)(Object-Oriented,簡(jiǎn)稱:OO)沒(méi)有像最初建議的那樣被廣泛的重用。OO產(chǎn)生了大量細(xì)粒度的類、對(duì)象和關(guān)系,在這些較小的單元中發(fā)現(xiàn)可重用的部件是非常困難的。CBD背后的思想是集成相關(guān)的部分并對(duì)它們進(jìn)行集體重用。

4.6 組件化開(kāi)發(fā)的類型

組件化開(kāi)發(fā)分為兩類:機(jī)會(huì)式重用、帶有開(kāi)發(fā)量的重用。

機(jī)會(huì)式重用:根據(jù)已有的組件組合成一套系統(tǒng)。

圖10 機(jī)會(huì)式重用

帶有開(kāi)發(fā)量的重用:根據(jù)需求,定制開(kāi)發(fā)某些組件,然后將組件組合成一套系統(tǒng)。

圖11 帶有開(kāi)發(fā)量的重用

在日常的使用場(chǎng)景中,因?yàn)楫a(chǎn)品不斷地迭代,使用現(xiàn)有組件直接組合成系統(tǒng)的場(chǎng)景較少,帶有開(kāi)發(fā)量的組件重用應(yīng)用場(chǎng)景更為廣泛。

4.7 組件化開(kāi)發(fā)的優(yōu)勢(shì)最小化交付:基于現(xiàn)有的組件,即可裝配成系統(tǒng)。高效:開(kāi)發(fā)人員可以更集中關(guān)注需求變更點(diǎn),快速完成產(chǎn)品升級(jí)。提升系統(tǒng)質(zhì)量:開(kāi)發(fā)人員可以有更多的時(shí)間來(lái)確保系統(tǒng)質(zhì)量。組件的高質(zhì)量決定了系統(tǒng)的質(zhì)量。減少支出:減少資源投入。5 組件化開(kāi)發(fā)的落地過(guò)程

借助組件化開(kāi)發(fā)思想,我們構(gòu)建了一套組件化開(kāi)發(fā)架構(gòu),內(nèi)部稱之為:星環(huán),整體架構(gòu)如下圖所示。

圖12 星環(huán)框架-組件化開(kāi)發(fā)整體架構(gòu)圖

星環(huán)體系可以總結(jié)為兩層一包:聲明層、驅(qū)動(dòng)層以及業(yè)務(wù)組件包。

聲明層:包含基礎(chǔ)聲明、RPC模塊聲明、組件聲明、降級(jí)觸發(fā)規(guī)則聲明。基礎(chǔ)聲明以Java代碼形式聲明,剩余部分以XML形式聲明。

(1)基礎(chǔ)聲明:定義了應(yīng)用名、應(yīng)用上下文、請(qǐng)求參數(shù)、組件的驅(qū)動(dòng)方式等。

(2)RPC模塊聲明:定義了應(yīng)用中包含哪些RPC引用,RPC模塊之間的依賴關(guān)系。

(3)組件聲明:定義了應(yīng)用中包含哪些業(yè)務(wù)組件、組件的屬性、組件的觸發(fā)條件。

(4)降級(jí)觸發(fā)規(guī)則聲明:定義了入口層的監(jiān)控策略、降級(jí)觸發(fā)規(guī)則、監(jiān)控頻率等。

驅(qū)動(dòng)層:負(fù)責(zé)XML配置文件解析加載,RPC/組件的資源編排與執(zhí)行。其中:

(1)RPC驅(qū)動(dòng)層:即復(fù)仇者框架,一種自研的基于事件驅(qū)動(dòng)的并發(fā)調(diào)度模型(了解更多,可查看參考文獻(xiàn)第5點(diǎn)),負(fù)責(zé)解析RPC配置聲明,編排RPC資源,執(zhí)行RPC調(diào)用。

(2)組件驅(qū)動(dòng)層:負(fù)責(zé)組件配置解析,組件命中判定,組件的資源編排以及提供組件驅(qū)動(dòng)入口。

業(yè)務(wù)組件包:由業(yè)務(wù)邏輯組件構(gòu)成的資源包,以jar形式管理。包含:標(biāo)題組件、商品圖組件、到手價(jià)組件等。

此外,還有周邊生態(tài)為之賦能,包括:健康監(jiān)測(cè)、輔助生態(tài)。

健康監(jiān)測(cè):檢測(cè)入口層服務(wù)健康度。當(dāng)指定時(shí)間窗口內(nèi)錯(cuò)誤率達(dá)到上限,觸發(fā)熔斷與降級(jí)。輔助生態(tài):輔助開(kāi)發(fā)人員快速構(gòu)建組件應(yīng)用。包含IDEA XML配置自動(dòng)補(bǔ)全提示、maven腳手架輔助生成代碼框架等。

整個(gè)架構(gòu)是如何逐步構(gòu)建起來(lái)的,構(gòu)建過(guò)程中有哪些需要解決的問(wèn)題,下面分模塊一一介紹。

5.1 前置工作5.1.1 統(tǒng)一組件口徑

首先我們要確定什么是組件,在前文中提到:組件是一組功能相關(guān)的邏輯、數(shù)據(jù)的聚合。其中,數(shù)據(jù)可以理解為接口中的每一個(gè)字段,邏輯即為每個(gè)字段所對(duì)應(yīng)的產(chǎn)品規(guī)則。為什么把每一個(gè)字段定義為一個(gè)組件呢?這與我們的工作職能密切相關(guān),與中臺(tái)后端不同,平臺(tái)后端是服務(wù)于前端的后端,即:BFF(Backend For Frontend)。BFF的主要職責(zé)是組合、使用底層數(shù)據(jù),然后按照產(chǎn)品規(guī)則處理展示邏輯,最后返回給前端。

日常對(duì)接中,后端根據(jù)UI要求定義接口,并根據(jù)各終端特性調(diào)整接口協(xié)議。每個(gè)UI元素對(duì)應(yīng)一組產(chǎn)品規(guī)則,每個(gè)UI元素對(duì)應(yīng)一個(gè)字段。字段又作為前后端數(shù)據(jù)交互的橋梁,把每個(gè)字段劃歸為組件最合適不過(guò)。

圖13 日常對(duì)接流程

圖14 BFF開(kāi)發(fā)模式

5.1.2 推進(jìn)標(biāo)準(zhǔn)化

構(gòu)成組件的元素是一組標(biāo)準(zhǔn)。標(biāo)準(zhǔn)的建立有助于實(shí)現(xiàn)組件的復(fù)用性。前文中,我們把字段定義為組件,字段、組件、UI三者之間一一對(duì)應(yīng)。推進(jìn)組件的標(biāo)準(zhǔn)化,也就是對(duì)字段、UI的標(biāo)準(zhǔn)化。

(1)字段命名標(biāo)準(zhǔn)化

因?yàn)殚_(kāi)發(fā)人員的命名習(xí)慣不一致,可能會(huì)出現(xiàn)多個(gè)字段描述同一個(gè)功能點(diǎn)的情況。當(dāng)以字段維度劃分不同的組件后,組件會(huì)變得非常冗余,在接口對(duì)接時(shí)也會(huì)增加溝通成本。另外,非標(biāo)準(zhǔn)化字段對(duì)native的組件化實(shí)現(xiàn)不是很友好,nanative需要額外維護(hù)非標(biāo)字段數(shù)據(jù)與UI元素的映射,增加了開(kāi)發(fā)與維護(hù)成本。

圖15 native組件化方案

(2)UI樣式標(biāo)準(zhǔn)化

雖然在不同終端、在不同頁(yè)面中UI呈現(xiàn)出個(gè)性化差異。但有些元素背后對(duì)應(yīng)的產(chǎn)品邏輯是一致的。例如:商品卡片中的官方驗(yàn)成色標(biāo)簽傳達(dá)的內(nèi)容一致,在首頁(yè)、主搜可以統(tǒng)一樣式。從產(chǎn)品角度上看,標(biāo)準(zhǔn)化的UI可以在全平臺(tái)營(yíng)造統(tǒng)一的用戶體驗(yàn)氛圍;在技術(shù)方面,不僅降低了維護(hù)API的成本,同時(shí)native根據(jù)標(biāo)準(zhǔn)化的UI可以構(gòu)建出UI組件,進(jìn)而豐富組件庫(kù),提升復(fù)用性。

圖16 不同F(xiàn)eed的共同元素

5.1.3 規(guī)范接口返回值結(jié)構(gòu)

接口返回值中包含著前端展示的各種數(shù)據(jù),隨著產(chǎn)品的迭代,UI中的元素類型會(huì)越來(lái)越多,開(kāi)發(fā)人員習(xí)慣性地不斷在接口返回值中平鋪新增的字段。時(shí)間周期拉長(zhǎng),字段數(shù)量成爆炸性增張,難以維護(hù)。因此,返回值結(jié)構(gòu)也需要有一套標(biāo)準(zhǔn),抑制字段數(shù)量增長(zhǎng)速度。

(1)按對(duì)象內(nèi)容類型收攏字段

以商品卡中的元素為例,頁(yè)面上有很多標(biāo)簽元素:官方驗(yàn)成色標(biāo)簽、功能描述標(biāo)簽、埋點(diǎn)標(biāo)簽等,這些字段在表現(xiàn)形式上都為純圖片或者純文字的形式,可以統(tǒng)一歸納為標(biāo)簽對(duì)象。

圖17 按對(duì)象內(nèi)容類型收攏字段

(2)按功能合并字段

在不同的終端上,圖片鏈接有時(shí)要拼接屬性參數(shù)。以往針對(duì)圖片是否攜帶寬高屬性,我們會(huì)返回兩個(gè)字段picUrl、picUrlWH,現(xiàn)在統(tǒng)一為:picUrl。是否拼接寬高參數(shù)作為組件屬性移動(dòng)到組件中。

(3)融入KV結(jié)構(gòu)

KV結(jié)構(gòu)用來(lái)存儲(chǔ)一些非標(biāo)字段,如:埋點(diǎn)字段postIdMap,包含上報(bào)的埋點(diǎn)透?jìng)髯侄巍?/p>

(4)支持返回值VO擴(kuò)展

暫時(shí)無(wú)法確認(rèn)以后是否被定義為標(biāo)準(zhǔn)化字段,先放在VO的子類VOExt中。VO中只包含標(biāo)準(zhǔn)化字段聲明。

圖18 返回值VO類圖

5.2 組件粒度

獲取組件的執(zhí)行結(jié)果經(jīng)歷兩個(gè)步驟:執(zhí)行RPC調(diào)用,然后依據(jù)產(chǎn)品邏輯進(jìn)行數(shù)據(jù)加工。以實(shí)際使用場(chǎng)景為例:

渲染標(biāo)題時(shí):調(diào)用商品服務(wù),獲取商品基礎(chǔ)信息。

渲染到手價(jià)時(shí):調(diào)用商品服務(wù),獲取商品基礎(chǔ)信息;調(diào)用促銷服務(wù),獲取活動(dòng)促銷信息。

渲染劃線價(jià)時(shí):調(diào)用促銷服務(wù),獲取活動(dòng)促銷信息。

匯總RPC調(diào)用與數(shù)據(jù)渲染的關(guān)系,如下圖所示。

圖19 RPC調(diào)用與數(shù)據(jù)渲染邏輯關(guān)系圖

RPC調(diào)用與數(shù)據(jù)渲染邏輯呈現(xiàn)多對(duì)多的關(guān)系。再次回看組件的定義,組件是一組功能相關(guān)的邏輯、數(shù)據(jù)的聚合。功能邏輯該怎樣去定義呢?若組件的功能邏輯定義為RPC調(diào)用與數(shù)據(jù)渲染邏輯的組合,會(huì)引發(fā)以下問(wèn)題:

(1)RPC重復(fù)調(diào)用:多個(gè)組件中可能包含同一RPC數(shù)據(jù)源,每個(gè)組件獲取一次RPC數(shù)據(jù),重復(fù)調(diào)用,對(duì)下游造成壓力。

(2)組件職責(zé)不單一,難以復(fù)用:若合并多個(gè)組件,只調(diào)用一次RPC,那么組件的職責(zé)不再單一,復(fù)用性降低。

(3)難于資源編排:組件間存在依賴關(guān)系、RPC模塊間也存在依賴關(guān)系,且RPC執(zhí)行順序與組件的執(zhí)行順序沒(méi)有必然聯(lián)系,當(dāng)RPC與數(shù)據(jù)渲染綁定在一起時(shí),難于資源編排。

綜上,RPC調(diào)用要獨(dú)立于數(shù)據(jù)渲染邏輯,組件的功能邏輯只包含數(shù)據(jù)渲染。

進(jìn)一步的,當(dāng)RPC調(diào)用從組件中分離后,需要為組件提供獲取RPC數(shù)據(jù)的方式??梢栽趹?yīng)用上下文中提供屬性域SynchronizedMap存儲(chǔ)RPC結(jié)果集,為二者建立通信橋梁。

圖20 RPC/數(shù)據(jù)渲染間的數(shù)據(jù)交互

5.3 組件類設(shè)計(jì)

依據(jù)組件組件遵循的組件模型協(xié)議,定義組件類包含以下內(nèi)容:

元數(shù)據(jù)

組件類型(componentType):標(biāo)識(shí)當(dāng)前組件隸屬的功能點(diǎn)。例如:標(biāo)題組件、商品圖組件、到手價(jià)組件等等。

依賴的組件列表(dependencyComponentTypeList):標(biāo)識(shí)當(dāng)前組件依賴于哪些業(yè)務(wù)組件基礎(chǔ)數(shù)據(jù)。例如:《券信息》數(shù)據(jù)的有無(wú)依賴于《到手價(jià)》的數(shù)據(jù)情況。

以上屬性定義在組件頂級(jí)接口中,組件頂級(jí)接口類結(jié)構(gòu)如下所示。

圖21 組件頂級(jí)接口

行為定義

通用行為doHandle():定義了組件的標(biāo)準(zhǔn)行為,該行為定義在組件頂級(jí)接口中。

自定義組件接口

自定義行為doInnerHandle():定義了組件的自定義行為。與doHandle()的區(qū)別是:doHandle()中定義的是組件行為的通用執(zhí)行邏輯,doInnerHandle()用于實(shí)現(xiàn)各組件的個(gè)性化業(yè)務(wù)邏輯。該行為定義在自定義組件的頂級(jí)類中,自定義組件的頂級(jí)類結(jié)構(gòu)如下圖所示。

圖22 自定義組件的頂級(jí)類

基礎(chǔ)組件類定義好之后,還需要根據(jù)業(yè)務(wù)場(chǎng)景定義:定義父組件,新建業(yè)務(wù)組件。匯總類圖如下圖所示。

圖23 組件類圖

父組件類

自定義組件的頂級(jí)類中沒(méi)有聲明具體的返回值VO類型。在實(shí)際使用時(shí),需要依據(jù)場(chǎng)景聲明返回值類型,主鍵類型,參數(shù)類型等,這些內(nèi)容聲明在父組件類中。比如在Feed流商品卡片場(chǎng)景,新建FeedComponentHandleService,指定主鍵類型為L(zhǎng)ong類型的商品infoId、指定返回值類型為FeedBaseInfoVOExt等。

業(yè)務(wù)組件類

在父組件類的基礎(chǔ)上,可以新建業(yè)務(wù)組件類,比如:標(biāo)題組件TitleV1、商品圖組件ImageV1、商品圖組件ImageV2...

5.4 參數(shù)傳遞

為了提升RPC模塊、組件的復(fù)用性,在其中會(huì)增加可變參數(shù),允許使用者在不同場(chǎng)景配置不同的值。RPC/組件參數(shù)值來(lái)自于接口參數(shù),當(dāng)直接使用接口請(qǐng)求參數(shù)作為RPC/組件的參數(shù)時(shí),因接口請(qǐng)求參數(shù)屬性域 = {RPC模塊參數(shù)屬性域,組件參數(shù)屬性域,其他參數(shù)},RPC/組件參數(shù)中新增了很多無(wú)用參數(shù)屬性。另一方面接口參數(shù)類型多樣,同一組件難以適配不同場(chǎng)景中,復(fù)用性大幅降低。所以RPC/組件應(yīng)該只關(guān)注自身需要使用的參數(shù)。

圖24 參數(shù)設(shè)置

接口請(qǐng)求參數(shù)與RPC/組件參數(shù)獨(dú)立管理后,當(dāng)外界請(qǐng)求到來(lái)時(shí),需要RPC/組件建立獲取接口參數(shù)的通信方式,RPC/組件獲取參數(shù)屬性值的過(guò)程如下圖所示。

圖25 獲取RPC/組件參數(shù)屬性值的過(guò)程

當(dāng)獲取RPC/組件獲取參數(shù)屬性值時(shí),首先獲取到RPC/組件請(qǐng)求的代理對(duì)象,然后由MethodInterceptor攔截代理對(duì)象的方法,轉(zhuǎn)而執(zhí)行原始請(qǐng)求對(duì)象中的方法。

實(shí)現(xiàn)思路:

(1)定義IRequestFiledAutoMapped接口,屬性域中含有一個(gè)ThreadLocal對(duì)象用于存儲(chǔ)原始請(qǐng)求對(duì)象。RPC/組件請(qǐng)求類均實(shí)現(xiàn)該接口。

(2)定義攔截器MethodInterceptor,用于攔截IRequestFiledAutoMapped各實(shí)現(xiàn)類的方法請(qǐng)求。

(3)定義BeanProcessor,組件Bean生成后,使用Enhancer創(chuàng)建代理對(duì)象。

圖26 請(qǐng)求參數(shù)、自動(dòng)映射處理類圖

5.5 組件命中條件

在傳統(tǒng)編程模式中,數(shù)據(jù)渲染中包含了大量的條件判斷語(yǔ)句,如圖所示。

圖27 耦合條件判斷的數(shù)據(jù)渲染代碼

不同的場(chǎng)景往往只會(huì)命中條件語(yǔ)句中的一個(gè)路徑。將這些條件判斷和產(chǎn)品功能邏輯剝離開(kāi),組件邏輯中只包含產(chǎn)品功能邏輯,將大幅提升組件的復(fù)用性。此外,條件的剝離可以讓功能代碼塊瘦身,開(kāi)發(fā)人員的學(xué)習(xí)、認(rèn)知成本將大幅減少。

回看上圖中的示例,將條件與產(chǎn)品功能邏輯分離后可以劃分為3個(gè)組件:

組件1:title = title + content

組件2:title = tinyTitle

組件3:title = title + paramsValue

劃分之后,可以根據(jù)不同的場(chǎng)景選用不同的組件,組件邏輯更易升級(jí)維護(hù)。

組件模型中規(guī)定了組合組件的接口、規(guī)則。組件的命中條件作為規(guī)則,與組件配合使用,用來(lái)判定某個(gè)場(chǎng)景應(yīng)該選用哪個(gè)組件。實(shí)現(xiàn)上,我們提供了兩種條件的聲明形式。

(1)提供一個(gè)條件頂級(jí)接口IBaseCondition,實(shí)現(xiàn)其中的eveluation()方法,在方法中聲明命中規(guī)則。

圖28 條件頂級(jí)接口

(2)使用EL表達(dá)式描述命中規(guī)則,由Aviator規(guī)則引擎加載規(guī)則。

如何綁定條件與組件,以及如何執(zhí)行命中條件,在5.6中將會(huì)展開(kāi)描述。

5.6 管理多版本組件管理方式

各類組件準(zhǔn)備完畢后,需要將這些組件組織起來(lái),如何組裝組件也需要遵循一套標(biāo)準(zhǔn)。以XML文件描述組件的裝配信息。使用這種聲明方式,各組裝點(diǎn)成塊狀結(jié)構(gòu),層次清晰,以下為XML的配置樣例。

圖29 demoApp1的組件配置樣例

配置文件主要包含四部分:應(yīng)用聲明、RPC模塊聲明、組件聲明、自定義參數(shù)聲明。各部分聲明的內(nèi)容在第5節(jié)的前置介紹中,不再贅述。

加載XML

轉(zhuǎn)轉(zhuǎn)的微服務(wù)由Spring Boot框架支撐,借助AbstractBeanDefinitionParser,重寫其中的parseInternal方法,解析XML,生成單例模式Bean。Bean的結(jié)構(gòu)如下圖所示。

圖30 星環(huán)組件Bean結(jié)構(gòu)

再提組件命中條件

框架中提供了兩種組件條件接入方式:實(shí)現(xiàn)IBaseCondition接口或者使用EL表達(dá)式。在配置文件中,聲明樣例如下圖。

圖31 組件命中規(guī)則聲明示例

(1)若實(shí)現(xiàn)IBaseCondition接口,則完善conditionClass的屬性值,值為IBaseCondition接口實(shí)現(xiàn)類的類路徑。

(2)若使用EL表達(dá)式,則完善conditionEL的屬性值,值為EL表達(dá)式內(nèi)容。

組件命中

當(dāng)條件與功能邏輯分離后,功能邏輯會(huì)演變?yōu)槎鄠€(gè)組件。因?yàn)檎?qǐng)求場(chǎng)景是未知的、不確定的,將組件按照類型收攏起來(lái)為:組件組,如下圖所示。

圖32 組件組配置結(jié)構(gòu)

在實(shí)際場(chǎng)景中,不同的場(chǎng)景只會(huì)命中其中的唯一一個(gè)組件,是否命中組件按照如下的規(guī)則觸發(fā):

(1)自上而下判定組件命中。命中任意組件,則完成該組件組的判定。

(2)優(yōu)先讀取conditionEL配置,規(guī)則引擎執(zhí)行結(jié)果返回true則命中該組件,否則不命中;如果配置了conditionClass類路徑,執(zhí)行條件實(shí)例中的evaluate方法,若方法返回值為true,則命中該組件,否則不命中。

組件收集

當(dāng)完成某一組件組的結(jié)果判定,被命中的組件會(huì)被收集在集合中,即:Set> 中。多個(gè)組件組的組件命中結(jié)果將匯聚在此。

5.7 組件排序

收集好組件列表之后,還不能立即執(zhí)行這些組件的行為。在實(shí)際場(chǎng)景中,組件與組件之間存在數(shù)據(jù)依賴,如下圖所示。

圖33 組件之間的依賴

《券標(biāo)簽》組件的展示條件依賴于《活動(dòng)信息》組件、《到手價(jià)》組件。所以在組件執(zhí)行順序上,需要將《活動(dòng)信息》、《到手價(jià)》組件執(zhí)行前置。底層實(shí)現(xiàn)上,根據(jù)組件間的依賴先后關(guān)系,排序組件。

組件之間的依賴關(guān)系可以主動(dòng)聲明也可通過(guò)自動(dòng)解析獲取到。排序?qū)崿F(xiàn)上,自動(dòng)解析的方式可通過(guò)三色標(biāo)記的逆向解析法實(shí)現(xiàn)組件編排(了解更多,可查看參考文獻(xiàn)第10點(diǎn),4.3.3章節(jié))。我們采取主動(dòng)聲明依賴,有向圖拓?fù)渚幣诺姆绞健?/p>

具體為:

(1)編寫組件時(shí),在組件內(nèi)部聲明本組件類型、依賴的組件類型。

圖34 聲明本組件類型、依賴的組件類型

(2)將每個(gè)組件看作為圖的一個(gè)節(jié)點(diǎn),依賴關(guān)系視為弧,生成一張有向圖,有向圖使用鄰接表存儲(chǔ)。

圖35 組件節(jié)點(diǎn)有向圖

圖36 組件節(jié)點(diǎn)鄰接表

(3)對(duì)有向圖進(jìn)行拓?fù)渑判?,?dāng)有向圖存在環(huán)狀結(jié)構(gòu)時(shí),日志提示存在互相引用;若有向圖無(wú)環(huán),則輸出最終的排序結(jié)果。

圖37 組件節(jié)點(diǎn)拓?fù)渑判?/p>

(4)按序執(zhí)行組件行為。

5.8 組件驅(qū)動(dòng)

經(jīng)過(guò)前述流程,組件模型構(gòu)造完成??蚣苄枰峁┤肟诠┩饨缯{(diào)用。以調(diào)用場(chǎng)景中的實(shí)體數(shù)劃分場(chǎng)景為:?jiǎn)我灰晥D、多視圖。

單一視圖:渲染單一同類實(shí)體的數(shù)據(jù)。例如:某個(gè)商品卡片,某個(gè)商品詳情頁(yè)。多視圖:渲染多個(gè)同類實(shí)體的數(shù)據(jù)。例如:多個(gè)商品卡片,多個(gè)商品詳情頁(yè)。

對(duì)于每個(gè)場(chǎng)景,提供相應(yīng)的調(diào)用入口、自定義驅(qū)動(dòng)組件列表的方法,如下圖所示。

圖38 組件調(diào)用入口類

單一視圖入口:renderView();多視圖入口:renderViewList()。視圖入口中提供自定義驅(qū)動(dòng)組件列表的方法。例如:在多視圖場(chǎng)景中通過(guò)實(shí)現(xiàn)driveCardView()方法,實(shí)現(xiàn)串行執(zhí)行組件或并行執(zhí)行組件。

5.9 新的開(kāi)發(fā)模式

使用組件化開(kāi)發(fā)方式,構(gòu)建feed流只需要以下幾個(gè)步驟:

(1)新建業(yè)務(wù)組件(可選):如果有新的業(yè)務(wù)邏輯,則新建業(yè)務(wù)組件類。

(2)聲明配置:在XML配置中聲明應(yīng)用名、RPC模塊列表、組件列表。

(3)聲明驅(qū)動(dòng):定義應(yīng)用Bean、應(yīng)用上下文、請(qǐng)求參數(shù)、組件的驅(qū)動(dòng)方式等。

(4)執(zhí)行驅(qū)動(dòng):執(zhí)行命中的組件列表。

(5)額外的邏輯處理:埋點(diǎn)日志打印等。

(6)結(jié)果返回

6 效果數(shù)據(jù)

以我的頁(yè)面增加推薦Feed場(chǎng)景為例:

研發(fā)側(cè)效率整體提升:2.2倍。

衡定過(guò)程:組件化模式前工時(shí)投入÷組件化模式后工時(shí)投入。即:84H÷37H≈2.2。

研發(fā)側(cè)投入成本明細(xì)如下:

圖39 研發(fā)效率明細(xì)

7 輔助生態(tài)XML自動(dòng)補(bǔ)全插件

編寫組件配置時(shí),經(jīng)常需要查看組件元信息:組件的屬性等內(nèi)容,影響編寫效率。基于IntelliJ Platform Plugin Template,開(kāi)發(fā)了XML自動(dòng)補(bǔ)全提示插件。

maven腳手架(規(guī)劃中)

組件開(kāi)發(fā)模式,可以沉淀一套代碼結(jié)構(gòu)。腳手架生成通用代碼后,可進(jìn)一步較少開(kāi)發(fā)投入。

8 總結(jié)傳統(tǒng)的開(kāi)發(fā)模式:受版本、終端、產(chǎn)品迭代等多因素影響,隨著時(shí)間的推移,代碼邏輯越來(lái)越復(fù)雜,維護(hù)成本高,復(fù)用性低,無(wú)法應(yīng)對(duì)快速的產(chǎn)品迭代。組件化開(kāi)發(fā)模式:將功能邏輯凝練為組件,代碼更具復(fù)用性。組合組件即可完成系統(tǒng)的構(gòu)建,高效交付。

本文詳細(xì)講述了組件化開(kāi)發(fā)技術(shù)的實(shí)現(xiàn)過(guò)程,希望對(duì)大家有所幫助。歡迎大家在評(píng)論區(qū)留言,也可添加微信號(hào):zpc_1994,進(jìn)一步交流。

9 參考文獻(xiàn)

[1] 畢偉.組件化軟件開(kāi)發(fā)方法,2022,http://mm.chinapower.com.cn/zjqy/gddh/20221207/178571.html

[2] Margaret Rouse.Component-Based Development,2015,https://www.techopedia.com/definition/31002/component-based-development-cbd

[3] UNIC.Component-Based Development,2014,https://www.ece.uvic.ca/~itraore/seng422-06/notes/arch06-7-1.pdf

[4] 闞耀光.appview-auto-degrade-cache,2022.

[5] 陳奇恩.復(fù)雜并發(fā)場(chǎng)景下的并發(fā)調(diào)度模型在轉(zhuǎn)轉(zhuǎn)的演進(jìn)之路,2022,https://mp.weixin.qq.com/s/6o4hQokmRytrb0Hevzly0g

[6] 陸晨,致遠(yuǎn),陳琦.GraphQL及元數(shù)據(jù)驅(qū)動(dòng)架構(gòu)在后端BFF中的實(shí)踐,2021,https://mp.weixin.qq.com/s/mhM9tfWBlIuMVkZQ-6C0Tw

[7] Sam Newman.Backends For Frontends,2015,https://samnewman.io/patterns/architectural/bff/

[8] 谷金.通用商品卡片的設(shè)計(jì)過(guò)程,2022.

[9] 陸晨,致遠(yuǎn),陳琦.標(biāo)準(zhǔn)化思想及組裝式架構(gòu)在后端BFF中的實(shí)踐,2022,https://mp.weixin.qq.com/s/7VlXBl9syw2ppiR3x237bA

[10] 樂(lè)彬,國(guó)梁,玉龍.美團(tuán)外賣廣告平臺(tái)化的探索與實(shí)踐,2022,https://mp.weixin.qq.com/s/Iyd_uYkNI5cH2sv_VwT3NA

[11] 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)[M].北京:清華大學(xué)出版社,2007.163~183.

關(guān)鍵詞:

相關(guān)新聞

Copyright 2015-2020   三好網(wǎng)  版權(quán)所有 聯(lián)系郵箱:435 22 640@qq.com  備案號(hào): 京ICP備2022022245號(hào)-21
日本一区二区三区区别| 色视频在线播放免费观看| 青青草原在线播放日韩| 91香蕉国产亚洲一二三区| 玖辛奈18禁同人污本子| 亚洲宅男噜噜噜66在线观看 | 天天在线播放日韩av| 欧美日韩国产在线中文字幕| 放荡人妻极品少妇全集| 中文乱码字幕人妻熟女人妻| 日本黄页在线观看视频| 中文字幕亚洲无线乱码| 东京热日韩av在线| 精品国产无乱码一区二区三区 | 不用付费特黄特色亚洲特级黄色片| 欧美国产精品久久久免费| 在线视频国产精品欧美| 蜜桃臀少妇白色紧身裤细高跟| 日本少妇人妻凌辱在线| 天天弄天天草天天日天天| 婷婷一区二区三区五月丁| 亚洲成人三级黄色片| 天天夜夜久久精品综合| 大秀成年人国产精品视频| 360偷拍蜜桃臀69式| 中文字幕 首页 人妻| 九一精品人妻一区二区三区| 日韩国产欧美久久一区| 亚洲中文字幕在线视频观看二区| 国产夫妻视频在线观看免费| 神马午夜久久电影网| 最新国产精品拍在线观看| 天天综合久久无人区| 亚洲|久久久久久一二三区丝袜| 在线观看2022av| 老色鬼精品视频在线观看播放| av一区二区三区蜜桃| 在线免费观看欧美小视频| 国产精品性感美女视频| av日韩视频在线观看| 欧美国产精品久久久免费| 欧美日本在线免费视频| 骚穴被阴茎插免费视频| 国产人妻777人伦精品hd超碰 | 五十岁熟女高潮喷水| 欧美大胆a级视频秒播| 国产激情一区二区视频| 天天操天天射天天操天天日| 亚洲同性同志一二三专区| 核xp工厂精品久久亚洲| 天天插天天干天天狠| 极品少妇高潮喷水日出白浆| 欧美日韩久久丝袜在线| 日本高清久久人人爽| 成人精品动漫一区二区| 91精品国产成人久久久久久| 天天插天天干天天狠| 精品视频一区二区三区◇| 亚洲成a人77777| 岛国av成人午夜高清| 亚洲天堂男人的天堂| 一区二区三区午夜福利在线| 搞乱在线在线观看视频| 神马不卡视频在线视频| 人妻色综合aaaaaa网| 中文字幕日韩首页欧美在线激情 | 操死你美女在线视频| 黄在线看片免费人成视频| 天天看天天爱天天日| 人妻在线中文视频视频| 亚av一二三在线观看| 日本清纯中文字幕版| 国产91九色视频在线观看| 午夜精品久久久久久久久久蜜桃 | 亚洲国产精品 久久久| 人妻激情偷乱一区二区三区av| 国产黑色丝袜 在线日韩欧美| 东京热日韩av影片| 亚洲第一成年偷拍视频| 亚洲午夜精品一级毛片app| 又爽又粗又猛又色又黄视频| 亚洲国产精品一区二区第二页| 男人电影天堂在线观看| 国产自拍偷拍在线精品| 91超精品碰国产在线观看| 免费在线观看视频啪啪| av在线男人的天堂亚洲| 成人精品影视一区二区| 99久久国语露脸国产精品| 国产白丝一区二区三区av| 天天干夜夜操夜夜骑| 奇米网首页神马久久| 大秀成年人国产精品视频| 中文字幕观看中文字幕免费 | 青青草一个释放的网站| 熟女人妻aⅴ一区二区三| 91亚洲国产成人久久精品| 久久久久久久久久久久久国产| 日本亚洲精品视频在线观看| 亚洲中文字幕最新地址| 中文人妻av一区二区三区| 日本免费人爱做视频在线观看不卡 | 第一福利视频在线观看| 亚洲av在线免费播放| 2026天天操天天干| 911精产国品一二三产区区| 亚洲永远av在线播放| 国产精品美女免费视频观看| 国产视频成人一区二区| 熟女人妻aⅴ一区二区三| 丝袜美腿日韩av一区| 懂色av之国产精品| 91青青青国产免费高清| 18岁禁一二三区免费体验| 午夜亚洲国产精品中字| 高潮喷水一区二区三区| 青娱乐这里只有精品| 麻豆出品视频在线观看| 亚洲a区在线免费观看| 日韩一级欧美一级片| 黄色av 在线观看| 免费在线小视频你懂的| 天天弄天天草天天日天天| 国产激情一区二区视频| 日韩成人精品久久久免费看| 精品国产人伦一区二区三区| 东京热日韩av在线| 99亚偷拍自图区亚洲| 免费的啪啪视频软件| 亚洲黄色免费在线观看网站| 欧美在线观看视频欧美| 91偷拍被偷拍在线播放| 国产激情视频在线观看的| 亚洲第一中文字幕成人| 91系列视频在线播放| 黑人大巨屌操美女逼| 国产成人综合久久婷婷| 午夜久久久久欠久久久久| 日本免费人爱做视频在线观看不卡| 日韩av电影中文在线免费观看| av天堂hezyo| 桃色成人开心激情网| 色狠狠色综合久久久绯色| av 资源在线播放| 熟女国内精品一区二区三区| 国产av在线免费视频| 操死你美女在线视频| 亚洲春色av中文字幕| 熟女人妻精品视频一区| 国产一区二区手机在线观看| 亚洲国产精品自拍偷拍视频在线| 91精品国产成人久久久久久| 看女人大BB群伦交| 午夜精品老牛av一区二区三区| 偷拍欧美日韩另类图片| 亚洲成人自拍av在线| 夏目彩春av在线看| 亚洲国产精品青青草| 久久内射天天玩天天懂色| 免费中文字幕a级激情| 国产资源网站在线播放| 荣立三等功退休有什么待遇| 亚洲黑人欧美二区三区| 一区二区三区 国产日韩欧美| 妈妈的朋友中字在线免费观看| 黑川堇人妻88av| 亚洲制服丝袜网站中文字幕| 日本高清久久人人爽| ass亚洲熟女ass| 日本福利视频网站导航| 最新日韩中文字幕免费在线观看| 91性高湖久久久久久久久久| 天堂av国产av伦理av| 高潮喷水在线视频观看| 91超碰国产在线观看| 日韩久久九九精品视频| 久久99嫩草99久久精品| a级黄片免费观看| 免费啪啪啪网站在线观看| 日韩最近中文在线观看| 久久久人妻免费视频| 天天操,天天射,天天爽| 91大神福利视频网| av一区二区三区四区五区在线| 最新日韩中文字幕啪啪啪| 美国伦理片午夜理论片| 手机看电影一区二区三区| 久久99嫩草99久久精品| 夜色17s精品人妻熟女av| 69视频在线精品国自产拍| 午夜五十路久久福利| 国产,亚洲,欧美综合| 丰满少妇人妻一区二区三区蜜桃| 中文字幕av人妻一区二区三区| 偷拍熟女大胆免费视频| 夜色17s精品人妻熟女av| 亚洲欧美韩国日本一区二区| 亚洲第一中文字幕成人| 久久99热精品免费观看视| 天天色天天射天天日天天干| 午夜偷拍的视频久久久免费大全| 一区二区九日韩美女| 亚洲欧美国产一本综合首页| 91国产精品乱码久久久久久| 51vv精品视频在线观看| xxxx69在线观看视频| 国产精品成人免费电影| 亚洲精品国品乱码久久久久| 久久99久久99久久97的人| 精品国产污污污污免费观看| 天天做天天日天天搞| 中文字幕国产一区在线视频| 亚洲欧美日韩中文在线观看| 宅男噜噜噜66国产在线观看| 久久久精品人妻无码专区不卡| 欧美精品一区二区三区观看| 国产成人91色精品免费看片| 亚洲欧美精品海量播放| 日本一区二区三区调教性奴视频| 精品一区二区三区喷水内射高潮| 制服丝袜 中文字幕 日韩| 自拍偷自拍亚洲精品10p| 日韩人妻中文字幕二区| 中文字幕 首页 人妻| 在线观看免费啪啪啪| 欧美精品999不卡| 国产av剧变态维修工虐杀美女| 蜜乳视频一区二区三区| 亚洲 自拍 激情 另类| 久久久亚洲熟女一区二区| 天天操天天日天天插天天舔| 国产剧情av在线免费观看| 欧美极品少妇高潮喷水| 青青青在线视频观看97| 少妇被粗大的猛进69视频| 中文字幕人妻精品精品| 大乳丰满人妻中文字幕韩国hd| 亚洲熟妇丰满多毛xxxx网站| 亚洲欧美精品海量播放| 操人妻人妻天天爽天天偷| 天天做天天日天天搞| 五月天男人的天堂中文字幕| 高潮喷水一区二区三区| 亚洲熟女一区二区六区| 91精品久久久久久久久99蜜臀| 青青青在线视频观看97| 亚洲第一中文字幕成人| a级片特黄免费看| 交换的一天中文字幕在线视频| 超碰在线pro中文字幕| 黑鸡巴肏少妇逼视频| 99精品久久99久久久久一| 正在播放麻豆精品一区二区| 中文字幕观看中文字幕免费 | 鸡巴在里面福利视频在线观看| 一区二区三区四区影片| 欧美成人红桃视频在线观看| 狂操鸡巴小骚逼视频免费观看| 可以免费观看日韩av| 亚洲综合色一区二区三区| 日本成人福利电影网| 一区二区三区高清视频3| aa福利影视在线观看| 青青青国产精品视频| 日韩国产欧美久久一区| 乱子伦国产一区二区三区| 裸露视频免费在线观看| 日本四十路人妻熟女| 乱子伦国产一区二区三区| 欧美日韩国产在线中文字幕| 18在线观看免费观看| 99久久99九九九99九| 不用付费特黄特色亚洲特级黄色片 | 精品高潮呻吟久久av| 亚洲成a人77777| 欧美不卡一二三区精品| 黄片视频免费观看视频| 日本熟妇乱妇熟色视频| 美女网站福利在线观看| 二十四小时日本高清在线观看| 成人午夜高清福利视频| 夜夜骚av一二三区| 4438x亚洲最大的成人| 亚洲另类欧美综合久久| 国产夫妻视频在线观看免费| 天天操天天日天天碰| 视频在线+欧美十亚洲曰本| 四虎国产精品国产精品国产精品| av一区二区三区蜜桃| av 资源在线播放| 五月的婷婷综合视频| 天天操天天射天天操天天日| 最近中文字幕免费视频一| 妈妈的朋友中字在线免费观看| 92麻豆一区二区三区| 99女福利女女视频在线播放| 夜夜操夜夜爱夜夜摸| 亚洲男人天堂最新网址大全 | 嗯~嗯~啊啊啊~高潮了软件 | 最新久久这里只有精品| 丰满少妇人妻一区二区三区蜜桃| 黑人大巨屌操美女逼| 国长拍拍视频免费孕妇| 97成人老师在线视频| 天天插天天干天天狠| 亚洲gay视频在线观看| 视频免费在线观看网站| 国产人妻熟女ⅹxx丝袜| 婷婷综合缴情亚洲五月伊人| 国产精品 亚洲欧美 自拍偷拍| 欧美三区四区在线视频| 在线视频自拍第三页| 99女福利女女视频在线播放| 在线免费观看视频18| 制服丝袜中文字幕熟女人妻| 日本免费人爱做视频在线观看不卡 | 搞乱在线在线观看视频| 亚洲18片综合国产av| av一区二区三区蜜桃| 女人高潮潮呻吟喷水网站| 中文字幕在线免费观看成人| 91精品麻豆91夜夜骚| 视频自拍偷拍视频自拍| 日韩人妻中文字幕区| 夜夜爽夜夜操夜夜爱| 日本在线免费观看国产精品| 五月在线视频免费播放91| 中文字幕人妻精品精品| 亚洲欧美一级特黄大片| 亚洲国产精品久久久久久无码| 在线观看免费啪啪啪| 97视频人人爱麻豆| 久久久久久久岛国免费观看| 最近最新最好看的中文字幕| 中文字幕 一区二区在线观看| 69国产精品成人aaaaa片| 日韩一级欧美一级片| av无限看熟女人妻另类av| 亚洲 综合 欧美 一区| 国产免费久久精品99re丫丫 | 亚洲熟女人妻自拍在线视频| 欧美日韩一区二区三区成人影院| 精品精品精品精品精品污污污污| 好看的日本中文字幕在线观看二区| 川上优所有中文字幕在线| 黄片操操操操操操c| 丰满少妇高潮喷水视频| www,日韩av,com| 亚洲永远av在线播放| 福利一二三在线视频观看| 91青青青国产免费高清| 天天看天天爱天天日| 亚洲最大先锋资源采集站 | 久久久久九九九九九12| 男女69视频在线观看免费| 自拍偷拍视频亚洲一区| av激情四射五月婷婷| 9999久久久久老熟妇二区| 亚洲另类激情视频在线看| 男人用大鸡巴狂操女人肉穴| 都市激情校园春色 亚洲| 亚洲欧美日韩电影一区| 熟妇人妻丰满久久久久久久| 精品人妻在线激情视频| 欧美日韩在线观看免费播放| 人人妻人人爽人人爽欧美一区| 人妻激情偷乱一区二区三区av| 国产精品igao为爱寻找激情| 1级黄色片在线观看| 青青青国产精品视频| 国产男人的天堂一区| 老熟女xxxⅹhd老熟女性| 亚洲妹妹我爱你在线观看| 亚洲人妻系列在线视频| 黄色网络中文字幕日本| 国产精品蝌蚪自拍视频| 户外露出视频在线观看| 黄色大片一级老太太操逼| 天天干天天操天天要| 男女69视频在线观看免费| 亚洲自拍偷拍av在线| 东京热日韩av影片| 日本高清有码在线视频| 2018中文字字幕人妻| 激情九月天在线视频| 国产一区二区三区四区精| 91人妻人人爽色啊啊啊| 亚洲综合一区二区三区四区| 亚洲熟女少妇中文字幕系列| 熟女人妻精品视频一区| 国产不卡免费在线观看| 岳母的诱惑电影在线观看| 自拍偷拍亚洲综合第一页| 自拍偷拍亚洲综合第一页| 日韩av熟妇在线观看| 亚洲 偷拍 自拍 欧美| 38av一区二区三区| 亚洲全国精品女人久久久 | 东京热男人的天堂视频| 免费在线观看视频啪啪| 日韩激情文学在线视频| 国产农村乱子伦精精品视频| 亚洲激情视频在线观看免费| 国产成人av在线你懂得| 亚洲熟女在线免费观看| 亚洲综合在线视频在线播放| av在线免费在线观看| 国产视频成人一区二区| 国产av高清二区三区| 人妻少妇视频系列视频在线| 九九热精品视频在线播放| 福利视频导航在线观看| 国产毛片特级Av片| 快进来插我的逼嗯啊视频| 中文字幕 中文字幕 亚洲| 亚洲欧美激情国产综合久久久| 最新国产精品拍在线观看| 人妻中文字幕亚洲在线| 亚洲一级熟妇丰满的女人| av毛片在线观看网址| 亚洲av手机免费在线| 午夜一区二区三区视频在线观看| 人妻女侠被擒受辱记| 欧美成人短视频在线播放| 亚洲熟妇在线视频观看| 国语对白性爱三级片免费看| 婷婷色九月综合激情丁香| 亚洲黄色成人一级片| 亚洲av综合av一去二区三区 | 夜夜爽夜夜操夜夜爱| 青青青青午夜手机国产视频| 大香蕉在线欧美在线视频| 亚洲女人自熨在线视频| 天天摸天天舔天天操天天日| 少妇被中出一区二区| 九色porny91国产| 欧美一级日韩一级亚洲一级va| 中文字幕 首页 人妻| 中文字幕福利视频在线一区| 午夜国产一区二区三区 | 欧美男女一区二区三区| 美女一区二区四区六区八区| 亚洲中文字幕无线乱码人妻精品| 户外露出视频在线观看| 亚洲黄色成人一级片| 中文字幕人妻一区色偷偷久久 | 日韩国产欧美一区二区三区粉嫩| 69视频在线精品国自产拍| 97超碰人人爽人人做| 青青操天堂在线观看视频| 99久久久久久久久久久久久| 九九六视频,这里只有精品| 凹凸视频一区二区在线观看| 男女真人做带声音视频图片| 欧美最新一区二区三区| 日本高清在线观看不卡视频| 黄片操操操操操操c| 欧美日韩一区二区三区成人影院| a级片特黄免费看| 高潮喷水一区二区三区| 日产国产欧美精品另类| 日韩激情亚洲国产欧美另类激情| 琪琪日本福利伦理视频| 啪啪啪网站免费在线看| 四虎国产精品国产精品国产精品| av在线男人的天堂亚洲| 成人午夜av电影网| 国产精美视频精品视频精品| 先锋人妻啪啪中文字幕| 97人妻av人人澡人人爽| 日韩人妻一区二区三区在线观看| 北野中文字幕一区二区| 玖辛奈18禁同人污本子| 日韩国产欧美久久一区| 亚洲精品激情视频在线观看| 国语精品视频自产自拍| 一区二区三区四区影片| 97精品人妻免费视频| 欧美色视频网址大全| 日本一区二区三区区别| 欧美精品999不卡| 玖玖资源站在线观看亚洲| 成年人免费福利在线| 亚洲一区在线视频观看地址| 精品国产污污污污免费观看| 操死你美女在线视频| 欧美久久蜜臀蜜桃资源吧| 国产激情免费在线视频 | 午夜福利国产精品久久久久| 最新日韩av电影在线播放 | xxnxx国产美女| 精久久久久久久久久久久 | 黄色片黄色片黄色片黄色片黄色| 丝袜美腿日韩av一区| 大屁股熟女一区二区视频 | 亚洲一区亚洲二区成人福利| 精产国品一二三产品区别97| 小妹妹爱大棒棒免费观看视频| 黑人和日本人av一区二区| 国产一区二区三区四区精| 天堂在线中文字幕av| 亚洲欧美精品日韩偷拍| 色视频免费观看网址| xxoo福利视频导航| 日本少妇丰满大bbb的小乳沟| 欧美性受黑人猛交裸体视频| 制服丝袜 中文字幕 日韩| 久久99国产中文丝袜| 日本欧美视频在线免费| 大香蕉伊人97在线| 日本欧美亚洲国产啊啊啊| 免费看日韩黄视频在线观看| 伊人网国产在线播放| 天天日天天玩天天摸| 中文字幕精品人妻久久久久| 人妻激情综合久久久久蜜桃| 在线观看中文字幕少妇av| 国产天堂av不卡网| 午夜3p福利视频合集| 丰满少妇_区二区三区| 91超碰国产在线观看| 日本高清 中文字幕| 日韩激情文学在线视频| 亚洲码av一区二区三区| 亚洲欧美激情久久久| 68视频在线免费观看| 午夜久久人妻一级内射av网址| 国产青青青青草免费在线视频| 欧美日韩在线观看免费播放| 精品国模一区二区三区欧美| 精品av天堂毛片久久久| 老牛影视在线一区二区三区| 呻吟求饶的人妻中文字幕| 天天弄天天草天天日天天| 黄色网络中文字幕日本| 2019年中文字幕在线播放视频| 精品视频在线观看免费99| 在线 激情 亚洲 视频| 精品美女洗澡一区二区| 色网站在线观看免费| 亚洲最大的自拍偷拍网| 大片a免费观看在线视频观看| 裸日本资源在线午夜| 天堂av国产av伦理av| 欧美成人红桃视频在线观看| 美女av色播在线播放| 亚洲一区视频中文字幕在线播放| 亚欧洲乱码视频一二三区| 男女啪啪啪网站在线观看免费| yy4080黄色片| 欧美区日本区国产区| 亚欧洲乱码视频一二三区| av男人站在线观看| 岛国av成人午夜高清| 农村大炕有肉大屁股熟妇| 极品风骚人妻3p视频| 人妻超清中文字幕在线乱码| 成人免费视频现网站99在线观看| 五月婷婷伊人久久中文字幕| 伊人免费观看视频一| 天天日 天天舔 天天射| 午夜精品小视频在线播放| 国产白丝一区二区三区av| 男女真人做带声音视频图片| 男人av一区二区三区| 红桃视频国产av在线| 国产精品网站亚洲发布| 一区二区三区四区 在线播放| 国产,亚洲,欧美综合| 欧美日本亚欧在线观看| 爱搞视频在线观看视频91| 午夜福利午夜福利影院| 亚洲激情噜噜噜久久久| 亚洲欧美不卡专业视频| 三区美女视频在线观看| 最新中文字幕久久久久| 男人的天堂av中文字幕| 国产精品剧情av在线播放| 美女黄色啊啊啊啊视频| 99福利一区二区视频| 国产亚洲精品啪啪视频| 美女网站视频久久精品| 国产av在线免费视频| 五月天天堂视频在线| 亚洲欧美成人午夜一区二区| 国产天堂av不卡网| 亚洲综合熟女乱中文| 大屁股熟女一区二区视频| 美女福利网站在线播放| 久久久久高潮白浆久久| 综合久久伊人久久88| 天天曰天天摸天天爽| 色狠狠色综合久久久绯色| 精久久久久久久久久久久 | 天天插天天透天天爽| 全彩漫画口工18禁| 欧美日韩亚洲国产视频二区| 美女网站福利在线观看| 免费绝清毛片a在线播放| 99久久久久久久久久久久久| 超碰在线观看97资源| 久久久久九九九九九12| 免费中文字幕a级激情| a级片特黄免费看| 69精品人妻久久久久久久久久久| 中文字幕 首页 人妻| 可以免费观看日韩av| 天天干夜夜操夜夜骑| 亚洲精品色图1234| 午夜精品小视频在线播放| 亚洲永远av在线播放| 天天干夜夜操夜夜骑| 老司机伊人99久久精品| 亚洲第一区av中文字幕| 2021国产剧情麻豆| 精产国品一二三77777| 欧美一区二区三区视频看| 麻豆白洁少妇在线播放| 最近在线中文字幕免费| 高清av在线婷一区二区色日韩| 老熟妇一区二区三区v∧88| 亚洲精品色图1234| 38av一区二区三区| 国产 少妇 一区二区| 日韩av电影中文在线免费观看 | 中文字幕中文字幕在线中…一区 | 天天干天天色综合久久| 欧美精品999不卡| 夜夜操夜夜爱夜夜摸| 中字幕人妻熟女人妻a62v网| 黄版视频在线免费观看| 懂色av之国产精品| 日本少妇人妻中文在线| 天天天天天天天天日日日| 福利视频导航在线观看| 日韩一级欧美一级片| 亚洲全国精品女人久久久| 手机视频在线观看一区| 五月天男人的天堂中文字幕| 国产视频1区2区3区| 午夜偷拍的视频久久久免费大全| 久久无码高清免费视频| 国产精品黄色片大全| 中文字幕日韩首页欧美在线激情| 99免费观看在线视频| 午夜在线观看一级毛| 天天干天天操天天日天天日| 自拍偷拍 亚洲性图 欧美另类 | 丰满人妻熟女aⅴ一区| 熟女阿高潮合集一区二区| 天天躁狠狠躁狠狠躁性色| 亚洲国产精品自拍偷拍视频在线| 亚洲欧美综合另类最新| 污视频在线观看地址| 男插女视频大全免费| 制服丝袜 中文字幕 日韩| 60路70路日本熟妇| av丝袜免费在线观看| 丰满人妻被猛烈进入中文字幕| 1区3区4区产品乱入视频| 天天干天天操天天要| 亚洲国产日韩精品在线| 欧美丝袜亚洲国产日韩| 久久99久久99久久97的人| 欧美一区二区三区视频看| 操烂你的骚逼天天欧美| 中文字幕av特黄毛片| 日韩成人免费观看电影| 欧美人与动欧交视频| 亚洲一区二区三区四区入口| 国产亚洲综合5388| 人妻在线中文视频视频| yellow在线亚洲精品一区| 亚洲色视频在线播放网站| 老色鬼精品视频在线观看播放| 国产av高清二区三区| 夜夜人人干人人爱人人操| 蜜桃臀少妇白色紧身裤细高跟 | 亚洲国产精品自拍偷拍视频在线| 九九九九九久久久国产| 国产做A爱免费视频在线观看| 国产精品久久人人添| 中文字幕观看中文字幕免费| 大乳丰满人妻中文字幕韩国hd| 91国产精品乱码久久久久久| 中文在线字幕免费观看日韩视频 | 精品一区二区三区免费毛片W| 亚洲成人,国产精品| 五月在线视频免费播放91| 9662av在线视频| 午夜福利午夜福利影院| 男人电影天堂在线观看| 99久久久久久亚洲精品免费| 天天弄天天草天天日天天| 免费啪啪啪网站在线观看| 国语精品视频自产自拍| 天天看片天天摸天天操| 欧美情色av在线观看| 日韩成人精品久久久免费看| 国产男人的天堂一区| 大香蕉尹人在线最新| 日本欧美视频在线免费| 亚洲成人,国产精品| 欧美精品激情在线不卡| 久久久久九九九九九12| 激情久久在线免费观看视频| 亚洲自拍偷拍一区二区中文字幕 | 欧美亚洲国产一区二区| 69久久夜色精品国产69乱电影| 成年人免费黄色av| 精品久久久久久久久久久久久| 国产av高清二区三区| 91精品91久久久久| 三级欧美日韩一区二区三区| 亚洲综合另类欧美久久| 美女扒开逼逼给你看| 国产人妻熟女ⅹxx丝袜| 制服丝袜中文字幕熟女人妻| 亚洲熟妇丰满多毛xxxx网站| 日韩欧美一区二区三区免费看| 蜜桃臀av在线一区二区| 午夜国产成人精品视频观看| 亚洲唯美激情综合四射| 国产av啊啊啊啊啊啊啊| 天天操天天日天天碰| 91激情四射婷婷综合| 亚洲av 综合av| 亚洲男人的天堂最新网址| 国产极品气质外围av| 欧美成人少妇人妻精品| 亚洲午夜精品一级毛片app| av 资源在线播放| 国产精品剧情av在线播放| 久久久视频在线播放| 色视频在线播放免费观看| 91九色91在线视频| 黄色av日韩在线观看| 久久久久国产精品二区| 美女激情久久久久久久| 在线 制服 中文字幕 日韩| 日韩美精品成人一区二区三区四区| 国产午夜羞羞一区二区三区| 欧美性感美女热舞视频| 午夜精品久久秘?18免费观看| 91亚洲精品久久蜜桃| 骚穴被阴茎插免费视频| 欧美久久一区二区伊人| 杜达雄啪啪毛片视频| 久久无码高清免费视频| 欧美日韩在线观看免费播放| 天天日 天天舔 天天射| 狂操鸡巴小骚逼视频免费观看| av无限看熟女人妻另类av| 天天弄天天草天天日天天| 日韩免费黄色片在线观看| 亚洲制服丝袜在线看| 不用付费特黄特色亚洲特级黄色片| 国产在线小视频一区二区| 天天在线播放日韩av| 伊人网在线观看 视频一区 | 日韩三级黄色大片在线观看| 91人妻人人爽色啊啊啊| 2019年中文字幕在线播放视频| 日本一本午夜在线播放| 天天干天天色综合久久| 欧美黄色一区二区三区视频| 国产漂亮白嫩美女在线图片 | 少妇被中出一区二区| av 一区二区三区 熟女| caopeng97在线观看视频| 鸡巴在里面福利视频在线观看| 大尺度久久久久久久| 国产av高清二区三区| 人妻色综合aaaaaa网| 亚洲一区二区偷拍女厕所| av资源中文字幕在线观看 | 老鸭窝在线毛片观看免费播放| 成人av在线视频免费| 国内自拍第一区二区三区| 天天干夜夜撸天天操| 亚洲中文字幕在线视频观看二区| 午夜一区二区三区视频在线观看| 久久久亚洲熟女一区二区| 男人的天堂av中文字幕| 久久久久久免费观看av| 爱搞视频在线观看视频91| 不卡在线一区二区三区| 国产福利小视频在线观看网站| 91超精品碰国产在线观看| 天天干夜夜撸天天操| 琪琪日本福利伦理视频| 欧美成人少妇人妻精品| 久久久国产精品免费视频网| 亚洲最大的自拍偷拍网| 在线 激情 亚洲 视频| 青娱乐不卡视频在线| 欧美日韩高清片在线观看| 午夜福利片无码10000| 青青国产95免看视频| 成人大片男人的天堂| 最近日韩免费在线观看| 国产精品性感美女视频| 99亚偷拍自图区亚洲| 高潮喷水在线视频观看| 欧美区一区二区三视频| 亚洲男人天堂最新网址大全| 啊~插得好快别揉我胸了视频| 91精品麻豆91夜夜骚| 五十岁熟妇高潮喷水| 中国特黄色性生活片| 日本清纯中文字幕版| 国产夫妻视频在线观看免费| 中文字幕中文字幕在线中…一区| 日韩久久不卡免费视频| 国产激情免费在线视频| 60路70路日本熟妇| 天天看天天爱天天日| 男人资源站中文字幕| 60路70路日本熟妇| 骚穴被阴茎插免费视频| 91色哟哟视频在线观看| 欧洲精品在线免费观看| 伊人网在线免费观看| 午夜呻吟亚洲精品中文字幕在上面| 天堂一区二区三区在线等| 操人妻人妻天天爽天天偷| 黑人巨大精品一区二区在线| 2020国产激情视频在线观看| 人妻系列在线免费视频| 2019年中文字幕在线播放视频| 在线观看中文字幕精品av| 五月天天堂视频在线| 中文字幕观看中文字幕免费| 欧美日本国产一区二区| av天堂hezyo| 国产极品气质外围av| 新香蕉视频香蕉视频2| 日本老女人日比视频| 精品人妻 色中文熟女 oo| 黑吊操欧美极品美女| 91超精品碰国产在线观看| 亚洲男人天堂最新网址大全| 极品风骚人妻3p视频| 99精品久久一区二区| 夫妻黄色一级性生活片| av里面的动作是真进去吗| 色欲AV蜜桃一区二区三| 蜜乳视频一区二区三区| 中文字幕在线观看av观看| 色老头一区二区三区四区五区| 二十四小时日本高清在线观看| 欧美一区二区三区爽爽| 99久久国产精品免费消防器材| 欧美成人屋影院在线视频观看| 欧美日韩成人高清中文网| 台湾18禁久久久久久久激情视频| 久久人人爽人人爽人人av东京热| 天天操天天舔天天爽| 精品国产污污污污免费观看| 亚洲欧美日韩电影一区| 午夜8050免费小说| 蜜桃臀av在线一区二区| 可以免费观看日韩av| 上床啪啪啪免费视频| 夜色17s精品人妻熟女av| 亚洲全国精品女人久久久| 大香蕉在线欧美在线视频 | 天天操天天射天天操天天日 | 一区二区三区四区 在线播放| 91色乱一区二区三区| 可在线免费观看av| 全国熟妇精品一区二区免费视频 | 国产精品内射婷婷一级| 日韩A级毛片免费视频| 天天插天天操天天射天天干| 18在线观看免费观看| 国产成人情侣av在线| 亚洲妹妹我爱你在线观看 | 精品不卡一区二区三区| 在线观看视频免费一区二区三区| 大乳丰满人妻中文字幕韩国hd| 91日本精产品一区二区三区| 亚洲成a人77777| 亚洲制服丝袜美腿在线| 公侵犯人妻中文字幕巨| 红桃视频国产av在线| 岳母的诱惑电影在线观看| 91精品视频在线观看视频| 国产在线观看av一区| 黄色av网址在线播放| 国产一级一国产一级毛片| 日本清纯中文字幕版| 九九视频在线观看全部| 抽插小穴啊啊啊视频| 妈妈的朋友中字在线免费观看| 亚洲一区二区三区国产精品电影| 日本电影一级人妻在线播放四区| 猫咪亚洲中文在线中文字幕| 麻豆国产精品777777在| av天堂新资源在线| 制服丝袜中文字幕熟女人妻| 亚洲a级视频在线播放| 黑鸡巴肏少妇逼视频| 91九色91在线视频| 4438全国成人免费视频| 人妻激情综合久久久久蜜桃| 美女露阴道让男人捅| 国产 少妇 一区二区| 大鸡扒操大逼大片免费关看| 国产精品网站的黄色| 久久久久久久久久久久久国产| 日本久久久久久黄色| 成人精品影视一区二区| 精产国品一二三产品区别97| 亚洲理论在线a中文字幕97| 欧美操大黑鸡巴视频在线观看 | 久久久久夜色国产精品电影| 可以免费观看日韩av| 天天操天天舔天天爽| 亚洲图片另类综合小说| yy4080黄色片| 开心激情五月天作爱片| 亚洲精品乱码久久久久app | 中文字幕人妻精品精品| 91偷拍被偷拍在线播放| 在线观看视频免费一区二区三区| 在线 制服 中文字幕 日韩| 日本午夜福利免费在线播放| 午夜一区二区三区视频在线观看| 91 精品视频在线看| 亚洲av日韩久久网站| 丝袜美女诱惑佐佐三上| 东北老女人熟女啪啪视频| 欧美黄色一区二区三区视频| 在线看的免费网站黄| 熟女国内精品一区二区三区| 国产美女主播av在线| 自拍偷拍色图亚洲天堂| av激情四射五月婷婷| 人妻在线中文视频视频| 午夜免费福利老司机| 国产激情一区二区视频| 日韩黄色在线观看网站上| 韩日一级人添人人澡人人妻精品| av日韩视频在线观看| 亚洲男人天堂最新网址大全| 搞乱在线在线观看视频| 91九色国产在线视频| 日本五六十路熟女视频| 天天色 天天操 天天好逼| 美利坚合众国av天堂| 大香蕉伊人97在线| 亚洲成a人片777777张柏芝| 最新国产精品综合网高清| 中文字幕在线观看亚洲情色| 国产在线观看一区二区三区四区| 欧美日韩亚洲国产视频二区| 在线观看免费啪啪啪| 不卡在线一区二区三区| 中文字幕观看中文字幕免费 | 国产人妻777人伦精品hd超碰| 青青草原在线播放日韩| yy4080黄色片| 激情九月天在线视频| 99久久精品视频16| 可以免费观看日韩av| 日本少妇丰满大bbb的小乳沟| 五十岁熟妇高潮喷水| 亚洲午夜熟女在线观看| 免费的啪啪视频软件| 欧美日韩一区二区三区成人影院| 伊人综合在线视频免费观看| 日本老熟老熟妇七十路| 1区3区4区产品乱入视频| 欧美日韩黄片免费在线观看| 每日更新日韩欧美在线| 中出小骚货在线观看| 国产乱码有码一区二区三区| 成人人妻h在线观看| 夜夜躁av麻豆男| 大鸡扒操大逼大片免费关看| 日韩美精品成人一区二区三区四区 | 91久久精品美女高潮喷水白浆| 亚洲美女午夜激情视频在线观看 | 成人av在线视频免费| 97精品视频,全部免费| 久久99热精品免费观看视| 熟女俱乐部jukujoclub| 老司国产精品视频免费观看| 国产,亚洲,欧美综合| 极品少妇高潮喷水日出白浆| 精品国产无乱码一区二区三区| 国色天香一二三期区别大象| 可以直接看av网站| 精品人妻人人做人人爽| 妈妈的朋友2中文字幕在线| 欧美成人久久久桃色aa| 色999日韩偷自拍拍免费| 亚洲人成小说网站色| 亚洲第一区av中文字幕| 国产中文亚洲熟女日韩| 久久亚洲国产成人精品麻豆| 青青草一个释放的网站| 久久久西西gogo日本美女人体| 国产美女高潮精品视频| 日本五六十路熟女视频| 午夜92福利1000| 黄在线看片免费人成视频| 好看的日本中文字幕在线观看二区| 日本韩国欧美在线视频| 色欲AV蜜桃一区二区三| 人妻系列级片在线观看视频| 人人妻人人狠人人爽| 日本四十路人妻熟女| 美女扒开逼逼给你看| 亚洲精品色图1234| 九九视频在线观看全部| 亚洲国产精品 久久久| 中文字幕一区二区三区久久久| 亚洲综合色一区二区三区| 熟妇高潮久久久久久久| 久久久久久高清一区| 在线播放 日韩 av| 婷婷一区二区三区五月丁| 亚洲综合一区二区三区四区| 五月激情婷婷四射基地| 九九热精品视频在线播放| 精久久久久久久久久久久| 911精产国品一二三产区区| julia人妻av一区二区三区| 97精品人妻免费视频| 在线免费观看欧美小视频| 中文字幕欧美人妻在线.| av日韩视频在线观看| 18在线观看免费观看| 色屁屁一区二区三区在线观看| 久久无码高清免费视频| 亚洲在线观看中文字幕av| 老司机免费视频福利0| 操人妻人妻天天爽天天偷| 国产熟女五十路一区二区三区| 日韩av水蜜桃一区二区三区| iga肾三级算严重吗| 国产经典精品欧美日韩| 大香蕉尹人在线最新| 久久免费视频ww一区| 在线中文字幕人妻av| 欧美日韩不卡视频合集| 亚洲理论在线a中文字幕97| 最新中文字幕久久久久| 国产午夜在线播放视频| 视频免费在线观看网站| 国产igao激情在线视频入口| 另类欧美激情校园春色| 看女人大BB群伦交| 成人黄色录像在线观看| 欧美成人红桃视频在线观看| 亚洲成a人77777| 91porny九色视频偷拍| 久久久人妻免费视频| 熟女俱乐部jukujoclub| 国产视频成人自拍蝌蚪视频| 美女一区二区四区六区八区| 日韩人妻精品久久久久| 91九色91在线视频| 色欲AV亚洲AV无码精品| 高清欧美色欧美综合网站| 超碰在线观看97资源| 久久人妻人人草人人爽| 偷拍欧美日韩另类图片| 日韩激情文学在线视频| 91大神福利视频网| 欧美成人少妇人妻精品| 色就色综合偷拍区欧美在线| 女人扒开逼让男人操| 日本高清激情乱一区二区三区 | 天天操天天射天天操天天日| 九一精品人妻一区二区三区| 99精品视频在线在线观看| 开心五月综合激情婷婷| 日日夜夜免费视频精品| 黑人和日本人av一区二区| 91精品夜夜夜一区二区| 午夜野花视频在线观看| 2020年亚洲男人天堂网| 午夜偷拍的视频久久久免费大全| 日本一本午夜在线播放| 天天躁狠狠躁狠狠躁性色| 538欧美在线观看一区二区三区| 精品免费一区二区三区四区视频 | 免费成人av麻豆| 亚洲熟女在线免费观看| 中文字幕麻绳捆绑的人妻| 亚洲精品激情视频在线观看 | 羞羞漫画无限免费观看秋蝉| 欧美成人一二三在线网| 99女福利女女视频在线播放| 国产视频成人自拍蝌蚪视频| 丰满人妻熟女aⅴ一区| 不卡在线一区二区三区| 操烂你的骚逼天天欧美| 欧美vr专区日韩vr专区| 国产视频1区2区3区| 91大神福利视频网| 黄在线看片免费人成视频| 国产主播诱惑毛片av| 欧美精品熟妇免费在线| 新香蕉视频香蕉视频2| 高潮喷水在线视频观看| 欧美巨大另类极品video| 美女激情久久久久久久| 亚洲熟女在线免费观看| 丰满少妇人妻一区二区三区蜜桃| 亚洲 综合 欧美 一区| 国产精品福利久久久久| 青青操天堂在线观看视频| 午夜免费福利老司机| 18禁男女啪啪啪无遮挡| 欧美日韩福利视频网| 亚洲人妻系列在线视频| 97精品视频,全部免费| 亚洲国产精品久久久久久无码| 欧美视频免费观看777| 中文字幕福利视频在线一区| 最新免费在线观看污视频| 免费在线观看黄色小网站| www国产亚洲精品久久久| 青娱乐这里只有精品| 天天日天天干天天日天天干天天| 夜色福利视频免费观看| 日韩黄色在线观看网站上| 亚洲人妻系列在线视频| 国产人妻熟女ⅹxx丝袜| 松本菜奈实最新av在线| 亚洲蜜桃久久久久久| 亚洲图片另类综合小说| 亚洲高清一区二区三区久久| av男人站在线观看| 色欲AV亚洲AV无码精品| 色哟哟亚洲乱码国产乱码精品精| 中文字幕观看中文字幕免费 | av中文字幕国产精品| 女同性恋av在线播放| 欧美一区日韩二区三区四区| 琪琪日本福利伦理视频| 老熟妇一区二区三区v∧88| 天天搞天天操天天干| 欧美日韩成人高清中文网| 欧美黄色一区二区三区视频| 亚洲字幕一区二区夜色av| 99国产精品国产精品毛片19| 色噜噜噜噜色噜噜色合久一| yy4080黄色片| 亚洲国产精品 久久久| 999久久久人妻精品一区| 欧美视频免费观看777| av中文字幕国产精品| 久久人妻人人草人人爽| 亚洲综合色一区二区三区| 亚洲国产综合久久精品| 久久99热精品免费观看视| 丰满少妇_区二区三区| 中文字幕熟女人妻一区| 日日夜夜免费视频精品| 国产人妻777人伦精品hd超碰| 久久一级片三上悠亚| 日本人妻熟妇丰满成熟HD系列| alisontyler和黑人| 91中文字幕视频网站| 99久久精品视频16| 日本少妇熟女乱码一区二区| 宅男噜噜噜66国产在线观看| 国产成人91色精品免费看片| 午夜精品一区二区三区不卡顿| 午夜福利午夜福利影院| 九热精品视频在线观看| 在线中文字幕人妻av| av人摸人人人澡人人超碰小说| 国产福利三级在线观看| 色噜噜噜噜色噜噜色合久一| 天天操天天舔天天爽| 久久一级片三上悠亚| 汤姆提醒30秒中转进站口| 日本久久久久久黄色| 国产精品乱码高清在线观看h| 夜夜躁av麻豆男| 1级黄色片在线观看| 国产激情在线观看一区二区三区| 国产资源在线观看二区| 亚洲av毛片一区二区三区网| 一二三四区国产在线观看| 亚洲欧美一级特黄大片 | 国产成人在线观看hd| 在线成人教育平台排名| 在宿舍强奷两个清纯校花| 成人黄色录像在线观看| 黄色片免费国产精品| 插鸡视频免费网站在线播放| 国产视频1区2区3区| 亚洲一区视频中文字幕在线播放| 成人18禁高潮片免费日本| 久久久久久久精品乱码| 欧洲亚洲一区二区三区四区| 国产欧美福利在线观看| 98热视频精品在线观看| 午夜精品一区二区三区不卡顿| 9420高清视频在线观看国语版| 亚洲制服丝袜网站中文字幕| av无限看熟女人妻另类av| 黄色大片一级老太太操逼| 色视频免费观看网址| 啪啪啪网站免费在线看| 2021国产剧情麻豆| 可以免费观看日韩av| 亚洲午夜国产末满十八岁勿进网站| 欧美日韩福利视频网| 日本电影一级人妻在线播放四区 | 核xp工厂精品久久亚洲| 杜达雄啪啪毛片视频| 亚洲一区二区三区无码在线| 国产精品igao为爱寻找激情| 亚洲精品激情视频在线观看| 美女妩媚午夜诱惑网站| 一看就是假奶的av| 色视频免费观看网址| 亚洲av综合av一去二区三区| 强乱人妻中文字幕日本| 日韩精品欧美一区二区| 伊人免费观看视频一| 1区3区4区产品乱入视频| 69精品互换人妻4p| 亚洲国产精品自产拍在线观看| 18福利视频在线观看| 日本熟女0930视频| 久久久久久高清一区| 乱子伦国产一区二区三区| 东京热日本一区二区三区| 97cao在线视频| 亚洲成人偷拍自拍在线| 91九色国产在线视频| 人人妻人人爽人人摸| 成人av在线视频免费| 老司机伊人99久久精品| 色视频免费观看网址| 午夜偷拍的视频久久久免费大全| 国产清纯一区二区在线观看 | 97精品国产91久久久| 91精品夜夜夜一区二区| 国产午夜羞羞一区二区三区| 都市激情校园春色 亚洲| 亚洲制服丝袜美腿在线| 2021国产在线视频| 红桃视频国产av在线| 69av精品国产探花| 人人妻人人狠人人爽| 午夜美女福利视频在线| 日本美女爱爱视频网站| 国产 少妇 一区二区| 亚洲一区在线视频观看地址| 成人精品动漫一区二区| 人人妻人人狠人人爽| 国产精品黄色片大全| 亚洲成人动漫av在线| 在线免费观看欧美小视频 | 亚洲中文字幕在线av| 久久久久国产精品二区| 最新国产精品久久精品app| 久久久久久a女人处女| 嗯~嗯~啊啊啊~高潮了软件| av一区二区三区蜜桃| 九一精品人妻一区二区三区| 91进入蜜桃臀在线播放| 日韩欧美中文字幕老司机三分钟| 亚洲制服丝袜在线看| 男生用大肌巴操美女骚穴| 制服丝袜 中文字幕 日韩 | 日日躁夜夜躁狠狠操| 日本少妇三级交换做爰做| 亚洲熟女在线免费观看| 精品av天堂毛片久久久| 国产大桥未久一区二区| 天天日 天天舔 天天射| 亚洲熟女一区二区三区250p| 在线观看2022av| 亚洲图片另类综合小说| 男人资源站中文字幕| 一区二区三区观看在线| 2020精品视频在线| 网站在线观看蜜臀91| 国产 少妇 一区二区| 懂色av之国产精品| 亚洲欧美一级特黄大片| 可以直接看av网站| 老鸭窝在线毛片观看免费播放| 亚洲黑人欧美二区三区| 超碰在线观看97资源| 精品av天堂毛片久久久| 中文字幕一区二区三区久久久| 国产高清自拍偷拍在线| 天天操天天搞天天操| 女女抠逼白虎白丝袜| 懂色av之国产精品| 午夜久久人妻一级内射av网址| 亚洲一区二区在线激情| 91久久久久久最新网站| 中文字幕一区二区人妻视频| 大鸡扒操大逼大片免费关看| 亚洲免费午夜污福利| 嗯~嗯~啊啊啊~高潮了软件| 两个人在一起靠逼啊啊啊 | 四季av人妻一区二区三区| 激情久久在线免费观看视频| 美女妩媚午夜诱惑网站| 青青草成人免费自拍视频| 91系列视频在线播放| 日本东京热最新中文字幕| 蜜乳视频一区二区三区| 黑鸡巴肏少妇逼视频| av丝袜免费在线观看| jiee日本美女视频网站| 国产剧情av在线免费观看| 天堂网成人av电影| 欧美精品一区二区三区观看| 日韩在线 中文字幕| 成人午夜av电影网| 99久久99九九九99九| 精品一区二区三区喷水内射高潮| 免费的啪啪视频软件| 99精品久久一区二区| 五月婷婷激情视频网| 免费绝清毛片a在线播放| 日本香港韩国三级黄色| 久久久久性感美女偷拍视频| 91精品91久久久久| 老牛影视在线一区二区三区| 五月的婷婷综合视频| 日本有码精品一区二区三区| 亚洲最大的自拍偷拍网| 偷拍熟女大胆免费视频| 黄片视频免费观看视频| 超碰在线免费观看视频97| 久久无码高清免费视频| 在线 制服 中文字幕 日韩| 九九热视频1这里只有精品| 免费中文三级在线观看| 午夜92福利1000| 裸日本资源在线午夜| 在线观看网站伊人网| 亚洲制服丝袜美腿在线| av在线男人的天堂亚洲| 国产91九色视频在线观看| 精产国品一二三产品区别97| 女同性恋av在线播放| 91久久久精品成人国产| av在线免费在线观看| julia人妻av一区二区三区| 国产男女无套?免费网站下载 | 日本成年视频在线免费观看| 中文字幕熟女人妻丝袜丝在线| 91久久久精品成人国产| 日韩黄色在线观看网站上| 亚洲午夜国产末满十八岁勿进网站| 99福利一区二区视频| 少妇被粗大的猛进69视频| 自拍偷拍亚洲综合第一页| 日韩黄色在线观看网站上| 天天爽天天操天天插| 亚洲精品国品乱码久久久久| 日韩成人精品久久久免费看| 成人资源中文在线观看| 视频在线+欧美十亚洲曰本| 99999久久久精品| 亚洲国产美女主播在线观看| 天天操天天干天天谢| 日本亚洲午夜福利一区二区三区| 天天干天天日天天弄| 汤姆提醒30秒中转进站口| 国产av啊啊啊啊啊啊啊| 久久久人妻免费视频| 美利坚合众国av天堂| 国产成人情侣激情视频| 中文字幕熟女人妻丝袜丝在线| 亚洲熟女人妻自拍在线视频 | 国产美女高潮精品视频| 亚洲精品国产99999| 久久久国产精品免费视频网| 日韩男女视频网站在线观看| 97视频538在线观看| 久草久热这里只有精品| 国内销魂老女人老泬| 日本国产亚洲欧美色综合| 港台美女明星av天堂| 日本在线免费观看国产精品| 日本久久久久久黄色| 亚洲高清免费在线观看视频| 国产视频成人一区二区| 欧美日韩亚洲tv不卡久久| 欧美男男在线观看视频网站| 97人妻av人人澡人人爽| 琪琪日本福利伦理视频| 91美女在线观看视频| 四虎精品久久免费最新| 99热在线只有的精品| 国产极品气质外围av| 亚洲黄色免费在线观看网站| 亚洲人成大片在线观看| 少妇被中出一区二区| 91九色91在线视频| 成人资源中文在线观看| 在线中文字幕人妻av| 岳的大肥屁熟妇五十路| 182tv精品免费在线观看| 91九色91在线视频| avgo成人短视频| 亚洲中文字幕无线乱码人妻精品| 日韩免费黄色片在线观看| av无限看熟女人妻另类av| 欧美大胆a级视频秒播| 桃色成人开心激情网| 国产视频1区2区3区| 1级黄色片在线观看| 国产一级一国产一级毛片| 69av精品国产探花| 黑人大吊大战亚洲女人。| 中文字幕熟女乱一区二区| 日本老熟妇av老熟妇| 日本不卡视频一二三区| 男人av一区二区三区| 手机视频在线观看一区| 在线观看视频免费一区二区三区| 亚洲av在线免费播放| 女人高潮潮呻吟喷水网站| 亚洲乱熟女一区二区三区影片| 蜜桃臀少妇白色紧身裤细高跟| 亚洲一区二区精品在线播放| 亚洲国产日韩欧美一区二区三区,| 国产经典精品欧美日韩| 丰满人妻被猛烈进入中文字幕| 亚洲熟女乱一区二区精品成人| jiee日本美女视频网站| 久久午夜免费鲁丝片| 日本a级2020在线观看| 人妻中文字幕亚洲在线| 日韩美精品成人一区二区三区四区| 中文字幕亚洲乱码精品无限| 亚洲日本欧美韩国另类综合| 激情九月天在线视频| 在线观看中文字幕精品av| 日韩av熟妇在线观看| 四虎精品久久免费最新| 中文字幕日韩人妻在线三区| 亚洲av手机免费在线| 港台美女明星av天堂| 欧美男女一区二区三区| 亚洲自拍偷拍av在线| 亚洲熟女一区二区三区250p| 精产国品一二三产品区别91| 国语对白性爱三级片免费看| 黄色片免费国产精品| 69精品互换人妻4p| 亚洲乱码av一区二区蜜桃av| 91porny九色视频偷拍| 麻豆国产精品777777在| 亚洲熟女在线免费观看| 女生裸体视频免费网站 | 亚洲成人三级黄色片| 玖玖资源站在线观看亚洲| 中文字字幕在线精品乱码| 天天摸天天干夜夜操| 手机视频在线观看一区| 久久内射天天玩天天懂色| 黑川堇人妻88av| 99热在线只有的精品| 中国特黄色性生活片| 免费的啪啪视频软件| 日本不卡视频一二三区| 操死你美女在线视频| 精品不卡一区二区三区| 五月天男人的天堂中文字幕| 一级毛片特级毛片免费的| 天堂一区二区三区在线等|