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

對幾個軟件開發傳統觀點的質疑和反駁

開發 后端 開發工具
優秀的程序員,應該難以容忍自己產出糟糕的代碼,也許對代碼有一點潔癖,對代碼之美有不懈的追求。對這樣的軟件的使用動機,也應該來源于程序員,而相關數據的采集,最終一定要為程序員服務。詳細請看下文:

下面這些觀點都是程序員在教科書上、在編碼規范里、在正統的軟件工程流程里流傳開來的,幫助了許多人在程序員啟蒙期間養成了良好的習慣、原則。對許多人(包括曾經的我)來說,似乎是理所當然的。但是隨著閱歷的增長,視角在變化、看法也在變化,曾經的好惡現在都可能大翻身了。

為代碼寫足夠的注釋,讓代碼易于理解

“所有程序員都會寫自己看得懂的代碼,但只有優秀的程序員才寫大家看得懂的代碼。”這話沒錯,但是——

  1. 什么才是“大家看得懂”的定義?我有必要讓我的C++代碼對于一個月前才明白指針和引用區別的初學者簡單易懂么?
  2. 更重要的是,要代碼能夠“看得懂”,主要是靠足夠多的注釋嗎?

我覺得這兩點都是扯淡。

關于第1點,造就了一些自我感覺過度良好的人,習慣性地把前人寫的代碼批得體無完膚。在他們眼中,這段代碼巨爛,那段代碼是屎,更有甚者,在評審別人代碼的時候,一樣說出這樣的話來(請參見這篇文章里的“一坨屎型評審”)。

反對我的人會說,軟件公司做產品賺錢,它們希望你的代碼讓不熟悉項目的新員工快速閱讀、上手。這確實是個矛盾。說白了,你寫的代碼要和一個團隊的能力匹配。在一個魚龍混雜的團隊,甚至一個糟糕的團隊,你寫出的代碼也許很難和大伙兒產生共鳴,他們希望你寫最普通最易懂的代碼,沒有精巧的設計(我指的是,“某一些精巧的設計,恰恰是以降低代碼的可維護性為代價的”),沒有語言高級特性,看著只有順序、循環、分支判斷的基本代碼。如果大家都是JavaEE的初學者,那么就從JSP+Servlet開始吧,這樣你們才在一個圈子里,要不然,沒有人能真正和你一起討論設計和代碼的問題。

所以許多上進的程序員,會希望在一個牛人的團隊里工作。這就像足球運動員一樣,因為足球是集體運動,一個足球運動員能達到的高度,是和他所在的團隊息息相關的。在一個優秀的團隊里,大家個性各有千秋,擅長領域不甚相同,但是都學習迅速,能力不差太遠,大家閱讀代碼都能夠很快理解和領會,而且討論問題可以用一些程序員才明白的隱喻(比如有人說“我覺得這里應該用一個builder來實現”,大家都明白builder指的是什么),氛圍和效率顯而易見。

如果你恰好對當前需要用到的業務和技術特別熟悉,領先團隊里其他人一大截怎么辦?那你就該在做設計編碼的時候先行一步,你是那個最該去做架構設計、寫骨架代碼的人,完成一個架子以后再來給大家講解,并和大家討論,改進現有的設計。也就是說,你要多做一些更重要的事,而不是和大家一起分析、一起討論,甚至一人負責一個模塊,***的結果就是大家根本和你討論不到一塊兒去。

關于第2點,要代碼“看得懂”,是設計出來的,而不是注釋加出來的。這和產品質量一樣,產品質量是設計出來的,而不是測試測出來的。注釋的意義在于對當前代碼自解釋做不到的地方進行補充。

所以,你的代碼要易于理解,首先要保持簡潔和清晰,這既包括良好的設計,也包括良好的編碼習慣,也就是說,代碼是自解釋的,其次才通過注釋的補充,讓代碼更易懂。注意,我不是說注釋不重要和不必要,而是說,注釋應該完成它自己的功用,它遠不能代替代碼本身自我解釋的價值。

舉一個簡單的例子,你可以這樣寫代碼:

  1. /**  
  2.  * 圖表模型  
  3.  */ 
  4. class Chart{  
  5.     /**  
  6.      * 圖表長度  
  7.      */ 
  8.     private int length;  
  9.  
  10.     /**  
  11.      * 獲取圖表長度  
  12.      * @return 圖表長度  
  13.      */ 
  14.     public int getLength(){  
  15.         return this.length;  
  16.     }  
  17.  
  18.     /**  
  19.      * 設置圖表長度  
  20.      * @param length 圖表長度  
  21.      */ 
  22.     public void setLength(int length){  
  23.         this.length = length;  
  24.     }  

好,那么你告訴我,這段代碼和下面這段代碼相比,你獲取了什么更多的有用信息?

  1. class Chart{  
  2.     private int length;  
  3.  
  4.     public int getLength(){  
  5.         return this.length;  
  6.     }  
  7.     public void setLength(int length){  
  8.         this.length = length;  
  9.     }  

我想你懂我的意思,兩段代碼,代碼本身意思已經夠明確了,再加上這些無聊的注釋,只是浪費資源、浪費生命。很多編程語言,利用語法糖,連簡單 get、set方法都可以省了(比如Objective C),而加這種注釋的做法卻依然在反軟件、反人類而行。也許你和我一樣,曾經為了公司某些扯淡的規定,為了規避某些扯淡的代碼靜態檢查工具(比如 CheckStyle這樣的,甚至自己開發這種無聊的檢查工具)檢查結果中的警告信息,加上了(包括IDE自動生成)這些毫無意義的注釋,于是領導看了: “好,沒有警告信息,代碼質量好”。雖然至始都痛恨這樣的做法,但我還是做了,至今后悔。最讓人痛恨自己的事情就是不得不去做那些自己痛恨的事情。

設計文檔要詳細,細化到方法定義

持這個觀點的大有人在。對于這個觀點我并不是完全反對,如果你要說設計文檔需要“詳細到可以指導編碼”我還能同意,但是我確實非常不喜歡詳詳細細的設計文檔。肯定設計文檔的價值這沒有錯,但是過于詳細的設計文檔撰寫,往往容易造成紙上談兵的窘境

有人說設計文檔太過粗略了做不好設計,事實上,文檔只是呈現設計的其中一種形式而已,做得好設計的人,可以一邊編碼一邊思考,可能輔助草稿紙上寫寫劃劃,就可以完成優秀的軟件;不會做設計的人,設計文檔寫多少頁都沒用。這讓我想起了今天和同事關于TDD的討論,會做設計的人,不讓他用TDD也能寫好代碼;不會做設計的人,TDD又有何用?所以讓TDD成為設計的主要工具,那就是扯淡。

再一個,在設計文檔中,不可能做完設計,不知你是否有這樣的體會,設計文檔思考得再縝密細致,等落到代碼上的時候,還會和開始的思考有許多不同,至少有很多細小的不同。這是因為設計思考本身就是貫穿整個設計編碼過程的,一人只做設計、另一人只寫代碼這樣的理想模式是不可能達成的。

我了解一些對日外包公司,程序員拿到手的設計文檔就是細化到方法定義了的,如果你有能力有志氣,在中國***就不要做外包,尤其是對日外包,這樣的公司拒絕你的一切思考,就是在摧殘人才

另外一個原因,是針對一些闡明“設計文檔可以傳承業務和技術知識”觀點的人,詳細的設計文檔并不能夠傳承什么業務和技術,原因很簡單,詳細的文檔初始撰寫成本高,維護的成本更高。我不相信程序員在修改了代碼邏輯以后,會去經常保持設計文檔的同步性。這不合理,只有代碼才是保持***的,其它一切都會過時。而相對簡要或粗略的文檔,穩定性就要強得多。

讓項目組各個角色去評審代碼設計

下面我要駁斥的這個觀點來源于我的一些經歷,也許并不能算是主流觀點。

對于設計文檔的評審,如果是設計原理、實現原理,正到了程序員才關心的層面上,如果不寫代碼的測試跑來一起討論,這就成了浪費時間、制造矛盾的做法。我經歷過這樣的事情,覺得很幽默。專職測試人員的定位各有千秋,許多人經驗豐富、無可替代,但是至少,我接觸的測試人員中,他們幾乎是不閱讀代碼的,也就是說,對于代碼設計(注意,是代碼設計,不是產品設計)的討論,他們不該參與進來。

另外,不要說“我幾年前也是寫代碼的”,毛主席都講了,“不了解情況,就沒有發言權”,如果你對當前的代碼實現不了解,就不要來礙手礙腳地評審代碼層面的設計了。

我也經歷過這樣的場景,每一個產品都要組織一些有經驗的程序員,去給別的產品的代碼挑刺兒。我的看法是,這很難挑出特別有價值的毛病來,原因也是一樣的,你對別的產品業務不了解,那么要花大量精力去閱讀代碼,更要去熟悉業務,否則只能從代碼層面上摳摳細節。

所以,誰來把關實現層面的設計和代碼的質量最卓有成效呢?正是熟悉項目的程序員們,尤其是項目組骨干,或者一起參與設計、編碼和測試的架構師(其實架構師還是一名優秀的程序員,我從來不認為“只懂業務的架構師”有什么資格去做軟件架構)。

為代碼設置量化的限制指標

統計指標是有價值的,但是如果設置這些量化指標給程序員套限,則是違背客觀規律的行為。這一觀點我有必要舉例說明一下:

  • 測試代碼覆蓋率不得低于95%(比如工具EMMA);
  • 方法圈復雜度不能超過15(你也許知道圈復雜度的檢查工具SourceMonitor);
  • 單個類的行數不能超過500,單個方法的行數不能超過200;
  • 任意兩個類之間重復代碼行數不能超過10行(你可能知道重復代碼檢測工具Simian);
  • ……

這些硬生生限制,都是反軟件、反人類的。你可以說圈復雜度高的方法也許過于復雜,你可以說重復比率高的代碼往往可以優化,但是這些都只是一個輔助的指標。這些工具都是用來幫助程序員改善他們的設計和代碼質量的,如今它們卻被用來做反程序員的事。

對于測試代碼覆蓋率的要求,而且有許許多多公司拿來作為代碼質量衡量的重要指標,我認為更是駭人聽聞。我寫代碼也做單元測試,但是會有選擇地寫UT 用例,不會去追求測試覆蓋率,而且測試再全面也不可能保證結果的絕對正確,好鋼要用在刀刃上,時間的投入要換取劃算的回報,而不是不計代價地補充測試用例。而且,在這里我要說的是,保證軟件質量的方式有很多,測試驗證的方式也有很多。即便覆蓋率達到100%,也不能說明質量高到哪兒去,追求覆蓋率始終太過功利。另外,有許多代碼本身就沒有多大被UT測試的價值,這也是不容忽視的。

優秀的程序員,應該難以容忍自己產出糟糕的代碼,也許對代碼有一點潔癖,對代碼之美有不懈的追求。對這樣的軟件的使用動機,也應該來源于程序員,而相關數據的采集,最終一定要為程序員服務。

今天只是把上面這些觀點做了個整理,在和別人談起這些的時候,其實我覺得我只是說了實話而已,我的觀點一點都不偏激。我知道很可能你會有不同看法,這太好不過了,但是善意地提醒你,請一定仔細思考一下,不要被公司的精神和文化洗了腦,我們都是程序員,我們最清楚,或許也都經歷過那些針對程序員、軟件開發荒唐可笑、乃至不可思議的做法。

原文鏈接:http://www.raychase.net/1000

責任編輯:林師授 來源: 四火的嘮叨
相關推薦

2012-05-02 10:08:19

軟件開發開發

2021-04-26 13:26:55

軟件開發代碼編程

2022-07-12 18:36:52

軟件開發企業開發人員

2009-03-30 16:30:00

Amazon亞馬遜Eclipse

2023-06-09 19:01:03

軟件開發

2023-08-23 13:05:43

低代碼開發

2023-06-08 16:47:09

軟件開發工具

2022-08-04 14:12:46

區塊鏈IT數據

2012-02-15 09:17:02

Python編程

2009-02-10 17:11:53

SaaSSaaS開發PaaS

2015-03-02 09:35:07

軟件開發

2009-06-12 11:35:28

模式框架軟件設計

2020-10-16 10:21:23

大數據開發軟件開發技術

2009-12-21 09:35:50

獨立軟件開發商創造性授權策略

2017-04-13 10:08:30

軟件開發開發

2022-08-17 14:31:42

云計算邊緣計算軟件開發

2017-03-17 08:15:17

敏捷軟件開發軟件開發

2020-06-24 11:21:47

軟件開發面試

2024-11-07 12:14:36

2012-06-18 09:34:14

點贊
收藏

51CTO技術棧公眾號

亚洲国产一成人久久精品| 成人免费看黄| 成人精品国产福利| 五月天激情小说综合| 亚洲一级在线观看| 亚洲一区二区三区成人在线视频精品 | 男人皇宫亚洲男人2020| 国产精品欧美一区二区三区| 99理论电影网| 姑娘第5集在线观看免费好剧| 88国产精品视频一区二区三区| 精品国产制服丝袜高跟| 麻豆传传媒久久久爱| 少妇av在线| 国产欧美日韩一区二区三区在线观看 | 亚洲天堂网在线观看| 国产精品19p| 全球最大av网站久久| 亚洲线精品一区二区三区八戒| 欧美日韩亚洲免费| www.久久久久久久久久| 欧美a级一区二区| …久久精品99久久香蕉国产| av激情在线观看| 欧美日韩一二| 日韩精品免费在线视频| 亚洲成人福利视频| 日韩在线你懂得| 在线观看日韩精品| 久久久久久久中文| 91黄页在线观看| 亚洲综合清纯丝袜自拍| 亚洲资源视频| 高清毛片在线看| 久久久影院官网| 99久久99久久精品国产片| 亚洲怡红院av| 免费的成人av| 国产精品亚洲激情| 日韩激情在线播放| 亚洲国产电影| 久久久久久久久国产精品| 日本aⅴ在线观看| 欧美gayvideo| 日韩在线视频线视频免费网站| 国产精品美女久久久久av福利| 亚洲欧美日韩国产成人综合一二三区| 国产丝袜视频在线观看| 蜜臀精品一区二区三区在线观看 | 亚洲欧洲在线观看| 玖草视频在线观看| 日韩av网站在线免费观看| 亚洲国内精品在线| 国产一级二级视频| 欧美电影在线观看完整版| 欧美精品一区二区三区蜜桃视频| 国产a√精品区二区三区四区| 一区二区三区四区高清视频| 欧美一区二区三区视频在线观看| 国产在线视频三区| 亚洲视频一起| 精品99一区二区三区| 手机在线成人av| 天堂资源在线亚洲| 亚洲无av在线中文字幕| 嘿嘿视频在线观看| 91久久久精品国产| 欧美另类在线观看| 国产精品99精品| 在线亚洲一区| 国产精品嫩草影院一区二区| 在线视频免费观看一区| 极品少妇xxxx精品少妇| 成人av中文| 网站黄在线观看| 国产亚洲欧洲一区高清在线观看| 亚洲精品白虎| 亚洲小说区图片区都市| 亚洲福利视频三区| 热久久精品免费视频| 欧美综合影院| 精品1区2区在线观看| 精品人妻互换一区二区三区| 成人3d精品动漫精品一二三| 日韩一区二区三区在线播放| 国产一级片网址| 久久亚洲欧美| 91精品入口蜜桃| 日韩美女一级视频| 中文字幕在线观看不卡视频| 亚洲国产一二三精品无码| 国产美女高潮在线| 精品视频1区2区| 欧美激情一区二区三区p站| 国产99精品一区| 欧美精品一区二区免费| 在线观看免费av片| 国产乱对白刺激视频不卡| 精品一区二区不卡| 国产在线高清视频| 日韩欧美高清视频| 潘金莲一级淫片aaaaa| 色综合综合网| 性欧美在线看片a免费观看| 一本一道人人妻人人妻αv| www.性欧美| 一级特黄妇女高潮| 欧美日韩国产网站| 亚洲国产私拍精品国模在线观看| 亚洲一级理论片| 先锋亚洲精品| 高清av免费一区中文字幕| 韩日视频在线| 欧美日韩国产麻豆| 992kp免费看片| 俺要去色综合狠狠| 51ⅴ精品国产91久久久久久| 99久久婷婷国产一区二区三区| 91麻豆视频网站| 日本国产精品| 日韩av中文字幕在线播放| 婷婷综合在线视频| 国产女优一区| 国产精品视频免费一区| 麻豆tv在线| 欧美伊人久久久久久久久影院| 男男一级淫片免费播放| 欧美在线三级| 91精品美女在线| 3p在线观看| 欧美无砖专区一中文字| 大又大又粗又硬又爽少妇毛片 | 成人免费毛片在线观看| 久久视频社区| 久久av中文字幕| 91theporn国产在线观看| 国产视频在线观看一区二区三区| 奇米精品一区二区三区| 都市激情亚洲| 久久久久久com| 亚洲第一大网站| 一区二区三区自拍| 日本中文字幕有码| 欧美女激情福利| 99久久精品免费看国产一区二区三区| caoporm免费视频在线| 欧美高清精品3d| 天天鲁一鲁摸一摸爽一爽| 紧缚奴在线一区二区三区| 亚洲欧美日韩另类精品一区二区三区| 欧美aaa大片视频一二区| 亚洲欧美日韩国产中文专区| 国产又大又黄视频| 久久久精品国产99久久精品芒果| 日本www在线播放| 亚洲精华一区二区三区| 国产91久久婷婷一区二区| 青青草视频免费在线观看| 日韩欧美黄色动漫| 亚洲色成人网站www永久四虎| 日韩影院在线观看| 亚洲欧洲另类精品久久综合| 亚洲一区av| 欧美丰满老妇厨房牲生活 | 亚州欧美在线| 欧美激情视频免费观看| 国产刺激高潮av| 欧美日韩亚洲系列| 国产三级在线观看完整版| 国内精品国产成人| 久久在线中文字幕| 香蕉久久精品| 成人网欧美在线视频| 日本一本在线免费福利| 日韩av在线一区| 国产三级理论片| 亚洲永久免费视频| 久久久久久久无码| 另类小说欧美激情| 国产精品日韩三级| 狠狠色狠狠色综合婷婷tag| 成人黄色免费看| 美女av在线免费看| 自拍亚洲一区欧美另类| 国产叼嘿视频在线观看| 欧美视频在线观看 亚洲欧| 波多野结衣家庭教师在线观看| 国产精品一区二区91| 亚洲爆乳无码专区| 香港欧美日韩三级黄色一级电影网站| 国产成人亚洲欧美| 国产91亚洲精品久久久| 久久人人爽人人爽人人片av高请| 成人高清免费观看mv| 精品少妇一区二区三区在线视频| 东京热一区二区三区四区| 亚洲视频在线一区观看| 波多野结衣办公室33分钟| 国内国产精品久久| 人人干人人视频| 亚洲高清av| 这里只有精品66| 国产精品欧美日韩一区| 超碰97国产在线| 全球中文成人在线| 日韩av电影免费观看高清| av小次郎在线| 中文字幕日韩综合av| 色一情一乱一乱一区91av| 欧美另类变人与禽xxxxx| 欧美成人三级视频| 国产日产精品一区| 精品中文字幕在线播放| 国产在线看一区| 欧美自拍小视频| 国产精品一二| 2018国产在线| 欧美高清日韩| 欧美一级黄色录像片| 精品免费视频| 免费成人av网站| 神马香蕉久久| 国产精品一区二区免费| 免费一级欧美在线大片| 国产精品入口免费视| 免费欧美电影| 热久久99这里有精品| 理论不卡电影大全神| 久久久久久久一| 欧美极品少妇videossex| 久久久av网站| 免费在线看黄色| 中文字幕亚洲在线| www 日韩| 在线观看视频99| 北条麻妃在线| 在线看片第一页欧美| 黄色国产在线| 亚洲图片欧洲图片av| 国产资源在线观看| 亚洲欧洲成视频免费观看| 你懂的在线视频| 亚洲桃花岛网站| 国产69久久| 色偷偷av一区二区三区乱| av免费在线一区二区三区| 中文字幕无线精品亚洲乱码一区 | 亚洲v中文字幕| 国产精品6666| 香蕉av福利精品导航 | 91福利区一区二区三区| 精品免费囯产一区二区三区| 色综合激情五月| www.亚洲激情| 欧美精品 日韩| 午夜美女福利视频| 精品国产制服丝袜高跟| 天堂网在线播放| 亚洲女人天堂成人av在线| 国产三级在线免费观看| 中文字幕免费国产精品| 激情成人四房播| 欧美国产日韩一区二区三区| 超碰在线中文字幕| 青青a在线精品免费观看| 国产成人福利夜色影视| 91精品国自产在线观看 | 国产一区二区按摩在线观看| 国产精久久久久| 久久久精品免费网站| 日本精品在线免费观看| 亚洲成av人片观看| 老熟妇一区二区三区| 91精品国产色综合久久ai换脸| 国模无码一区二区三区| 亚洲区免费影片| 国产视频中文字幕在线观看| 国产综合在线视频| 国产亚洲一区二区手机在线观看| 国产综合色香蕉精品| 精品深夜福利视频| 天堂va久久久噜噜噜久久va| 亚洲激情中文| 免费在线观看的av网站| 久久99精品久久只有精品| 娇妻高潮浓精白浆xxⅹ| 日本一区二区三区免费乱视频 | 国产精品久久久久久久免费大片| 亚洲精品3区| 国产又粗又硬又长| 香蕉精品999视频一区二区| 在线黄色免费观看| 成人精品在线视频观看| 极品尤物一区二区| 亚洲国产一区视频| 亚洲香蕉在线视频| 亚洲激情小视频| 黄色一级片在线观看| 5252色成人免费视频| av在线精品| 欧洲成人一区二区| 亚洲香蕉网站| 激情视频综合网| 国产成人一级电影| 日本在线观看网址| 欧美三级xxx| www.污视频| 日韩视频免费看| 日本欧美一区| 久久人人九九| 国内精品福利| 国产精品久久久久久9999| 国产亚洲精品久| 国产成人无码精品久在线观看| 在线成人免费视频| 成人精品一区二区三区校园激情| 91超碰中文字幕久久精品| 亚洲国产欧美在线观看| 一区二区三区四区五区精品| 国产精品亚洲综合色区韩国| 国产大尺度视频| 亚洲综合成人网| 99视频免费看| 久久久精品欧美| 日韩美女在线| 在线免费观看成人网| 奇米777欧美一区二区| www.狠狠爱| 日韩欧美亚洲范冰冰与中字| 少妇一区二区三区四区| 欧美精品激情在线观看| 日本一区二区三区视频在线看| 一区二区三视频| 九色porny丨国产精品| 五月婷婷综合激情网| 欧美日韩你懂的| 日本在线www| 国产综合久久久久| 婷婷另类小说| 国产探花在线观看视频| 中文字幕日韩欧美一区二区三区| 夜夜躁很很躁日日躁麻豆| 在线观看欧美日韩| 国内欧美日韩| 中文字幕制服丝袜在线| 久久国产精品99精品国产| 你懂得在线观看| 777色狠狠一区二区三区| 日本高清视频在线观看| 成人h视频在线| 综合一区在线| 美国黄色一级视频| 亚洲国产精品天堂| 天天摸天天干天天操| 热久久免费视频精品| 欧美老女人另类| 色国产在线视频| 一区二区三区中文在线观看| 高清乱码毛片入口| 26uuu亚洲伊人春色| 欧美激情在线免费| 久久久久国产一区| 亚洲色图在线视频| 刘亦菲久久免费一区二区| 97视频在线观看视频免费视频| 一道在线中文一区二区三区| 成人3d动漫一区二区三区| 中文字幕在线不卡一区二区三区| 国产毛片久久久久| 性色av一区二区三区免费| 中文字幕中文字幕精品| www.久久久精品| 亚洲线精品一区二区三区| 嫩草研究院在线| 成人国产在线激情| 一区在线视频观看| 无码 人妻 在线 视频| 在线电影一区二区三区| www555久久| 欧美一区国产一区| 国产乱妇无码大片在线观看| 毛片视频网站在线观看| 中文字幕九色91在线| 91蜜桃臀久久一区二区| 最近免费中文字幕中文高清百度| 亚洲欧美日韩国产综合在线| 天天操天天干天天操| 国产欧美精品在线| 99在线精品免费视频九九视| 国产精品无码无卡无需播放器| 日韩久久久精品| 国产精品伦一区二区| 黄色激情在线视频| 国产精品成人免费精品自在线观看| 亚洲免费成人在线| 国产精品久久久久久久午夜| 影音先锋亚洲精品| 三级黄色录像视频| 亚洲欧洲中文天堂| 国产成人精品福利|