<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Thinking in XiaoQiang
    世人皆有悲哀,只有你不明白
    posts - 56,comments - 150,trackbacks - 0

    ???????? 最近在做一個汽車銷售系統的改善工作, 這個系統已經運行兩年了, 兩年來, 客戶不斷的提出新需求, 系統也在不斷的改來改去。 這次輪到我來改它了。 ? 想想 N 年前初學編程的時候, 書上, 網上, 雜志上不斷的在說, 要養成良好的編程習慣。 然后還給出了 N 長的一大篇文章來介紹一些編程規范。 我這個人是很懶的, 大概的看了一下就過去了。 沒有特意的記什么。 好在我這個人也不是特別的懶, 對自己的工作也是很上心。 編程的時候盡可能做到更好。 性能功能能考慮到的都要做到最好。 ? 慢慢的也養成了一些編程的習慣, ? 時間長了, 下意識的就去遵守一些模式,模范之類的東西了。
    ????????
    有了這些習慣, 再看這次修改的系統, 真的是生可忍熟不可忍了。 ? 這次我也不說什么編程規范了, 我就說說這些編程惡習

    ????????
    一, ? 程序沒有注釋
    ??????
    注釋 !! 注釋 !!! 如果只是打印了一個 HELLO WORLD 您不注釋那也就算了, 如果是只有一兩百行的小功能類您不注釋, 那我也忍了, 可是 3000 多行一個類的業務邏輯代碼, 您老人家還不注釋 !!!?? TM 讓我怎么去改代碼, ? 一點業務邏輯的說明都沒有, 我改代碼的時候,得一邊用 DEBUG 調試, 一邊替他加注釋。 然后才能進行自己的工作。 幾千行的一個類, ? 一行注釋都沒有, TM 就不覺得顏色單調了點嗎 ?

    ??????
    二, ? 不遵守基本的編程約定
    ??????
    變量名大小寫混亂, 明明是變量, 非要完全大寫, 要不就大寫開頭。 要不就是方法名全是大寫, 最牛 B 的一個方法是用中文做方法名, 你丫這時候想起打中文來了, 累不累呀。

    ?????? 還有人用拼音做變量名方法名,就算您英文不好,稍微查一下金山詞霸行不行,現在百度和 GOOGLE 都有翻譯功能,稍微查一下英文,也當是學英語了行不行? 您實在太忙的話,不查也就算了,拼音就拼音吧,好賴也算是中國話的。 可是您就別用拼音簡寫了,英文簡寫還認不出來呢, 您還用拼音的開頭字母當變量名, 那我 TM 上哪兒猜去呀!

    ?

    ?????? 三, 不明就里的代碼

    ?????? 系統中經常會出現這樣的代碼,尤其是在 controller 里居多:

    ?????? // some code

    ?????? If(flag .equals(“submit”)){

    ?????? model.getInfo();

    }else{

    ?????? model.getInfo();

    }

    我沒寫錯, if else 調用的方法完全一樣,大家也放心,我仔細的看過調用的代碼,調用的方法里,也沒有根據其它情況來改變他的運行路線。我就不明白為什么要做這個 if 判斷了。擔心會有什么特殊的業務邏輯, 所以也不趕隨便去改他。 猜了半天,感覺最理想的答案是寫代碼的人,擔心以后會有新的邏輯分支, 所以在這里用 if 預留了一個位置, 以后改的時候方便。

    數日之后有幸遇見了當初寫這代碼的老兄,問過之后立刻暈倒,原來是這個代碼是參照別的模塊的樣子寫的,別的模塊在這里都有 N 個程序分支,通過 if 來判斷后決定調用哪個 model 里的方法。但他這個模塊很簡單,沒有什么分支,就是調用那一個方法,但他寫代碼時,看別人的模塊在這里都進行 if 判斷了,所以覺得自己也應該判斷一下,于是就出現了上面這樣的代碼。

    ?

    四, 面向過程式的編程方法

    遇到過好幾次 2000 多行的方法,所有業務邏輯,一氣呵成,就用了一個方法搞定。如果是簡單的邏輯也就算了, 可是幾千行的代碼全放在一個方法里,一個類里有無數的重復代碼。 這回到好,重構那本書沒白看, 現在有了實踐的機會了。

    難道您自己調試的時候就不覺得麻煩嗎? 我在這里不想討論什么面向過程還是面向對象,也別和我說什么方法多了也不一定就是面向對象的思想。 平時對自己寫的代碼多上點心, 大家都是在這行干了幾年的人了,把代碼寫的漂亮點有什么不好。

    ?

    五, 代碼縮進混亂

    我們公司有規定,改代碼的時候,不許修改原有代碼的格式。 不管他多亂,也不許改。 我不明白這是為什么,也許是檢查代碼的人,要用文件比較工具吧。

    但這下苦壞我了, 代碼的格式那叫一個亂。 有頂著行頭寫的, 有向后空了 N 格的,大概是寫代碼的人, 為了方便自己找到正在調試的那段代碼,所以把代碼的縮進變得和其它代碼與眾不同吧。 那您調試完了到是重新排一下版呀, 這真的不累~~, 現在的 IDE 工具都有自動排版代碼的功能, 一個快捷鍵就搞定了,稍微勤快一點行嗎??

    BT 的一段代碼是縮進居然出了屏幕!!! 你吃飽了撐的呀, 沒事縮那么遠干嗎, 我根據后臺輸出找了半天也沒找到那段代碼在哪兒, 原來是因為縮進的太遠了,不在屏幕范圍之內, 向右拉了半天滾動條才找到。 你丫是不是寫著代碼睡著了? 臉正好砸在 TAB 鍵上。

    ?

    六, 多余的后臺輸出

    好幾個循環嵌套在一起~~~ 也行, 就算是因為業務邏輯需要,沒別的辦法也將就了。 好幾個循環嵌套在一起查數據庫, 咱們最好還是開動一下腦筋, 看看有什么更好的辦法。如果還是沒別的辦法, 那也湊合了。 可這種情況您就別在后臺輸出 SQL 語句啦, 每次一執行程序,成百上千個 SQL 語句在后臺輸出, 查數據庫才用了一兩秒,結果輸出這些 SQL 就用了半分鐘。 您自己就沒覺出程序慢在哪里嗎? 您調試程序的時候輸出一下也就算了, 提交到正式運行的環境時,就麻煩您,勞您大駕~~ 把那些輸出注釋掉吧,實在不行留幾個重要的輸出就行了。 讓這種代碼影響系統性能~~ 也太冤了吧。

    ?

    七, 打腫臉充胖子

    我也不知道這條算不算惡習,也許不算,在有些人眼里還是好事。但也要看具體情況,經常有些人寫代碼不喜歡用 IDE ,只用 EDITPLUS 這類工具。按常理說,初學者都應該盡量用這些編輯器寫代碼,對加深學習印象有好處。也有人說高手不屑于用那些 IDE ,我少見多怪, 這種絕頂高手我沒見過。

    但咱平時工作的時候,要的是效率,您不是那種高手就乖乖的用 IDE 吧。經常見到有些人,為查一個方法的調用,搜來搜去的。真正的高手是工作效率最高的人,不是用最簡單工具的人。


    //20061019 start
    ??????? 一些補充:?

    有些人提到用EDITPLUS的效率其實也很高, 這點我也承認. 但我想說明一下, 我所見到的用EDITPLUS那個人, 根本沒有發揮出editplus應有的效率和功能. 在他的手里editplus只是一個多了顏色區分的記事本. 編譯程序還是用javac , 也不會用ANT, 發布程序還是手工拷貝. 號稱四年經驗的程序員, 剛到公司時用了一天時間重裝好電腦后, 寫了一個打印hello world的程序測試環境. 結果不寫static void main方法, 直接就要用java去運行. 運行不成功還說系統配置有問題, 需要再重裝.? 每次幫他調試程序, 想查一個方法的調用, 一個文件一個文件的搜, 看得我這個急...........???? 我的希望是不管用什么工具, 要讓這個工具在自己的手里發揮出最大的作用來, 如果用editplus非常純熟的話, 我也會很佩服那個人的, 而且會虛心的向他學習使用技巧

    可他把時間全耽誤在這上了, 這樣的工作效率, 加班都是活該的
    //20061019 end



    ??? 今天就寫這么多,
    大家還遇到過什么樣的編程惡習,歡迎補充。

    大家不要總是抱怨什么工資太少,工作量太大。工作效率這玩意兒是要經驗來做基礎,這沒錯,經驗少也沒事。咱平時寫程序的時候多上點心,多對自己的代碼思考一下,多動動腦子。自然就能總結出最好的工作經驗了,工作效率自然就提高了。

    也別總是說什么 STRUTS 不好, HIBERNATE 太慢,不屑去用它。人家的程序能在全世界流行,自然有他的過人之處。多讀讀他的代碼,學習一下他到底好在哪里,如何才能把這些優點應用到自己的代碼上。這才是最重要的。

    ?也許咱們寫不出什么高超的代碼技巧,寫不出什么華麗的算法,但如果能在一些習慣,細節上做到精益求精,那也對得起自己的代碼了。


    ??? 寫出上面這些代碼的人,如果你的工資真的很少,那我只能惋惜的說一句:你的工資是可憐了點,但看您寫的這代碼,連這點工資都不應該給你!!

    posted on 2006-10-16 23:27 小強 閱讀(5640) 評論(45)  編輯  收藏 所屬分類: 技術相關

    FeedBack:
    # re: 說一說編程惡習
    2006-10-16 23:48 | 馬嘉楠
    沒有注釋的代碼確實太痛苦了
    如果你對業務邏輯再不是很熟悉,那就是相當的痛苦了


    用拼音做變量名也不是新鮮事了,
    最近碰到一個,數據庫的字段名字就用拼音簡寫,
    都氣吐血了,哎  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-17 00:05 | kangxm
    嚴重理解!!!

    k他!  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-17 07:17 | xiaosilent
    最不能容忍的就是前兩點了:沒有注釋和不遵守規范。

    不過你公司也夠變態的。明知道代碼風格有問題,還不讓改...  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-17 07:47 | fengzl
    我們公司更狠,人家其他公司給我們作的內部管理平臺人家都放棄維護了(為什么?寫的那個叫垃圾!要啥沒啥~連數據庫視圖都不給標出來,運行數據庫和文檔有嚴重差異)
    丟給我讓我改東改西,活活累死  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-17 08:57 | 捕風
    我之前也有幸遇到這樣的代碼。
    N個頁面都是2000~3000行代碼,鮮有注釋,縮進混亂,數據庫字段和程序變量全是拼音簡寫,不明就里的代碼(他100行我就能用10行以內替換)。
    嚴重吐血!!!  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-17 09:09 | hi
    第三條,笑死我了  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-17 09:09 | itvincent
    那個縮進超出屏幕經典!  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-17 09:46 | 水流年似
    餅干啊! 看來你是真的 很郁悶啊 !寫了那么多! 我沒什么好說的!支持下代碼規范吧 呵呵!  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-17 09:56 | Qutr
    看了一和二的最后一句我直接噴了。
    樓主很幽默阿  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-17 10:08 | 雙面
    代碼縮進混亂也就忍了,咱用IDE格式化一下,也勉強可以看得過去,注釋沒有也就沒有啦,最TMD郁悶的是直接COPY以前或別人的的類來改,您老人家把業務邏輯改了,方法里的代碼也改了,就不能順手把人家寫過注釋也改下嗎?不想改?刪掉也可以啊!!這樣的注釋比沒有還可怕。  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-17 10:21 | greco
    其它的規范沒什么異議,只是想說注釋的問題。忘了在哪本書上的哪位大師說過,如果在一段代碼(50行左右)中出現2次注釋,那說明你該重構了。看不清業務邏輯說明,這些業務邏輯很混亂,是堆砌出來的成果。  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-17 11:46 | 曲靜波
    如果一個類擁有2000行的代碼已經是不合理的啦。應該重構。至于代碼縮進是IDE format的功能。注釋問題,是該寫的,而且每個方法都要寫成javadoc的形式。中文名的問題,也可以理解。如果用中文做類名反編譯過來應是亂碼~~~  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-17 12:36 | yuyu123
    這只是在class文件里面吧,還好調點,我現在改的jsp被<%%>包圍著幾千行的java代碼,再加幾百行零散分布的<script>和沒有縮進的HTML,無語啊!  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-17 13:29 | 萬金油
    第一經常范.....  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-17 19:15 | 布衣郎
    沒有規矩,不成方圓,好的代碼是讓所有人都看得懂的,而最差的代碼只能給機器看了。  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-17 20:32 | 卡卡西
    數日之后有幸遇見了當初寫這代碼的老兄,問過之后立刻暈倒,原來是這個代碼是參照別的模塊的樣子寫的,別的模塊在這里都有 N 個程序分支,通過 if 來判斷后決定調用哪個 model 里的方法。但他這個模塊很簡單,沒有什么分支,就是調用那一個方法,但他寫代碼時,看別人的模塊在這里都進行 if 判斷了,所以覺得自己也應該判斷一下,于是就出現了上面這樣的代碼。
    ————————————————————————————————————————————————
    狂倒狂倒狂倒狂倒狂倒狂倒狂倒狂倒狂倒狂倒狂倒。。。。。。。。。。。。。
    狂汗狂汗狂汗狂汗狂汗狂汗狂汗狂汗狂汗狂汗狂汗狂汗。。。。。。。。。。。
    狂暈狂暈狂暈狂暈狂暈狂暈狂暈狂暈狂暈狂暈狂暈狂暈狂暈。。。。。。。。

    最后無言!  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-17 22:16 | lagoon
    汗!!
    半路出家,沒有一點軟件工程的思想啊  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-17 22:25 | Java小白
    NB,支持一個!  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-18 13:17 | Lionheart
    更惡心的是,Html標記都用Java的字符串組裝起來,然后用一個Out.pringln(String),搞到頁面上去,基本上是這樣的,我們的業務邏輯是在Jsp里面寫的,我們的顯示代碼是在Java類里面包裝的,暈阿

    strRtn = "<td colspan=8><table width='100%' border='0' cellspacing='0' cellpadding='1'><tr>";
    strRtn += "<td align='center' valign='center' class='list_td_bar' ></td>";
    strRtn += "<td align='center' valign='center' class='list_td_bar' colspan='2' >[[ 0^workflow^workflow.wf_leavebill.AcceptNumber^ ]] </td>";
    strRtn += "<td align='center' valign='center' class='list_td_bar' colspan='2' >[[ 0^workflow^workflow.wf_leavebill.AcceptDate^ ]] </td>";
    strRtn += "<td align='center' valign='center' class='list_td_bar' colspan='4' >[[ 0^workflow^workflow.wf_leavebill.CurrentStatus^ ]] </td></tr>";
      回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-18 14:40 | 123bingbing
    增開7群,號碼 30440732
    8群 30756649
    9群 30178567
    10群 28694497

    我們的qq群:15096318 學習程序的都可以來
      回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-18 15:59 | 小強
    @Lionheart


    Lionheart真是說到我心里了, 我剛剛又遇到了這樣一個代碼, 整個模塊沒有JSP, 所有的JSP,HTML, 連JS代碼都是在servlet里Out.pringln(String)的...........天啊, 神啊救救我吧............... 我們工程布署不規范, 哪怕是改個普通的工具類都要重啟才行.重啟的可是weblogic呀, ..........累死人不償命啊  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-19 16:05 | teak
    我的同事,寫了個3000行的jsp頁面,重構后600行。  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-19 16:52 | hyifeng
    哈哈,笑死我了。

    我和博主一樣辛苦,
    我曾接手一個統計項目,在不了解業務邏輯的情況下,啃所有的代碼。
    代碼沒有任何注釋。
    不一樣的是,我看的是C++,應該比看Java更悲慘。

    變量名是一大堆英文縮寫,很多名稱都是非常相似的。

    看這些代碼我也是搜索,上下翻飛。
    有時候調試也派不上什么用場,因為到處都有計算和集合操作,
    沒有明白邏輯的情況下,跟蹤也不會知道他在干什么。
    一邊看一邊做標記,然后假想......

    唯一好比較好的是,代碼還算規范。
      回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-22 10:35 | LifeFree
    恩,我經常接觸到這樣的代碼,從剛寫代碼的新人到寫過超過十年代碼的系統架構師,都多少存在這樣的問題,原因很多。
    基本上要依靠寫程序的人的自律,和腦子里時時有自己要寫出好的代碼的這根弦。  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-23 12:57 | alex[匿名]
    我們的業務邏輯是在Jsp里面寫的,我們的顯示代碼是在Java類里面包裝的
    --------------
    感覺這個最彪悍  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-30 10:28 | nada
    樓主幽默!!有針對性,寫的好  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-30 15:26 | darkmagi
    比起神州數碼的易飛ERP, 這些只能是小巫見大巫
    易飛ERP, 所有的表, 全部用編號,最變態的一個表, 物品基本信息表, 400多個字段, 字段名MB001--MB422, 天哪, 隨便寫點什么東西都要查N久的表, 真是沒有最丑陋, 只有更丑陋
      回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-30 21:33 | suntower
    樓上的,這就是您見怪了灑。
    人家是故意這么做的,好讓您不好修改。這樣就可以拿過去讓他們幫您改了,好收錢。
    我見過一個php程序,函數名全是64位編碼的。
    就是function R34527348357r65r62389543928549($var879854296)這樣的,這是故意加密的了。  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-31 13:36 | Samuel Cai
    to 小強
    關于五,沒錯,一般都是用版本控制軟件來讓代碼,如果你做了什么功能,可以通過比較來看你的修改。
    因此,你可以分兩步提交,第一是只修正縮進,記得注釋說沒有改動代碼。第二才是添加你的功能,這樣別的人就可以很方便的看出你做了什么改動。  回復  更多評論
      
    # re: 說一說編程惡習
    2006-10-31 16:48 | hotleave
    呵呵,其他的還都沒有犯過,只是經常用拼音做變量或函數名,因為咱的E文不行。開了一個IDE后,再開金山詞霸機器又太卡了。
    至于中文變量名,既然支持,用一下也無防,還清楚明了呢。我不反對用中文變量名,雖說我沒有用過。^-^  回復  更多評論
      
    # re: 說一說編程惡習
    2006-11-01 10:44 | 閔毓
    文筆不錯,說的都是經典,強力支持。  回復  更多評論
      
    # re: 說一說編程惡習
    2007-01-14 14:15 | Alex
    有點意思,尤其是這句"你丫是不是寫著代碼睡著了? 臉正好砸在 TAB 鍵上。"

    摟主的脾氣特投我,有機會聊聊
      回復  更多評論
      
    # re: 說一說編程惡習
    2007-03-21 11:07 | lendo
    強烈地支持,再簡單的方法也要堅持寫注釋,這樣形成習慣,到了業務復雜的時候就能體現他的價值了  回復  更多評論
      
    # re: 說一說編程惡習
    2007-03-22 07:34 | chorsg
    理解!
    我公司做的項目當初老總招了幾個中專生,另人不解的中專生里面還有原來是學醫的,前段時間改他們的代碼真想砸電腦。  回復  更多評論
      
    # re: 說一說編程惡習
    2007-05-09 23:02 | 監聽器
    樓主幽默!!有針對性,寫的好。  回復  更多評論
      
    # re: 說一說編程惡習
    2008-01-04 22:35 | talentluo
    "你丫是不是寫著代碼睡著了? 臉正好砸在 TAB 鍵上。"
    這句太逗了。。。  回復  更多評論
      
    # re: 說一說編程惡習
    2008-01-10 17:19 | iu
    trstyyufvguiljvj; fgxerajuy6 jmyhfi kuyfi67edjhgc gdi76io8y9 uyhfol mhjfui6yrfi67rorf kuyr9ibn g 7t08 8typt7sgfhg i8g fi  回復  更多評論
      
    # re: 說一說編程惡習
    2008-05-19 11:15 | xushaoo
    其實沒必要去怨責那些人,你也許說,你在修改的時候麻煩,但是也許你修改的時間還抵不上別人開發的時間,別人可能兩星期出個項目,國內哪有你說的那種好情況,給你寫注釋什么的,沒時間~~~~  回復  更多評論
      
    # re: 說一說編程惡習[未登錄]
    2009-05-08 17:04 | feng
    對我們程序員來說,時間就是生命啊,這些惡習其實就是在浪費我們的時間  回復  更多評論
      
    # re: 說一說編程惡習
    2009-05-15 22:25 | C.Kevin
    狂笑....  回復  更多評論
      
    # re: 說一說編程惡習
    2009-09-22 02:32 | xjay
    汗。我還見過數據庫表直接用字母a,b,c,d...字段用a1,a2,a3...的呢,更強悍。  回復  更多評論
      
    # re: 說一說編程惡習
    2009-09-28 13:26 |
    沒辦法啊,我剛剛開始工作,就遇到了老兄說的這個問題,看他的代碼就像看天書一樣,頭疼啊@捕風
      回復  更多評論
      
    # re: 說一說編程惡習
    2010-01-21 11:19 | 樂瘋了
    舉個例子 我同事寫的 TJQuery 方法名。我看了半天都不知道是啥 后來看了整套過程 才發現原來是 統計查詢。我日  回復  更多評論
      
    # re: 說一說編程惡習[未登錄]
    2010-08-16 14:07 | snowolf
    @馬嘉楠
    有天晚上,我為了這種問題,重構了一遍數據庫!  回復  更多評論
      
    # re: 說一說編程惡習
    2014-08-05 10:10 | mino
    支持,惡習與效率。  回復  更多評論
      
    主站蜘蛛池模板: 国产精品免费视频播放器| 亚洲毛片不卡av在线播放一区| 亚洲伊人久久大香线焦| 在线免费观看国产视频| 久久国产乱子伦精品免费午夜| 亚洲AV日韩AV天堂久久| 成年大片免费视频| 国产精品免费大片一区二区| 亚洲精品在线免费观看| 亚洲av高清在线观看一区二区| 国产精品免费看久久久| 亚洲国产成人无码AV在线影院| 亚洲熟妇无码AV在线播放| 成人免费毛片内射美女-百度| 午夜免费国产体验区免费的| 亚洲国产综合在线| 亚洲精品一级无码鲁丝片 | 亚洲大尺度无码无码专线一区| 伊人久久亚洲综合| 女人18特级一级毛片免费视频| aa级女人大片喷水视频免费| 亚洲人精品亚洲人成在线| 亚洲精品自在在线观看| 日韩一区二区免费视频| 久久久久国色av免费看| 国产高潮久久免费观看| 亚洲爆乳无码精品AAA片蜜桃| 亚洲av无码不卡一区二区三区| 国产一级理论免费版| 国产成人精品免费视频动漫| www在线观看播放免费视频日本| 亚洲高清有码中文字| 亚洲天堂中文字幕| 国产亚洲?V无码?V男人的天堂| 成人看的午夜免费毛片| 日本视频免费高清一本18| 一区二区视频免费观看| 国产亚洲人成在线播放| 久久夜色精品国产噜噜亚洲a| 久久夜色精品国产噜噜亚洲AV| 亚洲精品国产美女久久久|