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

為什么說應用架構需要分類思維?

開發 開發工具
模塊(Module)、組件(Component)、包(Package),這些概念對于我們技術同學并不陌生,但并不是所有人都能理解其要義。

如何定義架構?應用架構的要素有哪些?什么是應用架構中的分類思維?開源應用架構COLA的作者張建飛介紹他在COLA架構設計中的一些思想經驗,分享他的應用架構之道。

模塊(Module)、組件(Component)、包(Package),這些概念對于我們技術同學并不陌生,但并不是所有人都能理解其要義。

深入理解之后,我才發現,其背后的深意是分類思維。而這種分類也是應用架構的核心所在,通過不同粒度、不同層次的分類,把復雜的軟件系統實現控制在可以被理解、被維護的程度。否則,對于動則上100萬行代碼的軟件,人類根本沒有辦法理解和維護。

試想一個極端情況,假如沒有這些概念協助我們分類,我們把所有業務邏輯都寫在一個類里面,會是什么樣的結果呢?我們很多的“非人類”系統,正是因為沒有進行合理的分類造成的。

早期,我不喜歡JavaScript的一個重要原因,正是因為其缺少像Java中package和jar的概念,導致代碼的組織形式比較松散、隨意。這個問題直到ES6、React才得到比較好的解決,在此之前,前端工程師不得不依靠seaJS,requireJS這些框架來做模塊化、組件化的事情。

至此,你可能有疑問,分類有什么魔力?怎么就成了應用架構的核心了呢?客官別著急,由我細細道來。

分類的重要性

所謂分類,就是依據一定的標準對給定的事物進行組別的劃分。我們人類天生就有分類的本能,例如,當我們觀察下面這張圖的時候。

??

??

 

無論是誰,乍一看到上面的六個黑點,都會認為共有兩組墨點,每組三個。造成這種印象的原因主要是,人類大腦會自動將發現的所有事物以某種持續組織起來?;旧?,大腦會認為同時發生的任何事物之間都存在某種關聯,并且會將這些事物按某種邏輯模式組織起來。

之所以我們大腦有這樣的本能,是因為人一次能夠理解的思想或概念的數量是有限的。正如喬治米勒在他的論文《奇妙的數字7》中提出的。人類大腦的短期記憶無法一次容納7個以上的記憶項目。所以,當信息量過大時,唯有歸類分組才能幫助我們去理解和處理問題。

其實,自古及今,人類一直在做著歸類/分類,早在春秋時期,《戰國策》中就提出過“物以類聚,人以群分”的概念。

在互聯網行業,我們會對客戶進行分類,然后針對不同的客戶進行分層運營,也是這個道理。

平常我們所說的分析和綜合的背后,其實就是分類能力。分析是在一個類里面找差異性,綜合是在不同事物中找聯系、找共同性,而這個共同性相當于分類的維度。

分類思維的能力,直接體現的就是看透事物本質的能力。

應用架構中的分類思維

概念定義

在討論架構之前,我們先來明確一下Module、Component和Package這幾個概念。

因為這些概念一直以來存在不小的歧義。通過Stack Overflow上幾十篇詢問這些概念差異的提問,以及五花八門的回答就能可見一斑。

在一篇Stack Overflow的帖子[1]中,我們看到這樣的回答:

The terms are similar. I generally think of a "module" as being larger than a "component". A component is a single part, usually relatively small in scope, possibly general-purpose.

然而,另一篇Stack Overflow的帖子[2],卻有著不同的答案:

There is no criteria to measure which one is greater than the other. One component can contain list of modules, and one module also can contain many components.

在《實現領域驅動設計》一書中,作者有這樣的描述:

If you are using Java or C#, you are already familiar with Modules, though you know them by another name. Java calls them packages. C# calls them namespaces.

然而,在AngularJS的設計文檔[3]中,它對Module和Component是這樣定義的:

The module can be considered as a collection of components, Each component can use other components. One of many modules combines up to make an Application.

??

?

通過比較,結合我自己的認知,我更贊同AngularJS里面的定義,即Module是比Component更大的概念。比如在Maven中,Module是組成Application的第一級層次,而Component的粒度一般比Module要小,多個Component會組成一個Module。

因此,在進一步探討之前,我特意對這些概念做如下定義:

  • 應用(Application):應用系統,有多個Module組成,用方框表示。
  • 模塊(Module):一個Module是有一組Component構成,用正方體表示。
  • 組件(Component):表示一個可以獨立提供某方面功能的物件,用UML的組件圖表示。
  • 包(Package):Package相對比較tricky,它是一種組織形式,和粒度不是一個維度的,也就是說,一個Component可以包含多個Package,一個Package也可以包含多個Component。

基于上面的定義,他們的表示法(Notation)是這樣的:

??

?

應用架構的要素

關于架構的定義有很多,我最喜歡,也是最簡潔的定義是:

??

?

即架構是一種結構,是由物件(Components)+ 物件之間的關系 + 指導原則組成的。

應用架構也是如此,從大的層面來說,企業級應用都逃不過如下圖所示的三層結構,即前端、后端和數據庫。

??

?

對于后端開發來說,應用層是我們的主戰場,也是整個系統最復雜的部分(當然,前端也不簡單),所有的業務邏輯都匯聚在此。所以,對于應用層,我們需要進行進一步拆分,而不僅僅是在這里寫業務邏輯就完事了。

對應用層的進一步分層,就形成了COLA所提倡的四層結構,對應到Maven中,就是有4個Module,編譯打包之后會有4個Jar。一個典型的應用,其Module呈現出如下的結構:

<modules> 
<module>cloudstore-adapter</module> <!--Adapter 層-->
<module>cloudstore-app</module> <!--App 層-->
<module>cloudstore-domain</module> <!--Domain 層-->
<module>cloudstore-infrastructure</module> <!--Infra 層-->
<module>cloudstore-client</module> <!--RPC SDK-->
<module>start</module> <!--SpringBoot啟動-->
</modules>

當業務變得復雜時,這種分層結構自然比沒有分層要好。這也是COLA一直致力要去解決的問題——控制復雜度。

從COLA 1.0的事無巨細,到COLA 3.0的化繁為簡。我漸漸明白,COLA作為應用架構,其核心不是去提供功能,而是提供基模(Archetype)。

在1.0的時候,COLA提供了Interceptor能力,提供了Event Bus能力,提供了擴展點能力。一個是我認為大家“需要”這些,另一個是感覺NB的框架就應該面面俱到,沒有幾個高級功能都不好意思開源。事實證明,我犯了一個慣性錯誤——過度設計。Interceptor完全可以用AOP替代,內部事件和擴展點很少被用到。所以在COLA 3.0的時候,果斷的去掉了這些“雞肋”,只保留了擴展點功能。

回歸到架構的本質,COLA的核心應該是規定應用的結構和規范,即應用架構基模(Archetype)。而不是去糾結那些錦上添花的功能。

升級到COLA 3.1

實際上,這樣的回歸工作,COLA 3.0已經做的差不多了。在這次3.1的升級中,除了進一步去除了Event Bus的功能之外,最重要的就是重新規范了分包策略,和擴充了原來控制層(Controller)的職責。

分包策略調整

分層是一種在功能維度上的橫向切分,即每一層都有自己的職責。

  • Adapter層:路由用戶request + 適配response。
  • App層:接收請求,聯合domain層一起做業務處理。
  • Domain層:領域模型 + 領域能力。
  • Infrastructure層:技術細節(DB,Search,RPC..) + 防腐(Anti-corruption)。

分層處理沒有問題,只是這種功能劃分,會帶來一個問題,即領域維度的內聚性會收到影響。當一個application只負責一個領域的時候沒有問題。然而,當一個application包含多個業務領域的時候,這種內聚性缺失的弊端就比較明顯了。

更好的分包策略是按領域劃分,而不是按功能。因為,領域更內聚,功能是為領域服務的,應該歸屬于領域。

然而,不巧的是,在COLA應用架構里面,我們要綜合橫向功能維度的劃分,和縱向領域維度的劃分,兩個都很好,兩個都想要。怎么辦?我們可以采用物理劃分和邏輯劃分相結合的辦法。

橫向上,我們用Module做有層次劃分,屬于物理劃分??v向上,通過Package來進行邏輯劃分。最后,形成一個如下的結構:

??

?

按照這個思想去分包,在工程中,Module下的頂層package不再是功能,而是領域:

??

?

按照領域的分包策略至少會帶來兩個好處:

  • 系統的可理解性和可維護性更好,用白話說,就是找東西更好找了。
  • 方便以后的拆分,比如下單域(Order)變得越來越復雜,需要拆出去,我們只需要把Order下面的東西遷移到一個新應用就好了。

用Adatper代替Controller

Controller這個名字主要是來自于MVC,因為是MVC,所以自帶了Web應用的烙印。然而,隨著mobile的興起,現在很少有應用僅僅只支持Web端,通常的標配是Web,Mobile,WAP三端都要支持。

在這樣的背景下,狹義的控制層已經不能滿足需求了,因為在這一層,不僅僅要做路由轉發,還要做多端適配,類似于六邊形架構中的Driving Adapter的角色。鑒于此,我們使用適配層(Adapter)替換掉了Controller,一方面,是為了呼應六邊形架構;另一方面,的確也是需要做多端適配。

基于這樣的變化,我重構了COLA Archetype,把Adapter作為一個層次凸顯出來。實際上,Infrastructure也是適配器,是對技術實現的適配(或者叫解耦),比如,我需要數據來幫助構造Domain Entity,但是我不care這個數據是來自于DB、RPC還是Search,或者說,我可以在這些技術實現中進行自由切換,而不影響我Domain層和App層的穩定性。

改造后的COLA在架構風格,模塊、組件以及分包策略上都會有所調整,具體變化請參考下面兩張圖。

COLA架構圖:

??

?

COLA3.1

COLA組件關系圖:

??

?

更多關于COLA 3.1.0的信息,可以訪問:https://github.com/alibaba/COLA 。

組織架構中的分類思維

這么重要的思維能力,其應用肯定不僅僅局限于架構設計的范疇。開篇已經說過了,分類是我們人類的本能,是分析和綜合問題的重要手段。

生產關系決定生產力,好的組織結構會助力業務發展,反之,則會拖業務的后腿。因此,大公司的CEO每年都會花很多時間在組織設計上,這也是為什么,在大廠,每年我們都會看到不小的組織調整。

看到一篇文章《蘋果公司的組織架構是怎樣的》[4],里面介紹了蘋果成功和其優秀的組織架構有關系。如下圖所示,傳統企業偏向于業務型組織,而高科技企業偏向于職能型組織。

??

?

有沒有感覺蘋果的組織架構,和我們的COLA思想是一樣的:),物理上,按照職能劃分;邏輯上,按照業務和產品劃分。

蘋果這樣的組織設計,是因為它是技術和創新驅動的公司,協作成本不是最大的問題,缺少專業性(技術不行),缺少創新才是攸關生死的大問題。所以他寧肯犧牲協同效率,也要確保專業性,也就是說,做攝像頭的只做攝像頭,做iOS的只做iOS,技術leader直接向CEO匯報,可以決定產品的發展方向。因為他們在這個領域更專業。

很早以前,史蒂夫·喬布斯就有這樣的觀點:蘋果公司的經理們應該是他們管理領域的專家。在 1984 年的一次采訪中,他說:

我們在蘋果經歷了那個階段,當時我們出去想,哦,我們要成為一家大公司,讓我們雇傭專業的管理人員。我們出去雇了一群專業的管理人員。一點也不管用……他們知道如何管理,但他們在專業方面什么都不知道。如果你是一個偉大的人,為什么你想為一個你什么都學不到的人工作?你知道什么是有趣的嗎?你知道誰是最好的經理嗎?他們是偉大的個人貢獻者,他們從來都不想成為一名管理者,但卻決定自己必須成為,因為沒有其他人能夠出色地完成工作。

說實話,看完這篇文章,我很感慨,一方面是佩服喬布斯的洞見能力,另一方面也為我們這個行業感到唏噓,業務技術也是技術啊,卻沒有一個像樣的培育發展技術的環境和土壤。

如今,業務技術Leader還有多少是專注在技術上呢,儼然都變成了業務Leader。如果技術Leader都變成了純管理者,那么誰去關心技術,誰去關心代碼,誰去關心工程師的成長呢?

分類學是科學也是藝術

最后,我還是要中庸一下,分類很重要,但同時也很難,帶有一定的主觀性。就像比爾.布萊森在《萬物簡史》里說的:

分類學有時候被描述成一門科學,有時候被描述成一種藝術,但實際上那是一個戰場。即使到了今天,那個體系比許多人認為的還要混亂。以描述生物基本結構的門的劃分為例。許多生物學家堅持認為總數30個門,但有的認為20來個門,而愛德華在《生命的多樣性》一書里提出的數字高達令人吃驚的89門。

我們觀察事物的視角不同,對問題的認知程度不同,得出來的分類也會不同。就拿COLA來說,直到現在的3.1版本,我個人認為其分層和分包的方式才相對比較合理。然而,很有可能在后期的迭代中,分類方式又會改變。

組織架構的分類方式也是一樣,按照業務和職能劃分,都可以。關鍵看其分類是否匹配你組織的特性,沒有最好的分類,只有最合適的。

除了本文分享的分類思維,更多的思維能力還可以參看作者的新書:《代碼精進之路:從碼農到工匠》。這是一本為專業程序員而寫的書,主要分為技藝、思想和實踐三個部分,詳細介紹了編程技巧和方法論、抽象能力、分治思想、常見的應用架構模式,以及COLA架構的設計原理。希望能夠幫助廣大程序員培養良好的編程習慣和思維。

相關鏈接

[1]https://softwareengineering.stackexchange.com/questions/178927/is-there-a-difference-between-a-component-and-a-module

[2]https://stackoverflow.com/questions/2702816/module-vs-component-design

[3]https://medium.com/swlh/angular-component-vs-module-b8c7347c604e

[4]http://www.techweb.com.cn/cloud/2020-10-27/2808376.shtml

【本文為51CTO專欄作者“阿里巴巴官方技術”原創稿件,轉載請聯系原作者】

??戳這里,看該作者更多好文??

 

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2020-11-25 14:48:12

架構運維技術

2021-04-08 10:05:11

架構運維安全

2023-02-06 08:11:19

人工智能機器思維模式

2022-08-26 08:00:19

企業架構IT

2021-11-08 10:20:09

數字化轉型企業技術服務

2015-07-24 16:12:58

應用性能管理

2016-01-20 09:54:51

微服務架構設計SOA

2022-06-07 10:09:20

5GRAN 架構移動通信

2023-10-30 11:13:55

2015-02-03 09:36:45

微服務2015元年

2025-06-04 11:09:09

系統微服務分布式

2009-08-11 15:05:55

云應用開發思維

2020-09-15 12:56:00

數據湖架構

2020-12-20 17:37:38

Java開發代碼

2011-11-08 09:18:42

云計算開源OpenStack

2011-02-16 09:42:04

DevOps

2018-11-05 11:22:00

物聯網平臺物聯網IOT

2022-03-10 10:39:00

LinuxSedAwk

2018-08-08 06:40:50

位置數據物聯網IOT

2018-08-21 21:55:53

點贊
收藏

51CTO技術棧公眾號

国产激情小视频在线| 久草精品视频在线观看| 国产一区二区| 亚洲午夜电影在线观看| 日本不卡一区二区三区在线观看| 中国精品一区二区| 国一区二区在线观看| 亚洲精品日韩久久久| 91精品999| 欧美xxxhd| 亚洲色图一区二区三区| 黑人另类av| 91亚洲精品国偷拍自产在线观看 | 国产精品影视在线观看| 午夜精品在线视频| 国产免费美女视频| 亚洲色图丝袜| 精品国产乱码久久久久久久 | 午夜精品成人av| 一区二区三区在线观看国产 | 色三级在线观看| 成人av影院在线| 91日本在线观看| 国产99免费视频| 亚洲福利免费| 欧美成人性色生活仑片| 18精品爽国产三级网站| 亚州精品视频| 精品国精品自拍自在线| av亚洲天堂网| 99re66热这里只有精品4| 亚洲第一成人在线| 黑人巨茎大战欧美白妇| 色的视频在线免费看| 久久精品视频一区二区三区| 狠狠色伊人亚洲综合网站色| 精品人妻一区二区三区含羞草| 老司机精品久久| 97超视频免费观看| 国产一级理论片| 欧美成人国产| 欧美成人午夜剧场免费观看| av激情在线观看| 99re6这里只有精品| 色哟哟网站入口亚洲精品| 波多野结衣福利| 色婷婷av一区二区三区丝袜美腿| 亚洲成人激情视频| 四虎成人免费视频| 成人知道污网站| 亚洲成人亚洲激情| 白嫩情侣偷拍呻吟刺激| 粉嫩一区二区三区四区公司1| 日韩午夜在线影院| 国产传媒免费观看| 国产999精品在线观看| 91麻豆精品国产自产在线| 中文字幕第17页| www.久久草.com| 欧美一区二区三区性视频| 国产福利精品一区二区三区| 国产精品色婷婷在线观看| 日韩一区二区三区av| 日日夜夜精品视频免费观看| 久久gogo国模啪啪裸体| 日韩精品一区二| av免费观看不卡| 欧美重口另类| 亚洲性69xxxbbb| 亚洲天堂精品一区| 中文字幕一区二区三区在线视频| 欧美日韩福利视频| 日韩精品成人一区| 日韩制服丝袜av| 国产日产久久高清欧美一区| 国产精品视频久久久久久| 国产一区在线精品| 国产精品久久九九| 女人天堂在线| 国产精品久久久久久久浪潮网站| 黄色一级视频播放| bbw在线视频| 一本久道中文字幕精品亚洲嫩| 91热这里只有精品| 精品国产第一国产综合精品| 亚洲国产私拍精品国模在线观看| www.av天天| 久久精品青草| 97国产精品免费视频| 97人妻精品视频一区| 国产最新精品精品你懂的| 国产欧美欧洲| jyzzz在线观看视频| 亚洲精品高清视频在线观看| 自慰无码一区二区三区| 亚洲午夜国产成人| av超碰免费在线| 欧美国产精品一区二区| 国产又粗又猛又爽又黄的网站| 天堂av在线网| 欧美精品粉嫩高潮一区二区| 影音先锋黄色资源| 97视频精品| 欧美资源在线观看| av免费在线不卡| 久久亚洲综合av| 日本一区二区三区四区五区六区| 伊人久久在线| 欧美成人精品3d动漫h| 日韩在线免费观看av| 亚洲精品午夜av福利久久蜜桃| 欧美亚洲第一页| 国产人妖一区二区| 国产日产欧美一区二区三区| 黄色三级中文字幕| 欧美一区=区三区| 日韩国产欧美精品一区二区三区| 永久久久久久久| 视频一区视频二区中文| 国产精品一区二区三区在线观| 日本最新在线视频| 在线亚洲一区二区| 日本黄色录像片| 欧美啪啪一区| 成人写真视频福利网| 国产三区四区在线观看| 精品久久久久久久久久久| 国产人妖在线观看| 亚洲字幕久久| 国产在线视频一区| 国产精品久久一区二区三区不卡 | 4444在线观看| 欧美大陆国产| 在线日韩av观看| 波多野结衣绝顶大高潮| 久久久久久久久久久电影| 激情五月宗合网| 露出调教综合另类| 午夜激情一区二区三区| 久久99久国产精品黄毛片入口| 国产成人亚洲精品自产在线| 国产成人av电影免费在线观看| 亚洲最新免费视频| 香蕉久久一区| 精品国产一区二区三区四区在线观看 | 欧美亚洲在线| 精品视频第一区| 碰碰在线视频| 精品调教chinesegay| 亚洲高清毛片一区二区| 99视频一区二区三区| 欧美一区二区视频在线播放| 我要色综合中文字幕| 欧美美最猛性xxxxxx| 亚洲国产精品成人久久蜜臀| 亚洲综合视频网| www.日本高清| 久久一综合视频| 亚洲高清123| 日韩欧美三区| 欧美另类极品videosbestfree| 国产精品亚洲欧美在线播放| 亚洲欧美一区二区视频| 中文字幕12页| 欧美另类综合| 久久免费一区| 男人亚洲天堂| 欧美成人在线影院| 天堂av2024| 91成人在线观看喷潮| 欧美黄色高清视频| 国产在线播精品第三| 欧美精品在线视频观看| 中文字幕欧美人与畜| 国产成人精品一区二区三区视频 | 精品国免费一区二区三区| 国产大片中文字幕在线观看| 91老司机福利 在线| 午夜国产一区二区三区| 伊人久久大香线蕉综合四虎小说| 国产不卡一区二区三区在线观看| 麻豆蜜桃在线观看| 在线播放国产一区中文字幕剧情欧美 | 丁香花在线影院| 国产一区二区日韩| 99久久亚洲精品日本无码| 亚洲一区成人在线| 国产精品情侣呻吟对白视频| 国产一区二区三区在线观看精品 | 成人交换视频| 久久久久亚洲精品| av女优在线| 亚洲精品在线免费观看视频| 国产成人麻豆免费观看| 夜夜嗨av一区二区三区中文字幕| 97超碰在线免费观看| 精品无码三级在线观看视频 | 亚洲天堂一级片| 成人激情免费网站| 久热精品在线观看视频| 日韩视频一区| 欧美一级免费在线观看| 亚洲黄色录像| 丁香婷婷久久久综合精品国产| 亚洲涩涩在线| 欧美国产日韩一区二区在线观看 | 国产人妖在线播放| 色中色一区二区| 久久婷婷国产麻豆91| 亚洲国产精品成人综合| 日本黄色录像片| 国产一区视频导航| 午夜免费福利在线| 模特精品在线| www精品久久| 一区二区蜜桃| 亚洲乱码一区二区三区| 伊甸园亚洲一区| 国产精品自拍首页| 国产精品白丝久久av网站| 国产精品国产三级国产aⅴ浪潮| 久草在线资源站资源站| 久久精品电影网站| 91网页在线观看| 亚洲精品自在久久| 天天干,天天操,天天射| 日韩欧美亚洲国产另类| 97人妻精品一区二区三区软件 | 久久精品网站视频| 一区二区三区成人精品| 日韩在线免费视频观看| 三级a三级三级三级a十八发禁止| 欧美黄色一区二区| 免费久久久久久| 婷婷综合激情| 亚洲小说欧美另类激情| 国产精品99一区二区三区| 香蕉久久免费影视| 成人三级视频| 天天久久人人| 91欧美在线| 亚洲一区二区三区午夜| 日韩理论电影大全| 亚洲午夜精品国产| 日韩综合一区| 三级网在线观看| 自拍偷拍欧美| 青青草视频在线视频| 综合在线一区| 性高湖久久久久久久久aaaaa| 精品99视频| 无罩大乳的熟妇正在播放| 蜜桃av一区| 99热这里只有精品在线播放| 美女免费视频一区| 免费av不卡在线| 国产a视频精品免费观看| 亚洲精品鲁一鲁一区二区三区| 成人午夜激情在线| 国产精品一区二区入口九绯色| 26uuu精品一区二区| 97人妻精品一区二区免费| 国产精品天美传媒| 国产高清视频免费在线观看| 一区二区三区四区在线播放| 久草视频精品在线| 欧美性色视频在线| 久色视频在线播放| 草草影院在线| 国内伊人久久久久久网站视频 | 国产精品一区二区三区在线播放 | 日韩在线影院| 91精品久久久久久久久久另类 | 91国在线高清视频| 日韩亚洲精品在线| 亚洲五月天综合| 国产高清不卡一区| 免费在线观看你懂的| 中文字幕亚洲成人| 精品午夜福利在线观看| 色综合婷婷久久| 国产精品美女一区| 日韩av最新在线观看| 91在线视频免费看| 国内成人精品视频| 黄色日韩网站| 国产高清不卡av| 欧美少妇xxxx| 欧美乱大交xxxxx潮喷l头像| 日韩高清欧美激情| 男男受被啪到高潮自述| 久久久精品国产99久久精品芒果 | 亚洲精品激情视频| 国产欧美久久久精品影院| 特级片在线观看| 色婷婷国产精品久久包臀| 国产高清不卡视频| 亚洲图片欧美午夜| 国产丝袜精品丝袜| 国产中文欧美精品| 亚洲婷婷伊人| 国产手机视频在线观看| 视频一区二区中文字幕| 中国特级黄色片| 国产精品美女久久福利网站| 日韩av女优在线观看| 欧美精品色综合| 毛片免费在线| 欧美黄色小视频| 日韩黄色三级| 欧美人xxxxx| av不卡在线看| 黄页网站在线看| 国产精品国产三级国产aⅴ无密码| 国产做受高潮漫动| 日韩欧美一区在线| 国产丝袜在线| 国产日韩欧美另类| 国语产色综合| 欧美xxxxx在线视频| 成人黄色国产精品网站大全在线免费观看 | 中文字幕欧美一| 中文字幕一区二区久久人妻| 亚洲欧美综合区自拍另类| 91超碰在线免费| αv一区二区三区| 欧美久久视频| 亚洲精品乱码久久久久久9色| 国产精品久久久久久久久久免费看| 狠狠人妻久久久久久综合| 亚洲国内精品在线| 91av久久| 国产一级特黄a大片99| 韩日视频一区| 年下总裁被打光屁股sp| 亚洲精品欧美专区| 国产日韩在线观看一区| 久久精品一区中文字幕| av一级久久| 热这里只有精品| 国产一区视频在线看| 91嫩草丨国产丨精品| 5858s免费视频成人| 麻豆传媒免费在线观看| 91免费看片网站| 91精品亚洲| japan高清日本乱xxxxx| 亚洲黄色免费网站| 亚洲成人一级片| 久久久久久久一| 三级小说欧洲区亚洲区| 97超碰青青草| 国产日韩欧美综合在线| 中文在线免费看视频| 日日噜噜噜夜夜爽亚洲精品| 久久69av| 国自产拍偷拍精品啪啪一区二区| 99精品国产视频| 你懂的国产在线| 在线视频日韩精品| 伊人亚洲精品| 青草网在线观看| 久久综合九色综合欧美98| 成年人av网站| 久久精品国产69国产精品亚洲| 久久视频社区| 日韩在线综合网| 国产亚洲欧美激情| 国产一区二区在线播放视频| 久久久av一区| 国产精品久久久网站| 日韩一级免费在线观看| 国产精品免费丝袜| 国内精品久久久久久久久久久| 久久免费高清视频| 奇米色欧美一区二区三区| 中文字幕永久有效| 亚洲尤物在线视频观看| 欧洲综合视频| 亚洲字幕一区二区| 亚洲乱码久久| 天天操天天干天天操天天干| 这里是久久伊人| 日韩欧美精品一区二区三区| 亚洲最大免费| 99久久免费视频.com| 中文字幕在线观看欧美| 欧美激情日韩图片| 国产精品免费不| 蜜桃色一区二区三区| 91成人国产精品| caoporn-草棚在线视频最| 亚洲va久久久噜噜噜久久狠狠| 久久福利视频一区二区| 男人天堂中文字幕| 日韩少妇与小伙激情| 色婷婷综合久久久久久| 久久精品久久99| 色婷婷久久一区二区三区麻豆| 任你弄在线视频免费观看|