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

談談對話式軟件開發

云計算 云原生
與 LLM 對話不像這些選擇中的任何一個,這完全是另一回事;我們都在努力弄明白它如何發揮作用。要求 LLM 編寫代碼,神奇地出現代碼?這明顯是一個改變生活的事情。與 LLM 就你們合作編寫的代碼進行交談?我認為這同樣是一個不太明顯但同樣深刻的改變生活的事情。

利用大語言模型生成代碼是改變生活的方式之一,但與它們就軟件開發過程進行交談也同樣重要。Jon Udell繼續探索大語言模型為程序員帶來的價值。

譯自 Let’s Talk: Conversational Software Development 。

以下是啟動了一次非常成功的人工智能ChatGPT交互的提示。

PROMPT:
I’ll give you a test script and the output it is testing, and ask about strategies to improve the test, OK? Here’s the script.

#!/bin/bash

set -eu

list_tickets() {
    local output
    output=$($command $subcommand run list_tickets 2>&1) || {
        echo "Command failed with error: $output"
        exit 1
    }
    echo "$output"
}

output=$(list_tickets)
count=$(echo "$output" | jq -r '.tickets_list | fromjson | length')

# Check if count is greater than 0
if [[ $count -gt 0 ]]; then
    echo "PASS: list_tickets count is greater than 0."
else
    echo "FAIL: list_tickets count is 0 or less."
fi

一次過路人的見解

該提示是一個有意設置的樸實版本的bash腳本,我設想的腳本。我本來也打算在最初的提示中提供樣本輸出,但忘記這么做了?;叵肫饋?,不提供輸出而先讓ChatGPT專注于腳本本身可能是一個好主意。它的一些觀察包括:

RESPONSE:
While you’ve used set -eu to exit on any error or unset variable usage, consider using set -euo pipefail to also capture failures in any part of a pipeline.

這是一個很好的關于在編碼時如何從LLM中隱性地獲取知識的例子。我之前對bash中的嚴格模式有一些了解,但不完整。因此我們暫停了一會兒來探索這個話題,我加深了知識,并記下考慮使用其他-o參數 —— 尤其是 -x(xtrace) 和 -n(noexec) 用于調試。我們剛剛開始處理手頭的實際任務,但這個小小的繞道本身就很有價值。

讓我們來談談JSON

我現在回頭提供了樣本輸出:

PROMPT:
“tickets_list”: “[{\”associates_rdb\”:null,\”association_type\”:null,\”cc_email\”:{\”cc_emails\”:[],\”fwd_emails\”:[],\”reply_cc\”:[],\”tkt_cc\”:[]},\”created_at\”:\”2023-10-12T12:15:00+01:00\”,\”custom_field\”:{\”cf_reference_number_2939992\”:null},\”datetime_tc01\”:null,\”datetime_tc02\”:null,\”datetime_tc03\”:null,\”deleted\”:false,\”delta\”:true,\”description\”:\”world\”,\”description_html\”:\”\\u003cdiv\\u003eworld\\u003c/div\\u003e\”,\”dirty\”:0,\”display_id\”:17,\”due_by\”:\”2023-10-16T22:00:00+01:00\”,\”email_config_id\”:153000020300,\”frDueBy\”:\”2023-10-12T22:00:00+01:00\”,\”fr_escalated\”:true,\”group_id\”:null,\”id\”:153002218563,\”int_tc01\”:null,\”int_tc02\”:null,\”int_tc03\”:null,\”int_tc04\”:null,\”int_tc05\”:null,\”internal_agent_id\”:null,\”internal_group_id\”:null,\”isescalated\”:false,\”json_tc01\”:null,\”long_tc01\”:null,\”long_tc02\”:null,\”long_tc03\”:null,\”long_tc04\”:null,\”long_tc05\”:null,\”nr_due_by\”:null,\”nr_escalated\”:false,\”nr_reminded\”:false,\”owner_id\”:null,\”parent_ticket_id\”:null,\”priority\”:1,\”priority_name\”:\”Low\”,\”product_id\”:153000018092,\”requester_id\”:153002362554,\”requester_name\”:\”Jon Udell\”,\”requester_status_name\”:\”Open\”,\”responder_id\”:null,\”responder_name\”:\”No Agent\”,\”sl_escalation_level\”:null,\”sl_manual_dueby\”:null,\”sl_merge_parent_ticket\”:null,\”sl_product_id\”:null,\”sl_skill_id\”:null,\”sl_sla_policy_id\”:null,\”sla_state\”:0,\”source\”:2,\”source_name\”:\”Portal\”,\”spam\”:false,\”st_survey_rating\”:null,\”status\”:2,\”status_name\”:\”Open\”,\”subject\”:\”hello\”,\”ticket_type\”:null,\”to_email\”:null,\”to_emails\”:null,\”trained\”:false,\”updated_at\”:\”2023-10-12T22:05:04+01:00\”,\”urgent\”:false},{\”associates_rdb\”:null,\”association_type\”:null,\”cc_email\”:{\”bcc_emails\”:[],\”cc_emails\”:[],\”fwd_emails\”:[],\”reply_cc\”:[],\”tkt_cc\”:[]},\”created_at\”:\”2023-10-12T04:41:12+01:00\”,\”custom_field\”:{\”cf_reference_number_2939992\”:null},\”datetime_tc01\”:null,\”datetime_tc02\”:null,\”datetime_tc03\”:null,\”deleted\”:false,\”delta\”:true,\”description\”:\”Hello there, Our Report metrics over the last week is at zero and can’t be correct? Are you facing any issues?\”,\”description_html\”:\”Hello there, Our Report metrics over the last week is at zero and can’t be correct? Are you facing any issues?\”,\”dirty\”:0,\”display_id\”:6,\”due_by\”:\”2023-10-16T22:00:00+01:00\”,\”email_config_id\”:153000020300,\”frDueBy\”:\”2023-10-12T22:00:00+01:00\”,\”fr_escalated\”:false,\”group_id\”:153000077019,\”id\”:153002214584,\”int_tc01\”:null,\”int_tc02\”:null,\”int_tc03\”:null,\”int_tc04\”:null,\”int_tc05\”:null,\”internal_agent_id\”:null,\”internal_group_id\”:null,\”isescalated\”:false,\”json_tc01\”:null,\”long_tc01\”:null,\”long_tc02\”:null,\”long_tc03\”:null,\”long_tc04\”:null,\”long_tc05\”:null,\”nr_due_by\”:null,\”nr_escalated\”:false,\”nr_reminded\”:false,\”owner_id\”:null,\”parent_ticket_id\”:null,\”priority\”:1,\”priority_name\”:\”Low\”,\”product_id\”:153000018092,\”requester_id\”:153002465401,\”requester_name\”:\”Adam Doe\”,\”requester_status_name\”:\”Open\”,\”responder_id\”:null,\”responder_name\”:\”No Agent\”,\”sl_escalation_level\”:null,\”sl_manual_dueby\”:null,\”sl_merge_parent_ticket\”:null,\”sl_product_id\”:null,\”sl_skill_id\”:null,\”sl_sla_policy_id\”:null,\”sla_state\”:0,\”source\”:1,\”source_name\”:\”Email\”,\”spam\”:false,\”st_survey_rating\”:null,\”status\”:2,\”status_name\”:\”Open\”,\”subject\”:\”Issues with reports\”,\”ticket_type\”:\”Bug\”,\”to_email\”:null,\”to_emails\”:null,\”trained\”:false,\”updated_at\”:\”2023-10-12T04:41:13+01:00\”,\”urgent\”:false}]”
}

在另一個情景下,我可能會花時間優化格式化這個 JSON 輸出。但是 LLM —— 像編譯器和解釋器 —— 不關心這些。更棒的是,它們可以容忍會使傳統 JSON 格式化程序死機的語法。如果你把上面的例子粘貼到傳統格式器,會遇到兩個問題。首先,如果不用花括號包裹就不是有效的 JSON。其次, tickets_list 的值不會是 JSON 對象,而是字符串,因為該值是 JSON 的字符串化表示。非常神奇的是,LLM “知道” 你的意圖并做出正確反應:

RESPONSE:
{
          "tickets_list": [
            {
              "associates_rdb": null,
              "association_type": null,
              "cc_email": {
                "cc_emails": [],
                "fwd_emails": [],
                "reply_cc": [],
                "tkt_cc": []
              },
              "created_at": "2023-10-12T12:15:00+01:00",
              "custom_field": {
                "cf_reference_number_2939992": null
              },
            ...
            }
        ]
    }

這是非常瑣碎的東西,但它是可能影響你的工作流程并浪費最好留給高級功能的認知資源的東西。在這一點上,我還進行了我稱之為可解釋性測試: LLM是否解釋了1) 代碼片段需要被花括號包裹,以及2) 嵌套的值需要被解析?以下是結果。

工具

llm 提供者

解釋需要使用{}

解釋tickets_list需要解析

chatgpt

openai

copilot chat

開放ai

claude

anthropic

cody

anthropic

這引起我的興趣,因為雖然我知道 Copilot Chat 使用 OpenAI ,Cody 使用 Anthropic,但這不總是明顯的。各自的聊天界面增強了提示,使回復不同于從底層 LLM 獲得的回復。但在這個例子中,工具似乎與它們各自的界面行為一致。

讓我們來討論測試策略

ChatGPT 對 set -euo pipefail 的觀察只是我們可以探索的多個方向之一,但我把話題引回到了手頭的任務上: 完善我在最初提示中包含的測試腳本。該腳本測試的是 Freshdesk 票務系統的輸出結果,而天真的測試只是檢查我們正在測試的工具是否可以調用 Freshdesk 的 API 并返回多于 0 張票。更好的測試會是什么樣的呢?ChatGPT 的建議包括檢查優先級和狀態是否與預期值匹配、空值或長列表的票務是否被優雅處理,以及所有日期字段是否存在并包含有效日期。

我選擇了最后一種方法,ChatGPT 相應地修改了測試腳本。這需要編寫一個正則表達式來匹配日期,并在每張票的一組日期字段中循環應用該正則表達式。這感覺太復雜了,所以我要求將范圍限制為僅檢查一個日期字段: created_at。即使這樣仍然感覺太復雜,所以我們舍棄了循環,將測試簡化為僅檢查單張票中的有效日期。之后我們轉向了下一個話題。

讓我們來討論如何將測試推廣到一個測試套件

需要測試的用例有:

  • 列出 Freshdesk 票據
  • 創建新 Freshdesk 票據
  • 刪除 Freshdesk 票據
  • 檢索特定 Freshdesk 票據的詳細信息
  • 更新 Freshdesk 票據
  • 向 Freshdesk 票據添加注釋

我很少使用 bash 函數,但我覺得在這里它們可能會很有用,所以當看到一個將 bash 腳本結構化為與六個測試用例對應六個函數的回復時,我很高興。“看起來不錯,”我說,“請給我一個完整的構建如此結構化的版本,并包含第一個測試。”

此時,一個在我身邊觀看的同事想知道是否對 LLMs 使用“請”和“謝謝”會帶來更好的結果。這打敗了我!我只是因為感覺很好才這樣做。這是一種危險的人格化嗎?也許吧。但即使它們是非人類,我也看不出欺負我的助手有任何益處。

然后同一位同事問及另一種從表格驅動測試的替代策略。我們問:

PROMPT:
We are wondering if it would be better to have a data structure for these tests instead of a set of loose functions, what do you think are the pros and cons?

回應提到了優點(可維護性、重用性、并行執行、一致的日志記錄、清晰度)和缺點(額外開銷、復雜度、遷移時間、學習曲線)。它以這段總結結束:

RESPONSE:
Given that your test suite might grow or change over time, adopting a structured approach earlier can be beneficial. However, it’s essential to weigh the initial time investment against the long-term benefits. If you think your test suite will remain relatively small and static, the current loose function setup might suffice. But if you anticipate growth or frequent changes, the structured approach will pay off in the long run.

由于我們處于快速原型設計階段,還沒有準備好對此測試策略進行長期投資,所以我們選擇保持松散函數的方式。但我們都覺得花幾分鐘考慮替代方法是非常有價值的。

讓我們來討論持久化票據 ID 的方法

要編寫的下一個測試是創建票據的測試。ChatGPT 建議存儲票據的 ID 以在其他測試中使用,以測試讀取、更新和向票據添加注釋的功能。并且它編寫了一個將 ID 持久化到文件的函數。這讓我感到疑惑,并要求評估在文件和變量之間保存的權衡取舍。這里是對回復的摘要,以表格形式進行了修訂(感謝 ChatGPT)。

保存于文件


保存于變量


優點

缺點

優點

缺點

持久性

速度較慢

速度快

揮發性

進程間通信

復雜度高

簡單

限于單個腳本/進程

適合大數據

需清理

無文件依賴

內存限制

并補充了這個結論:

RESPONSE:
If you’re writing a single script, and the data doesn’t need to persist beyond the script’s execution, a variable might be simpler and faster.

我甚至沒有考慮基于文件的替代方法。當 ChatGPT 使用那種方法時,它促使我考慮并討論不同方案的權衡取舍。由于我最終做了與使用 LLM 之前完全一樣的事,這次繞路就是無謂的嗎?我不這么認為。考慮替代方案總是有價值的。這次繞路花費的時間很少,且雖然它沒有改變我最終的做法,但過程感覺很有價值。

在為 get_ticket 函數編寫測試時,我們也有過類似的交互。檢查獲取的票據 ID 是否與我們存儲的 ID 匹配就足夠了嗎?ChatGPT 在效率和徹底性之間劃清了界限,列出了進行更徹底檢查的選項,并建議對于基本的冒煙測試,優先考慮效率是有意義的。同樣,我已經會做更簡單的事了,所以這并沒有改變任何東西。但盡管我知道我們當然是在進行冒煙測試,大聲說出來還是顯得很有幫助。

讓我們來討論 Bash

這里有一個交互極大地改變了結果。我們向測試套件添加了第三個測試,但只運行了前兩個。出了什么問題?調試過程與使用 LLM 之前一樣,但 ChatGPT 可以更快地在代碼中插入打印語句,因此速度快了很多。在進行幾次這種暴力試錯法后,我們仍然無法通過第二個測試。

然后我想到問: "關閉 set -euo pipefail 會有意義嗎?" 當我這樣做時,腳本就完整運行了 - 即所有 6 個測試都運行了 - 但第二個測試在本應成功的情況下失敗了。隨后我恍然大悟。我問: "我們應該從 test_create_ticket 返回 $TICKET_ID 嗎?" ChatGPT 提醒我一個我讀過但從未遇到過的行為:

RESPONSE:
In the context of bash scripts, when you return a number from a function, it’s analogous to an exit code.

我的天??!對了!我們需要該函數設置全局變量為所創建票據的值,但返回零以避免過早退出,同時保持嚴格模式仍然生效。這是最后的突破;在那之后,一切順利。

當橡皮鴨說話時

我不斷回到這一系列文章的第一個主題: 當橡皮鴨說話時。大聲思考總是有幫助的。理想情況下,你可以與一個人類伙伴一起這樣做。橡皮鴨雖然是個糟糕的替代品,但遠勝于一無所有。

與 LLM 對話不像這些選擇中的任何一個,這完全是另一回事;我們都在努力弄明白它如何發揮作用。要求 LLM 編寫代碼,神奇地出現代碼?這明顯是一個改變生活的事情。與 LLM 就你們合作編寫的代碼進行交談?我認為這同樣是一個不太明顯但同樣深刻的改變生活的事情。

責任編輯:武曉燕 來源: 云云眾生s
相關推薦

2009-11-07 19:15:51

嵌入式軟件開發

2011-08-11 09:56:50

模式

2022-08-20 18:28:49

汽車軟件

2015-04-23 16:34:29

軟件開發過程傻瓜式軟件

2022-02-14 23:17:16

Gitlab嵌入式工具

2010-04-21 13:22:20

Windows CE

2017-03-17 08:15:17

敏捷軟件開發軟件開發

2020-06-24 11:21:47

軟件開發面試

2024-11-07 12:14:36

2012-06-18 09:34:14

2024-12-18 08:11:52

2010-09-04 15:27:31

多平臺移動開發黃洋成尚郵

2020-12-03 15:54:15

軟件開發工具

2009-02-10 17:11:53

SaaSSaaS開發PaaS

2015-03-02 09:35:07

軟件開發

2016-12-14 13:51:56

2024-03-11 09:00:00

人工智能軟件開發軟件編程

2022-05-25 23:25:17

低代碼數字化軟件

2022-01-13 23:15:29

Docker開發嵌入式

2022-07-19 16:31:29

軟件開發Kubernetes容器
點贊
收藏

51CTO技術棧公眾號

午夜视频一区| 你懂的视频在线免费| 天天射成人网| 亚洲国产日韩欧美综合久久| 亚洲美免无码中文字幕在线| 男操女在线观看| 精品一区二区三区视频在线观看| 欧美精品性视频| 亚洲天堂网一区二区| av成人亚洲| 亚洲精品网站在线观看| 欧美日韩高清在线一区| 亚洲在线视频播放| 宅男噜噜噜66国产日韩在线观看| 中文字幕免费国产精品| 亚洲视频天天射| 亚洲成人av观看| 亚洲一区二区在线免费看| 久久亚洲一区二区| 国产黄色一级大片| 日韩高清不卡一区| 高清一区二区三区四区五区| 久久久久人妻一区精品色| 国产欧美一区二区三区米奇| 欧美色图片你懂的| 狠狠97人人婷婷五月| www视频在线看| 国产日产精品一区| 国产一区再线| 亚洲av永久无码国产精品久久| 日本在线不卡视频一二三区| 97国产精品视频人人做人人爱| 小早川怜子一区二区的演员表| 久久99高清| 亚洲的天堂在线中文字幕| 999在线观看| 日韩精品第一| 欧美午夜精品久久久久久人妖| a级片一区二区| 麻豆传媒视频在线观看| 欧美高清在线精品一区| 欧美成ee人免费视频| 天堂av在线免费| 国产激情一区二区三区四区| 国产精品香蕉在线观看| 无码人妻精品一区二区蜜桃色欲| 欧美激情日韩| 欧美裸体xxxx极品少妇| 情侣偷拍对白清晰饥渴难耐| 菠萝蜜一区二区| 国产丝袜一区二区| 精品夜夜澡人妻无码av| 欧美福利在线播放网址导航| 精品成人在线观看| 亚洲麻豆一区二区三区| 2020最新国产精品| 精品日本一线二线三线不卡| 日本人dh亚洲人ⅹxx| 免费一区二区三区在线视频| 欧美一区二区三区视频在线观看| 午夜大片在线观看| 精品一区二区三区四区五区| 日韩一级精品视频在线观看| 少妇欧美激情一区二区三区| 一本一道久久a久久| 欧美成人官网二区| 中文字幕天堂网| 首页亚洲中字| 国产亚洲综合久久| 国产精品一区二区亚洲| 99精品美女| 欧美精品生活片| 国产成人在线免费观看视频| 国产精品亚洲综合久久| 国产成人精品视| 6—12呦国产精品| 国产一区二区伦理| 超碰97在线资源| 亚洲日本国产精品| 欧美国产欧美综合| 中国一级大黄大黄大色毛片| 日本资源在线| 色综合天天做天天爱| 高清一区二区视频| 国产精品**亚洲精品| 337p日本欧洲亚洲大胆色噜噜| 日韩av一二区| 国产精品久久占久久| 欧美—级高清免费播放| 日韩黄色片网站| 国产一区二区免费看| 精品国产一区二区三区久久久久久| 日本免费不卡| 亚洲人成精品久久久久久| 国产曰肥老太婆无遮挡| 写真福利精品福利在线观看| 日韩午夜电影av| 国产手机在线观看| 欧美精品aa| 国产精品久久综合av爱欲tv| 成人黄色在线观看视频| 久久久久久久网| 欧美另类videosbestsex日本| 无遮挡爽大片在线观看视频| 欧美日韩精品三区| 中文字幕无码人妻少妇免费| 欧美a级片视频| 2021国产精品视频| av一区二区三| 欧美激情在线免费观看| 日本一区午夜艳熟免费| 欧美日韩卡一| 国产丝袜视频一区| 久久久精品91| 久久国产精品无码网站| 久久久久免费网| 欧美巨大xxxx做受沙滩| 欧美日韩一区中文字幕| 国产人妻人伦精品1国产丝袜| 亚洲成人精选| 国产精品久久在线观看| 神马亚洲视频| 亚洲综合免费观看高清完整版在线| 国产精品人人妻人人爽人人牛| 日韩欧美中文字幕一区二区三区| 亚洲深夜福利网站| 国产成人在线免费观看视频| 国产成人aaaa| 日本免费在线视频观看| 影视一区二区三区| 精品偷拍各种wc美女嘘嘘| 精品无码人妻一区二区三区| 黄网站免费久久| 亚洲国产精品www| 88xx成人免费观看视频库 | 熟妇人妻va精品中文字幕| 视频一区在线| 久久这里有精品| 亚洲性生活大片| 欧美国产日韩亚洲一区| 欧美黄色一级片视频| 欧美色图婷婷| 97精品一区二区视频在线观看| 超碰在线人人干| 亚洲精品乱码久久久久久久久| 国产无色aaa| 99国产精品免费视频观看| 国产日韩在线精品av| 91这里只有精品| 欧美日韩三级一区二区| 中文字幕 自拍| 日韩专区欧美专区| 日韩一区二区三区高清| 自拍偷自拍亚洲精品被多人伦好爽| 精品视频久久久| 69视频免费在线观看| 91视频精品在这里| 91免费视频网站在线观看| 欧美国产极品| 日本亚洲欧美三级| 二区三区在线播放| 欧美日韩在线一区二区| 潮喷失禁大喷水aⅴ无码| 另类成人小视频在线| 日韩视频在线免费播放| 国产麻豆精品| 久久免费视频这里只有精品| 午夜视频www| 日韩欧美一区二区三区久久| 影音先锋制服丝袜| 久久99久久99小草精品免视看| 亚洲AV无码成人精品一区| 精品午夜av| 欧美亚洲视频在线观看| 国产精品四虎| 91精品福利在线一区二区三区 | 国产精品二区三区| 欧美激情20| 综合国产在线视频| 国产成人三级在线播放| 亚洲地区一二三色| 成都免费高清电影| 国产乱码精品一区二区三区av | 日韩精品无码一区二区| 久久看人人爽人人| 午夜免费福利视频在线观看| 激情久久久久久久| 日韩欧美一区二区在线观看| 精品伊人久久| 国产91ⅴ在线精品免费观看| 日本中文字幕在线看| 精品剧情在线观看| 天天爱天天做天天爽| 亚洲精品亚洲人成人网| 日本高清www| 国内精品伊人久久久久av影院| www插插插无码视频网站| 精品视频免费| 国产视频在线观看一区| 四虎视频在线精品免费网址| 午夜精品一区二区三区在线| av每日在线更新| 精品国产区一区| 日韩不卡高清视频| 洋洋av久久久久久久一区| 亚洲av成人无码久久精品| 成人一区二区三区| 污污网站免费看| 国产农村妇女毛片精品久久莱园子| 一本久道久久综合| 国产三级精品三级在线观看国产| 国产精品永久免费视频| 欧洲一区精品| 欧美黄色片免费观看| 欧美a在线看| 亚洲天堂av在线免费观看| www.精品视频| 666欧美在线视频| 精品黑人一区二区三区| 午夜影院在线观看欧美| 在线免费观看亚洲视频| 中文欧美字幕免费| 国产吞精囗交久久久| 国产91精品精华液一区二区三区| 欧美第一页浮力影院| 久久在线精品| 国产免费黄色小视频| 在线精品国产| 偷拍盗摄高潮叫床对白清晰| 狠狠做六月爱婷婷综合aⅴ | 91精品国产综合久久香蕉| 亚洲电影观看| 2018日韩中文字幕| heyzo在线欧美播放| 欧美日韩第一视频| 中文在线手机av| 久久伊人精品一区二区三区| 香蕉视频在线看| 在线视频欧美日韩| 成人在线免费观看| 亚洲午夜精品久久久久久久久久久久| 色视频免费在线观看| 精品一区二区电影| 污视频软件在线观看| 亚洲成人精品视频| 国产小视频免费观看| 欧美大片拔萝卜| www.com在线观看| 欧美xxxxx牲另类人与| 成 人 免费 黄 色| 精品美女一区二区| 免费观看黄色一级视频| 亚洲第一精品夜夜躁人人爽| 人妻va精品va欧美va| 精品国产人成亚洲区| 五月婷婷六月丁香综合| 精品视频—区二区三区免费| 玖玖综合伊人| 中文字幕亚洲欧美在线| 欧美69xxxx| 欧美精品成人在线| 新版的欧美在线视频| 国产精品福利观看| 韩国理伦片久久电影网| 97人人干人人| 开心激情综合| 日韩欧美国产二区| 国产精品97| 日本欧美视频在线观看| 国产精品日韩| 日本久久久久久久久久久久| 精品一区二区三区免费观看| 日韩精品国产一区| 久久亚洲精品小早川怜子| 女人十八毛片嫩草av| 亚洲欧美另类综合偷拍| 日本一区二区三区免费视频| 色综合久久88色综合天天| 中文字幕在线观看视频一区| 日韩午夜三级在线| 日韩精品一二| 久久精品国产电影| а√在线中文在线新版| 国产精品久久久久国产a级| 国产精品亚洲四区在线观看| 国产伦视频一区二区三区| 禁断一区二区三区在线| 妞干网这里只有精品| 国产精品视频| 一级做a免费视频| 99在线精品观看| 国产三级精品三级观看| 精品久久久久久中文字幕一区奶水| 少妇一级淫片日本| 精品日韩一区二区三区 | 欧美巨乳在线观看| 亚洲天堂手机| 51午夜精品| 欧美精品一区二区三区中文字幕| 久久99国产精品一区| 久久黄色网页| 无码人妻aⅴ一区二区三区玉蒲团| 久久久久久97三级| 青青草手机在线视频| 欧美亚洲禁片免费| 人人妻人人澡人人爽久久av| 日韩中文字幕在线看| 亚洲黄色免费看| 91精品黄色| 成人91在线| 看av免费毛片手机播放| 国产久卡久卡久卡久卡视频精品| 欧美狂猛xxxxx乱大交3| 亚洲一区二区中文在线| 国产又粗又黄又爽视频| 亚洲视频第一页| 国产精品一二三产区| 91九色视频在线观看| 日韩电影一区| 蜜臀av午夜一区二区三区| 国产成人免费xxxxxxxx| 登山的目的在线| 欧美日韩精品久久久| 国产在线小视频| 69av在线播放| 精品视频在线你懂得| 无码人妻精品一区二区蜜桃百度| 久久精品国产久精国产| 在线免费观看成年人视频| 国产精品高潮呻吟| 无码人妻精品一区二区| 精品亚洲国产成av人片传媒| 成人爽a毛片免费啪啪动漫| 91老司机精品视频| 久久看人人摘| 亚洲久久中文字幕| 国产精品丝袜久久久久久app| 国产成人精品777777| 日韩成人中文字幕| 国产精品25p| 久久亚洲国产精品日日av夜夜| 国产日本精品| 五月婷婷综合在线观看| 欧美日韩中国免费专区在线看| 人妻精品无码一区二区| 久久久视频精品| 6080亚洲理论片在线观看| 黄色录像特级片| 国产经典欧美精品| 久久精品欧美一区二区| 精品国产区一区| 九色porny丨首页入口在线| 激情小说综合区| 久久国产精品99国产| 伊人网伊人影院| 欧美日韩美女一区二区| 午夜视频在线观看网站| 91在线视频成人| 亚洲网站在线| 丝袜美腿中文字幕| 欧洲生活片亚洲生活在线观看| 在线视频1区2区| 亚洲综合小说区| 亚洲国产免费看| 亚洲性猛交xxxx乱大交| 欧美日韩综合在线| 高潮毛片在线观看| 国产精品久久久久久免费观看| 亚洲人妖在线| av网站免费在线看| 欧美肥妇毛茸茸| 欧美videos另类精品| 蜜桃视频在线观看成人| 日韩电影一区二区三区| √天堂中文官网8在线| 精品国产精品一区二区夜夜嗨| 免费成人在线电影| 亚洲成人第一| 国产成人在线看| 亚洲永久精品在线观看| 色妞欧美日韩在线| 高清一区二区三区| 日韩一级理论片| 夜夜操天天操亚洲| 国产高清自拍视频在线观看| 亚洲www视频| 蘑菇福利视频一区播放| 可以免费看av的网址| 欧美精品一区二区久久婷婷| 日韩美女在线看免费观看| 日韩精品一区二区三区电影| 99国产精品一区| 一区二区国产欧美| 韩剧1988免费观看全集| 日韩88av| 国产草草浮力影院| 555www色欧美视频| 超级碰碰久久| 中文精品无码中文字幕无码专区| 久久久久国产成人精品亚洲午夜|