国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Kotlin與Java之爭 究竟誰更好?

開發 后端
“Kotlin比Java好”,“Kotlin可讀性比Java強”,“Kotlin開發速度比Java快”,類似這樣的陳述缺少相關準確數據的支持,所以都歸為主觀看法一類。主觀看法是個體開發人員在對與Kotlin或Java相關的主題作出一個或多個主觀判斷時形成。

Kotlin

Kotlin 是一門相對比較新的 JVM 語言,JetBrains 自 2011 年以來一直在積極地開發。

多年來,該語言在 Android 社區受到的關注度越來越高,并在 Google IO 2017 大會之后成為 Android 開發領域最熱門的話題。這次大會宣布,Android 正式支持 Kotlin。

遺憾的是,雖然已經有許多關于 Kotlin 的文章,但并沒有多少客觀信息,許多開發人員仍然在苦思冥想,遷移到 Kotlin 是否是一條正確的道路。

在本文的剩余部分,我將嘗試提供一個在將 Kotlin 作為 Java 的替代項進行評估時需要考慮的更完善的事項清單。

Kotlin 與 Java 的主觀比較

“Kotlin 比 Java 好”,“Kotlin 可讀性比 Java 強”,“Kotlin 開發速度比 Java 快”,類似這樣的陳述缺少相關準確數據的支持,所以都歸為主觀看法一類。

主觀看法是個體開發人員在對與 Kotlin 或 Java 相關的主題作出一個或多個主觀判斷時形成。

開發人員的主觀判斷存在如下問題:

  • 沒有與主觀判斷相關聯的量化指標。
  • 主觀判斷存在很大的偏見。
  • 主觀判斷的偏見在開發人員之間存在很大的差異。

由于沒有與主觀判斷相關聯的量化指標,建立在這些判斷基礎上的觀點只是反映出了開發人員之前就有的偏見。不同的開發人員可能有著截然不同的偏見,因此,有開發人員認為 Kotlin 是不錯(或糟糕)的 Java 替代者并不意味著其他開發人員也這么認為。

而且,由于沒有客觀指標,主觀分歧就無法客觀地消除,這經常會導致“口水戰”。

主觀判斷的謬誤

為了說明主觀判斷可能導致的誤解,讓我們仔細審視一個非常常見的主觀看法:

  • Kotlin 可讀性比 Java 強
  • ——Web 上無數的文章

理論上講,可以設法設計一個度量 Kotlin 和 Java 之間可讀性差異的實驗,但據我所知,沒有任何人真正地開展這樣一個實驗。因此,截至目前,這個看法沒有任何數據支撐。

Kotlin 的語法是許多開發人員稱贊其可讀性的一個原因。他們的邏輯如下:

  • Kotlin 有更好的語法,因此它的可讀性更強
  • ——Web 上無數的文章

在這句話中,“更好的語法”又是一個主觀判斷,本身就值得商榷,但為了避免爭論,我們假設 Kotlin 的語法確實更好。但是,這就能說明 Kotlin 的可讀性更強嗎?

為了觀察語法對可讀性的影響,請閱讀下這段“文本”:

Kotlin與Java之爭 究竟誰更好?

開始的時候,這段“文本”很難理解,但慢慢地,讀起來會越來越容易。如果你再讀個兩三遍,那么你根本就不會再注意它是由非標準的字母組成的。準確地說,字母的替換不是句法變化,但這確實可以說明,對于熟練的讀者而言,外觀很少會成為可讀性的障礙。

我們也可以把這個例子擴展到自然語言。我了解三門截然不同的語言。雖然它們之間差別很大,但我發現,當我不理解文本中使用的單詞時,閱讀任何一種語言的文本都非常困難。一旦我認識構成文本的單詞并熟悉上下文——無論它使用了哪一種語言,我讀起來都不困難。

因此,對我而言,語言的選擇并不會影響可讀性,只要理解內容和上下文就可以了。

編程語言同樣如此。

當我們開始使用一門新語言,我們會有一段時間很難理解源代碼,需要認真領會每個句法結構。但是,隨著我們閱讀和編寫特定語言的代碼越來越多,我們逐漸就熟悉了那門語言的語法,到某個時候,我們就不會再注意句法結構了。

我自己在多門語言上有過這種體驗:Verilog、Bash、Perl、Tcl、Lisp、Java。

根據我使用上述語言的經驗,我可以告訴你:如果一個人適應了 Lisp 的代碼,并且不會再注意到小括號,那么跟 Java 比起來,Kotlin 的語法完全不能對可讀性產生不可忽視的影響,即使它“更好”。

既然我們在討論這個話題,我就分享下自己對于影響源代碼可讀性因素的主觀判斷。

在讀過其他開發人員使用許多語言編寫的代碼后(上面只羅列了我在某個階段精通的語言;我用過的所有語言比這個多),我得出如下結論:如果開發人員使用某一門語言可以編寫出可讀性和可理解性都很好的代碼,那么他們通常也可以使用其他語言編寫出可讀性和可理解性都很好的代碼。

因此,我根據自己的經驗作出的主觀判斷是,源代碼的可讀性和選擇的語言無關,那取決于代碼編寫者的技能和讀者的技能(編寫者的技能更重要)。

如果你仍然認為主觀看法具有代表性,那么至少閱讀并思考下 Robert “Uncle Bob” Martin 在 這篇博文 中的觀點。

Kotlin 與 Java 的客觀比較

與主觀比較相反,客觀比較使用量化指標來度量或評估 Kotlin 比 Java 有優勢的地方。

用一套標準客觀地證明一門編程語言是否強過另一門,這種想法非常有吸引力,但是有個問題:據我所知,沒有與編程語言相關的通用客觀指標。

考慮到我們無法進行精確的直接比較,那我們能否客觀地比較 Kotlin 和 Java 呢?能!我們仍然能評估從 Java 切換到 Kotlin 所帶來的積極和消息影響的程度,然后比較結果,并討論它們的影響。

為了評估 Kotlin 所能帶來的***結果,我們將做如下假設:

  1. 開發人員可以立即切換到 Kotlin;
  2. 切換到 Kotlin 后,開發人員不會損失任何技能(例如,有兩年 Java 開發經驗的開發人員可以神奇地獲得兩年的 Kotlin 開發經驗);
  3. Kotlin 和 Java 一樣穩定;
  4. Kotlin 工具和 Java 工具一樣成熟。

事實上,上述假設沒有一個是合理的,但在開始的時候,有一個理想化的設定便于說明。然后,我們會拋開這些假設,討論真實世界的效應所帶來的影響。

Kotlin ***結果估計

遵循 Steve McConnell 在 Code Complete 一書中提出的模式,我們可以將軟件構建活動分解成三個子活動:詳細設計、編碼與調試、開發測試。

Kotlin 對于詳細設計子活動沒什么影響(這項活動通常獨立于選用的特定的面向對象編程語言),因此,在這一部分,Kotlin 和 Java 需要付出同樣的努力。

據我所知,對于開發測試子活動,Kotlin 也沒有提出什么革命性的東西。因此,開發測試需要付出的努力也一樣。

就剩編碼與調試子活動了。

如果我們用 Kotlin 替換 Java,那么我在編碼與調試活動中可以節省多少工作量?這個問題很難回答,不同程序員之間這一數值會有很大差異(有些程序員使用 Java 更高效)。不過,既然我們在評估***的情況,我們不妨假設從 Java 切換到 Kotlin 可以將開發人員在編碼與調試階段的生產力平均提高 10%。

10%的生產力提升是一個不現實到令人吃驚的數值。即使我們在文本編輯器中手工輸入所有代碼,那也是不現實的。考慮到現如今 IDE 的功能,這一數值更是不現實。考慮到有些開發人員使用 Java 更高效,這個數值就毫無道理了。

我不介意使用這樣一個既不現實又對 Kotlin 評估有利的數值,因為我知道,不管它對評估結果產生了怎樣不切實際的積極影響,一旦我們拋開其中部分“理想的假設”,由此帶來的負面影響會抵消掉那些積極影響。

那么,在編碼與調試方面提升了 10%——我們把產品交付給客戶的速度快了多少?

下面這張圖片來自 Code Complete 一書,展示了軟件項目的各種活動所占的比例:

Kotlin與Java之爭 究竟誰更好?

圖小項目以構建活動為主。大點的項目需要更多架構、集成和系統測試工作來保證項目成功。這張圖沒有顯示需求,因為和其它活動不一樣,需求工作不是直接的程序功能。(Albrecht 1979; Glass 1982; Boehm, Gray, and Seewaldt 1984; Boddie 1987; Card 1987; McGarry, Waligora, and McDermott 1989; Brooks 1995; Jones 1998; Jones 2000; Boehm et al. 2000)

Code Complete ,第二版

根據來自 Code Complete 的這張圖片,在一個較大的軟件項目中(多于 10K 行),編碼和調試只占項目總工作量的不足 20%。

因此,在一個較大的軟件項目中,我們所假設的編碼和調試效率提升 10%,只能將完成項目所需的總工作量縮減 2%。

例如,一個需要 5 人年才可以完成的項目(這是相對比較大的 Android 項目),總工作量的 2%為:

  • 5 人-年 * 12 * 4 * 5 * 0.02 = 24(人-天)

如果我們真得能夠把項目工作量減少 24 人-天,這會是一個從 Java 切換到 Kotlin 的很好的理由。然而,我們應該還記得,上述積極評估是在理想情況下得出的,其基礎是不切實際的假設。

在真實世界里,切換到另外一門編程語言會產生不可避免的影響,我們將評估這種影響,并與上述理想化評估作個比較。

開發人員準備

為了評估***的情況,我們假設開發人員可以立即從 Java 切換到 Kotlin。

實際上,雖然 Kotlin 和 Java 非常類似,但開發人員仍然需要花一些時間來學習,然后再花一些時間來調整開發實踐和工具。準備時間因人而異:有些開發人員可以三四天完成切換,其他人則需要 10 天甚至更多的時間。

讓我們樂觀一點,平均每個開發人員只要 5 天就可以從 Java 切換到 Kotlin。

一個需要 5 人年才能完成的項目會有 3 到 5 名開發人員(***的情況下)。平均每個開發人員的切換時間為 5 天,這樣,一個項目總計就需要 15 到 25 個人天的切換時間。

切換到 Kotlin 所節省的工作量(樂觀估計)與切換所需的總工作量似乎差不多。

開發人員技能損失

使用一門特定的編程語言高效工作的能力是一項技能。

我們已經討論了這項技能的其中一個方面(代碼可讀性),但還有許多其他方面。當從一門語言切換到另一門時,與舊編程語言相關的部分技能可以運用到新語言上,但該技能的其他部分會損失掉。

為了評估編程語言技能損失對項目工作量的影響,我們將使用源自 Cocomo2 評估模型的“語言與工具體驗”因子:

語言與工具經驗(LTEX)

該指標用于衡量開發軟件系統或子系統的項目團隊使用編程語言和軟件工具的經驗。軟件開發包括借助工具完成需求、表現形式設計與分析、配置管理、文檔提取、庫管理、程序樣式與格式化、一致性檢查、計劃與控制等等。除了項目編程語言經驗外,項目支持工具集的經驗也會影響開發工作。經驗低于 2 個月會獲得一個很低的評級,有 6 個月或多年的經驗則會獲得一個很高的評級,見下表:

Kotlin與Java之爭 究竟誰更好?

Cocomo 2 模型定義手冊

例如,假設我們有一個 Java 開發團隊,團隊成員平均有一年的經驗,我們想遷移到 Kotlin。

由于 Kotlin 和 Java 非常像,與許多 Java 工具兼容。我們可以樂觀地假設,在經過初步的準備后,開發人員就可以歸為有 6 個月開發經驗這一類(而不是低于 2 個月)。根據這個假設,為了評估技能損失所導致的額外工作,項目的額定工作總量應該乘以 1.09。

一個需要 5 人年完成的項目,配備了平均具有 1 年 Java 經驗的開發人員,切換到 Kotlin 所導致的額外工作達到了令人咂舌的 108 人天。

技能損失所導致的額外工作是切換到 Kotlin 所縮減的工作的四倍。

語言和工具的穩定性和成熟度

有個普遍的說法,就是 Kotlin 是一門生產就緒的語言。這種說法也許是有道理的,因為 Kotlin 已經用在了若干項目里。

不過,與 Java 相比,Kotlin 是一門并不穩定的年輕語言。

有些開發人員認為,Kotlin 的不穩定性是個優勢——語言在演進,可以更快地提供新特性,更快地改進。在我看來,他們對于這件事的看法過于簡單。

下面是 Kotlin 1.1.4 發布說明里的***句話(寫這篇文章時的***版本):

  • 修復 IntelliJ IDEA 的一項重大性能衰退
  • ——Kotlin 1.1.4 發布說明

我不知道這是什么樣的衰退,有多少項目受到了影響,但我的大腦自動將“重大性能衰退”這個搭配翻譯成了“浪費了許多小時的開發時間。”

此外,如果你讀一遍發布說明的評論,你就會注意到,許多人遇到了遷移問題。在 1.1.2 版本的評論里,甚至有人指出,這個“補丁”發布引入了破壞性(向后不兼容)的修改。

相比之下,如果你讀一遍 Oracle JDK8 的發布說明 ,你就會發現,它比較穩定。大多數修改都是安全改進方面的。

因此,與 Java 相比,Kotlin 是一門不穩定且不成熟的語言——遷移到 Kotlin 會對項目產生怎樣的影響?為了回答這個問題,我將使用來自 Cocomo 2 評估模型的“平臺波動性”工作因子:

平臺波動性(PVOL)

這里使用“平臺”一詞指代軟件產品執行任務時調用的復雜硬件和軟件(OS、DBMS 等)。如果開發的軟件是一個操作系統,那么平臺就是計算機硬件。如果開發的是數據庫管理系統,那么平臺就是硬件和操作系統。如果開發的是網絡文本瀏覽器,那么平臺就是網絡、計算機硬件、操作系統和分布式信息庫。平臺包括支撐軟件系統開發所需的編譯器或裝配器。如下表所示,如果平臺每 12 個月才有一次重大變更,則評級就會很低,如果每 2 周有一次重大變更,則評級就會很高:

Kotlin與Java之爭 究竟誰更好?

Cocomo 2 模型定義手冊

你可能已經注意到,編程語言并沒有直接出現在該工作因子的描述里,但出現了編譯器和裝配器。在我看來,這段描述沒有顯式包含編程語言,是因為得出 Cocomo 2 模型的所有項目都使用了穩定的語言。

由于編譯器和裝配器屬于這個工作因子,所以我們也可以推斷出編程語言及相關工具。

根據平臺波動性的這種評級范圍,Java 的評級應該是“very low”,而 Kotlin 的評級應該是“low”或更高。Kotlin 的評級可能會更高,因為它內部依賴于其它工具,增加了出現兼容性問題的風險。

由于“very low”沒有提供工作因子,所以我們需要估計。

看下該因子從“very high”到“low”的評分遞減規律,我認為,我們可以放心的假設,“very low”的評分不高于 0.82。

基于這些假設(有利于 Kotlin),如果一個項目需要 5 人年的額定工作量,那么使用 Kotlin,工作量就變成了 1044 人天,而使用 Java 的總工作量是 984 人天。

選擇使用 Kotlin 而不是 Java 實現這樣一個項目會使總工作量增加 60 人天。

語言和工具不穩定所導致的額外工作是切換到 Kotlin 所縮減的工作的 2 倍多。

綜合所有因素

我當成例子來討論的項目需要 5 人年的額定工作量。

根據上述評估,如果該項目由平均具備 1 年 Java 開發經驗的開發人員使用 Java 實現,則總工作量為:

  • 人-年 * LTEX(Java) * PVOL(Java) = 984 (人-天) 

如果同樣的項目由幾乎沒有 Kotlin 開發經驗的開發人員使用 Kotlin 實現,則總工作量為

  • 5 人-年 * LTEX(Kotlin) * PVOL(Kotlin) * 0.98 + T_ramp_up = 1115 + 5 * N_developers (人-天) 

據估計,選擇 Kotlin 替換 Java 所導致的額外工作量為 131 + 5 * N_developers (人-天) 。

評估注意事項

在評估討論的過程中,我們得出了與 Kotlin 和 Java 相關的、便利的工作量單點值。

但實際上,單點值根本不是估計——它們只是猜測。真正的估計必須有一個相關聯的不確定性。換句話說,估計表示可能性的范圍,而不是單點值。

我們最終使用單點值代替了范圍,那是因為我從估算范圍里選擇了最有利于 Kotlin 的值,將所有的估計都轉換成了單點值。

例如,當討論 Kotlin 對編碼與調試活動的影響時,我從估計出的可能性范圍 [-5%,10%] 中選擇了***的生產力提升值 10%。在其他情況下,當我們討論開發人員切換到 Kotlin 的平均時間時,我從估計的可能性范圍 [5 天,21 天] 中選擇了最小的 5 天。

此外,我們使用了 Cocomo 2 估計模型專用的工作因子。這些因子并不是放之四海而皆準的真理,在最一般的情況下,應該也有相關聯的不確定性。我賦給 Kotlin 的評級高于我實際上認為它應得的評級,我希望通過這種方式消除這種不確定性。

不用說,我們獲得的單點值并不是***正確。為了得出更完整的估計,我們可以利用真正的估計進行 Monte Carlo 仿真。通過這項技術,我們可以觀察可能結果的分布,弄清楚哪種結果最可能出現。

請記住,由于我們將估計壓縮成了對 Kotlin 而言最為有利的單點值,所以其他可能的結果會顯示出更大的 Kotlin 切換開銷。因此,在所有可能的結果中,我們在上文描述的單點值是最有利于 Kotlin 的。

小結

在文章開頭部分,我們展示了一些可能會對開發人員比較編程語言造成誤導的主觀判斷。

接下來,我們討論了客觀比較編程語言存在的困難,并進行了一系列的估計,以便弄清楚 Kotlin 棧與 Java 棧完成軟件項目所需的總工作量。在執行估計時,我們一直使用估計范圍里最有利于 Kotlin 的值。

通過我們的分析,從 Java 切換到 Kotlin 似乎會導致完成軟件項目所需的總工作量增加。

更多的工作意味著企業切換到 Kotlin 需要花更多的錢才能獲得同樣的功能,而用戶需要等待更長的時間才能獲得產品。

有些開發人員可能會吃驚,覺得這個結果不容易接受。

在考慮了所有的情況之后,谷歌最終決定支持 Kotlin Anroid 開發。對此,谷歌可能需要相當大的投入——谷歌云平臺團隊是不是沒有人可以做類似的分析,從而弄清楚切換到一門新語言所帶來的負面影響?

我認為,谷歌員工都是非常聰明的人,我相信他們在決定支持 Kotlin 之前已經進行了非常深入的分析。

責任編輯:未麗燕 來源: LinuxEden
相關推薦

2009-01-18 09:57:32

Java.NETSun

2015-10-19 11:28:49

WebAPP未來

2011-06-30 09:08:12

2016-06-21 10:41:19

2021-01-14 09:55:21

Java微服務Go

2020-08-17 12:55:38

.NetJava軟件開發

2019-08-19 09:12:51

索尼三星華為

2024-04-07 08:56:25

JavaScriptweb應用開發工具

2011-12-12 15:51:20

RESTSOAP

2013-08-27 10:52:35

Java.Net

2019-04-25 14:55:43

AIoTAIIoT

2021-01-12 10:18:06

2017-08-17 17:39:18

人工智能數據網絡安全

2013-11-12 11:06:10

扁平化UI設計

2013-10-28 09:49:27

OS X Maveri蘋果

2021-05-18 15:44:13

IOS安卓鴻蒙

2024-01-15 08:25:53

SPI機制JavaDubbo

2019-12-17 11:19:02

AI 數據人工智能

2010-08-23 10:36:43

戰略之爭
點贊
收藏

51CTO技術棧公眾號

欧美一区二视频| 亚洲欧美在线一区| 濑亚美莉vs黑人在线观看| 国产盗摄一区二区三区| 999久久欧美人妻一区二区| 国产传媒久久文化传媒| 香港三级日本三级a视频| 91在线视频在线| 中文字幕在线免费观看视频| 欧美精品v国产精品v日韩精品 | 国产亚洲综合色| 国产一级不卡毛片| 亚洲卡通动漫在线| 色播在线视频| 欧美成人精品二区三区99精品| 色综合久久久久综合一本到桃花网| 7777精品伊人久久久大香线蕉超级流畅| 国产视频精选在线| 欧美三级韩国三级日本三斤| 免费污视频在线观看| 欧美精品一二区| 一区二区三区四区日韩| 青草全福视在线| 亚洲免费观看高清完整版在线| 嫩草精品影院| 国产一区视频在线看| 国产日本欧美在线| 日韩av网站在线观看| 国内偷自视频区视频综合| 高清成人av| 亚洲免费影院| 亚洲国产精品综合| 91女神在线视频| 免费成人高清| 日韩欧美精品三级| 成人精品视频在线观看| 91福利国产成人精品照片| 免费成人看片| 免费在线观看日韩欧美| 久久久久女教师免费一区| 女人体1963| 成人看片黄a免费看视频| 色综合久久六月婷婷中文字幕| 婷婷无套内射影院| 不卡的av中国片| 正在播放一区| 国产在线播放一区| 免费成人在线电影| 欧美日韩第一区日日骚| 亚洲成人套图| 欧美电影免费提供在线观看| 爱搞国产精品| 日韩欧美的一区| 卡一精品卡二卡三网站乱码| 亚洲欧美制服另类日韩| 中国日本在线视频中文字幕| 日本人妖一区二区| 日韩欧美在线观看强乱免费| 亚洲国产老妈| 欧美日韩国产免费一区二区三区 | 福利电影一区| 这里只有精品视频在线| 亚洲欧洲av| 日韩精品在线视频观看| 日韩最新中文字幕| 激情综合色播五月| 中文字幕av导航| 免费不卡在线观看| 久久久久久99| 成人激情小说网站| 黑人另类精品××××性爽| 成人午夜一级二级三级| 亚洲国产精品天堂| 91精品一区国产高清在线gif | 国内精品久久久久久久97牛牛 | 精品一区二区日韩| 久久久久久久久久av| 伊人久久大香线蕉| 午夜精品在线视频| 日本免费一区二区视频| 欧美精品在线观看一区二区| 免费**毛片在线| 4388成人网| 永久91嫩草亚洲精品人人| 91免费看片网站| 国产精品毛片无遮挡高清| av中文字幕在线观看第一页| 日韩高清专区| 国产亚洲精品久久久| 成人福利视频网站| 欧美91在线|欧美| 艹b视频在线观看| 青草成人免费视频| 欧美综合一区二区| 日本在线不卡视频| 成人av集中营| 91嫩草在线播放| 国产精品久久国产精品| 亚洲国产一区自拍| 久国产精品韩国三级视频| www.亚洲天堂网| 麻豆一区二区99久久久久| 色偷偷亚洲第一综合| 亚洲电影一区二区| av免费看在线| 中文字幕在线观看日韩| 午夜精品毛片| 鲁一鲁一鲁一鲁一av| 亚洲福利小视频| 深爱激情综合网| 免费**毛片在线| 午夜免费精品视频| 国外成人在线视频网站| 成人a免费在线看| 午夜免费啪视频观看视频| 亚洲精品免费播放| 欧美日韩免费电影| 成人精品视频久久久久| 国产在线视频网址| 人妖精品videosex性欧美| 国产欧美一区二区精品性色| 毛片毛片毛片毛片| 中文字幕精品一区久久久久| 一区二区三区福利| 亚洲天堂中文字幕在线观看| 精品少妇人欧美激情在线观看| 亚洲国产高清高潮精品美女| 亚洲影院理伦片| 国产激情精品久久久第一区二区| 欧美www视频在线观看| 电影一区中文字幕| 亚洲丝袜一区| 黄色三级视频在线| 青青草精品毛片| 久久精品视频在线观看| 中文字幕精品—区二区四季| 欧美黄色aaaa| 久久久久亚洲精品中文字幕| 亚州色图欧美色图| 狠狠操第一页| 污污网站免费观看| 成人女人免费毛片| 韩剧1988免费观看全集| 最近中文字幕日韩精品| 99精品视频在线观看| 久久97超碰国产精品超碰| 伊人久久大香| 亚洲电影二区| 91精彩视频在线播放| 天堂中文字幕在线| 草草久视频在线观看电影资源| 黄色av网址在线播放| 欧美特级aaa| 2022中文字幕| 一区二区三区我不卡| 97国产精品视频| 国产精品一久久香蕉国产线看观看| 欧美一级电影免费在线观看| 国产国语刺激对白av不卡| 日韩在线视频中文字幕| 一道本无吗dⅴd在线播放一区| 亚洲精品视频免费| 日韩中文理论片| 国产精品麻豆视频| 中文字幕在线三区| 美女一区二区三区| 亚洲精品在线观| 午夜精品区一区二区三| 337p日本| 亚洲精品白浆高清| 亚洲国产日产av| 日本一区二区三区四区在线观看 | 88国产精品欧美一区二区三区| 久草香蕉在线| 蜜桃精品在线观看| 欧美激情伊人电影 | 国产精品久久久亚洲一区| 欧美videos中文字幕| www.成人三级视频| 成人免费高清观看| 久久久久网站| 91精品国产福利在线观看| 国产精品国产精品国产专区不卡| 黄色在线小视频| 免费看欧美美女黄的网站| 亚洲91精品在线观看| wwwav在线| 夜色激情一区二区| 日本免费黄视频| 亚洲自啪免费| 久久色精品视频| 日韩电影免费观| 亚洲国产精品欧美一二99| 天天干天天色天天爽| 91精品91| 欧美精品一区在线观看| 国产精品美女免费视频| 蜜桃av一区二区三区电影| 亚洲va国产va天堂va久久| 四虎影视精品永久在线观看|