亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

open-code-review:構(gòu)建人機協(xié)作的高效代碼審查體系

open-code-review:構(gòu)建人機協(xié)作的高效代碼審查體系 1. 為什么代碼審查總是形同虛設(shè)——open-code-review想解決的真實問題1.1 代碼審查在工程實踐中的尷尬現(xiàn)狀我在一線做研發(fā)和帶團隊的時間加起來超過十年換過幾家公司也看過不少代碼評審流程從制定到瓦解的全過程。幾乎所有團隊在創(chuàng)業(yè)初期都說要做代碼審查但真正堅持下來的并不多。最常見的狀態(tài)是PR 發(fā)出來掛在列表里過了兩三天沒人看或者有人點了個看起來沒問題然后 merge 按鈕就亮了。把關(guān)這件事最后變成了走形式。這背后的原因不復(fù)雜。人工審查天然有惰性人看代碼的注意力曲線大概也就能維持二十分鐘左右超過這個時間后續(xù)的評論基本在湊數(shù)。另一個問題是審查者看不到上下文沒有統(tǒng)一的檢查清單全憑個人經(jīng)驗。兩個開發(fā)者的水平參差不齊審查結(jié)論就會天差地別。更麻煩的是代碼倉庫本身就是一座不斷變大的山跨模塊、跨服務(wù)的改動越來越多人工很難從互通的角度發(fā)現(xiàn)潛在風(fēng)險。我后來開始關(guān)注 open-code-review 這個方向的工具倒不是因為某個工具多神奇而是因為它把代碼審查這件事從純?nèi)斯ぷ兂闪巳藱C協(xié)作。它可以自動收集變更內(nèi)容、跑規(guī)則、打評論、生成審查報告甚至能在開發(fā)者把代碼交上來之前就完成第一輪篩選。真正讓人工審查者面對的不是幾百行代碼的大海撈針而是幾處值得深挖的疑點。這才是代碼審查本來應(yīng)該有的形態(tài)。1.2 從需求倒推一個開放代碼審查工具應(yīng)該具備什么能力open-code-review 不是一個我在某天突然發(fā)現(xiàn)的成品框架而是我把團隊踩過的坑、內(nèi)部反復(fù)出現(xiàn)的問題列成清單之后逐步驗證出的一套思路。一個稱職的代碼審查工具至少要回答四類問題。第一類問題是改了什么。大部分開發(fā)平臺自帶的 diff 視圖只展示文件級別的增刪改但審查者真正需要的是變更影響面比如這個改動涉及了哪些 API、調(diào)用了哪些公共函數(shù)、會不會影響老版本兼容性。open-code-review 在獲取變更信息后會做一次依賴關(guān)系分析把涉及的模塊、入口和潛在調(diào)用方列出來相當(dāng)于給審查者遞了一張影響范圍地圖。第二類問題是是否違反約定。團隊規(guī)范通常有大量顯式和隱式約定比如密鑰禁止明文提交、引入新依賴必須審批、TODO 注釋不能帶上線、錯誤日志必須包含請求 ID。這些如果用人工審查去盯又累又容易漏。代碼審查工具的價值在于把這些約定轉(zhuǎn)成可執(zhí)行的規(guī)則在機器人層面直接攔截。第三類問題是有沒有人真正看了。很多工具能做到自動評論但評論本身不是目的。open-code-review 更關(guān)注審查狀態(tài)的流轉(zhuǎn)誰會去處理機器人提出的問題、哪些問題被標(biāo)記為不處理、什么原因?qū)е虏惶幚?。這相當(dāng)于給審查過程加了審計日志團隊復(fù)盤的時候能拿出來看不再是薛定諤的已審過。第四類問題是能不能和現(xiàn)有流程串起來。一個審查工具如果獨立于 Git 倉庫、CI 流水線和即時通訊系統(tǒng)存在就等于一個信息孤島用不了兩周就會被棄用。open-code-review 的設(shè)計出發(fā)點就是開放協(xié)議和可插拔架構(gòu)能監(jiān)聽代碼托管平臺的事件也能把結(jié)果推給企業(yè)微信、釘釘、飛書或者 Slack。這一步走通工具才真正嵌入了工程師的日常工作流。所以我把open-code-review理解為一個開放的、可自托管的代碼審查基礎(chǔ)設(shè)施。它不是來替代人的而是替代那些重復(fù)性、規(guī)則性的審查勞動把人的注意力釋放到真正需要判斷力的地方。2. open-code-review的核心組成與工作流程拆解2.1 變更事件觸發(fā)與差異數(shù)據(jù)提取open-code-review 的工作起點不是代碼掃描而是事件監(jiān)聽。以 GitHub 為例當(dāng)有人 push 分支、創(chuàng)建 Pull Request、提交 review comment 或者把 PR 重新打開時代碼托管平臺會發(fā)送 webhook 事件到 open-code-review 服務(wù)端。服務(wù)端拿到事件后并不會直接拿事件里的 payload 去跑規(guī)則而是先用事件里的倉庫信息和分支信息去調(diào)用平臺 API拉取最新的變更數(shù)據(jù)。這里的差異提取很關(guān)鍵。如果事件觸發(fā)的是一個支持多提交的 PRopen-code-review 不是簡單對比 PR 兩端 commit 的差異而是會按 commit 分別提取同時計算這個 PR 從頭到尾累計的變更全貌。原因是按 commit 查看可以發(fā)現(xiàn)中間步驟是不是引入了問題按全貌查看可以判斷最終合入后的整體狀態(tài)是否干凈。兩個視角缺一不可。我在部署的時候吃過一個虧默認配置只拉取了平臺返回的前 30 個文件遇到一個改動了大幾十個文件的 PR后面的文件全部沒有被審查到。后來在配置里調(diào)整了max_diff_files參數(shù)并且確保有分頁拉取邏輯才解決了這個問題。如果你接的是一個大型單體倉庫建議干脆把上限放開否則審查結(jié)果會少了一大塊。數(shù)據(jù)提取完成后open-code-review 會生成一份結(jié)構(gòu)化的變更對象包含文件路徑、改動行號、原始內(nèi)容、新內(nèi)容、是否新增文件、是否刪除文件等字段。后續(xù)的規(guī)則引擎和人工審查摘要全部圍繞這份結(jié)構(gòu)化數(shù)據(jù)展開而不是面向純文本的 diff這是它和git diff | grep類腳本的本質(zhì)區(qū)別。2.2 自動檢查引擎規(guī)則、過濾器、動作自動檢查引擎是 open-code-review 的中樞神經(jīng)。它由三部分組成規(guī)則Rule、過濾器Filter和動作Action。規(guī)則描述的是我們要檢查什么。比如一個規(guī)則可以定義在.go文件中如果新增行匹配到TODO就產(chǎn)生一個warning級別的評論。規(guī)則可以針對文件后綴、目錄前綴、提交信息等不同維度生效。規(guī)則之間是獨立的方便團隊按模塊拆分維護。過濾器解決的是這條規(guī)則到底是否需要執(zhí)行。最典型的場景是某些歷史遺留目錄已經(jīng)存在大量問題時如果新規(guī)則一上來就全量掃描會產(chǎn)生幾百條噪音團隊一下子就被淹沒了。open-code-review 支持按路徑、按分支、按提交作者、按文件變更量做過濾。比如只有src/目錄下的改動才需要執(zhí)行某條安全掃描規(guī)則或者只有 master 分支才啟用嚴(yán)格的checkstyle規(guī)則集。這個能力非常重要它決定了審查工具會不會被團隊嫌棄。動作則對應(yīng)發(fā)現(xiàn)問題后做什么。我用的版本支持發(fā)送普通評論、生成 inline review comment、把文件標(biāo)記為 required changes以及通過 webhook 向 IM 工具推送概要。還可以根據(jù)規(guī)則嚴(yán)重級別做分流error級別的直接阻塞合并warning級別的只提示不阻塞info級別的干脆只在周報里體現(xiàn)。這里要強調(diào)一個原則自動檢查引擎的定位是提升信息密度而不是決定能否合并。真正決定代碼能不能合并的仍然應(yīng)該是人自動檢查只是把已知的、機械的、可枚舉的問題提前擋在門外。2.3 人工審查與機器人評論的協(xié)作節(jié)奏有了自動檢查引擎人工審查是不是就輕松了對但不代表可以完全不動腦。我實際的體會是open-code-review 把審查過程分成了兩個階段。第一階段是代碼尚未合入時的機器人初篩。開發(fā)者提交代碼后幾分鐘內(nèi)就會收到機器人的評論包括哪些地方風(fēng)險較高、哪些規(guī)范沒有遵守。開發(fā)者可以先自己修掉一批再喊人來審。這樣審查者拿到的代碼已經(jīng)是被機器人過濾過的干凈版本節(jié)省了大量時間。第二階段是人在機器人評論基礎(chǔ)上的復(fù)核。open-code-review 會把規(guī)則命中的位置直接標(biāo)在 diff 行上審查者點進去就能看到具體的代碼行和規(guī)則說明。這比看一條籠統(tǒng)的檢查一下這個文件要有效得多。審查者關(guān)注的不再是代碼里有什么可疑點而是機器人覺得可疑的地方是不是真的存在更深的問題。我經(jīng)常跟團隊說一句話機器人負責(zé)檢查和掃雷人負責(zé)決策和判斷。比如一條規(guī)則檢測到某個新引入的依賴沒有 license 聲明機器人能做的只是標(biāo)記出來并給出許可證文件的鏈接至于這個 license 是否適合當(dāng)前項目法務(wù)要求最后還是要人來拍板。這種協(xié)作節(jié)奏一旦形成代碼審查的效率能翻倍而且大家不會那么反感又要去看 PR這件事。3. 從零搭建open-code-review的完整實操記錄3.1 服務(wù)端部署Docker Compose 文件與實踐參數(shù)open-code-review 的服務(wù)端設(shè)計得很輕官方推薦用 Docker 部署。我在一臺 2C4G 的輕量云主機上跑得很穩(wěn)內(nèi)存占用大概在 300MB 左右對于中小團隊完全夠用。部署前需要準(zhǔn)備一個 HTTPS 域名或者能用反向代理轉(zhuǎn)發(fā)到服務(wù)的入口因為代碼托管平臺的 webhook 回調(diào)一般要求可達地址。下面是我實際使用的 docker-compose.yml 的簡化版本version: 3.8 services: ocr-server: image: open-code-review/ocr-server:latest container_name: ocr-server restart: always ports: - 8080:8080 environment: - OCR_DB_TYPEsqlite - OCR_DB_PATH/data/ocr.db - OCR_API_TOKENyour-generated-token - OCR_HTTP_PORT8080 volumes: - ./data:/data - ./rules:/etc/ocr/rules - ./config:/etc/ocr/config command: [serve]有幾個參數(shù)值得說明。OCR_DB_TYPEsqlite適合幾十人的小團隊不需要額外維護數(shù)據(jù)庫如果團隊規(guī)模上百人建議換 PostgreSQL并發(fā)性能會好很多。rules目錄用來放自定義規(guī)則文件每次修改后服務(wù)端會自動熱加載不需要重啟容器。config目錄里放的是平臺接入配置和通知渠道配置。啟動命令用docker compose up -d就夠。啟動后訪問/healthz路徑能返回ok就說明服務(wù)起來了。我習(xí)慣在反向代理層加一個 Basic Auth防止公網(wǎng)環(huán)境里 management API 裸奔。3.2 接入代碼托管平臺GitHub App 和 Webhook 配置服務(wù)端起來了接下來要接入代碼托管平臺。這里以 GitHub 為例其他平臺思路類似。我推薦注冊一個 GitHub App 而不是傳統(tǒng) Webhook因為 GitHub App 的權(quán)限粒度更細而且不會因為某個 token 泄露導(dǎo)致整個組織的信息被別人看到。注冊 GitHub App 時有幾個點要注意Permissions 里必須勾選Pull requests: Read write、Commit statuses: Read write、Contents: Read。Webhook URL 填https://your-domain/event/github。Secret 填一串隨機字符串這段字符串會用來簽名校驗服務(wù)端也必須配置相同值。安裝到對應(yīng)的倉庫或組織然后拿到 App ID 和私鑰。私鑰的管理要小心。我見過有人把私鑰直接塞進 docker-compose 的環(huán)境變量里其實有泄露風(fēng)險。更穩(wěn)的做法是掛載成文件然后配置中填寫路徑讓 open-code-review 自己讀文件。整個過程對應(yīng)到配置文件 config.yml大致長這樣platform: github: app_id: 12345 private_key_file: /etc/ocr/config/private-key.pem webhook_secret: your-webhook-secret installation_id: 67890配置好之后隨便改一個測試分支、提交一個 PR觀察服務(wù)端日志。如果日志中出現(xiàn)event received說明 webhook 鏈路通了。如果看不到先去檢查反向代理有沒有把X-Hub-Signature-256這個 header 透傳過去這是最常見的配置遺漏點。3.3 配置文件的字段解析與熱加載open-code-review 的全局配置文件集中管理平臺接入、審查偏好和數(shù)據(jù)上報策略。配置文件是 YAML 格式初次上手時最容易困惑的是各個字段的作用范圍和優(yōu)先級。一份最小可用配置可以長這樣server: port: 8080 platform: github: app_id: 12345 private_key_file: /etc/ocr/config/private-key.pem webhook_secret: your-webhook-secret rules: default_severity: warning include_paths: - src/** exclude_paths: - vendor/** - dist/** notifications: webhook: enabled: true url: https://hook.example.com/robot重點說一下rules.default_severity。當(dāng)你沒有給規(guī)則單獨指定嚴(yán)重級別時所有命中都會按這個默認值處理。我把默認值設(shè)為warning這樣即使有人手滑寫了一個大范圍規(guī)則也不會直接阻塞整個合并最多是評論提醒。真的要讓某條規(guī)則強制阻塞合并可以單獨指定severity: error。這種灰度設(shè)置思路適合剛引入自動審查的團隊能顯著降低工具上線初期的對抗情緒。服務(wù)端會監(jiān)聽 rules 目錄下的.yml文件變化通常在 10 秒內(nèi)完成熱加載。我驗證過這個機制修改規(guī)則后不需要重啟容器下一次審查事件進來時就會使用新規(guī)則。但要注意如果使用容器 Volume 掛載宿主機目錄文件權(quán)限和路徑格式可能會影響監(jiān)聽效果遇到不生效時先看日志再驗證掛載路徑是否被識別。4. 審查規(guī)則設(shè)計把團隊規(guī)范變成可執(zhí)行代碼4.1 規(guī)則文件語法與三類常用規(guī)則規(guī)則文件是 open-code-review 的靈魂。我習(xí)慣給每類規(guī)范建一個獨立文件比如style.yml、security.yml、process.yml這樣職責(zé)清晰也方便在團隊群里討論。規(guī)則的基礎(chǔ)結(jié)構(gòu)是這樣的rules: - id: NO_TODO_IN_MASTER name: 禁止在主分支提交中保留 TODO 注釋 severity: warning filter: events: [pull_request] branches: [master, main] check: type: regex path: .\\.(py|java|go|js|ts)$ pattern: \\bTODO\\b scope: added_lines action: type: comment message: 檢測到新增代碼中包含 TODO請登記用例編號后處理或改為關(guān)聯(lián) issue。 advisory: user: tech-lead規(guī)則文件的語法看起來多核心就三個字段filter控制規(guī)則在什么事件和路徑下生效check描述用什么方式檢查action定義命中后如何處理。常用的規(guī)則大體分三類。一類是regex正則規(guī)則適合檢查敏感信息、危險函數(shù)、調(diào)試打印比如把password ...這種硬編碼配置找出來。缺點是正則容易誤報需要花精力調(diào)優(yōu)。另一類是path路徑規(guī)則用來做目錄結(jié)構(gòu)的約束。例如規(guī)定 API 層不允許直接寫 SQL、新代碼不允許出現(xiàn)在legacy/目錄、特定目錄的文件不允許超過 500 行。這類規(guī)則往往比正則更直接有效因為它約束的是設(shè)計邊界。第三類是size數(shù)值規(guī)則用來限制單次變更規(guī)模。規(guī)則里可以定義max_added_lines: 400、max_files: 20、max_commits: 10。超過閾值之后機器人會建議拆分 PR。這類規(guī)則在團隊跨模塊協(xié)作時特別有用因為大 PR 的審查質(zhì)量幾乎一定下降。4.2 分層設(shè)計審查規(guī)則硬性門檻、軟性建議、人工確認項把團隊所有想檢查的都塞進規(guī)則系統(tǒng)不是一個好主意。我見過兩個比較極端的團隊一個是規(guī)則太少形同虛設(shè)另一個是規(guī)則太多每個 PR 都被機器人打十幾條評論開發(fā)者的反應(yīng)直接變成已讀不回。規(guī)則系統(tǒng)要分層設(shè)計讓每一類規(guī)則對應(yīng)不同的處理方式。我自己的分層方法很簡單硬性門檻severity: error這些規(guī)則一旦命中機器人在 PR 上標(biāo)記為請求變更并給 CI 查詢狀態(tài)設(shè)置失敗標(biāo)記。適合放密鑰泄露、危險函數(shù)、編譯錯誤、明顯的數(shù)據(jù)安全問題。軟性建議severity: warning不合規(guī)但可以討論比如代碼風(fēng)格、命名、配置硬編碼等。機器人只評論不阻塞。人工確認項severity: info機器人把比較主觀的問題點出來并 對應(yīng)模塊的負責(zé)人讓負責(zé)人來確認是否需要處理。比如這個函數(shù)的復(fù)雜度從 12 漲到了 18雖然當(dāng)前通過測試但請確認后續(xù)是否規(guī)劃重構(gòu)。分層之后團隊的反饋會舒服很多。硬性門檻攔截的是絕對不能出的問題軟性建議給了討論空間人工確認項實際上是把跨模塊的判斷權(quán)交給了對應(yīng) owner。這是其他純自動化方法論里經(jīng)常被忽略的點。4.3 處理誤報的閉環(huán)流程規(guī)則系統(tǒng)上線一個月后一定會遇到誤報問題。比如正則把測試代碼里的示例字符串當(dāng)成了真密碼路徑規(guī)則把配置目錄下的合法文件擋住了。如果誤報率太高開發(fā)者會開始忽略機器人評論甚至要求關(guān)掉某條規(guī)則。所以一定要建立誤報處理閉環(huán)而不是簡單把規(guī)則刪掉。我在團隊里的標(biāo)準(zhǔn)流程是收到任何一條疑似誤報的評論開發(fā)者不需要現(xiàn)場爭論只做兩個動作——在評論下回復(fù)#ignore加一句原因同時把這條問題加入周會上的規(guī)則巡檢清單。每周固定時間值班的同學(xué)會做一次規(guī)則召回分析統(tǒng)計哪些規(guī)則命中率低、被置為 ignore 的次數(shù)多然后去調(diào)整正則表達式或收窄過濾范圍。open-code-review 支持從評論中解析#ignore標(biāo)記命中后自動把這條規(guī)則從后續(xù)事件中排除。這樣既保留了規(guī)則的歷史記錄又避免了同一問題反復(fù)打擾。我調(diào)整完規(guī)則后記得在描述里寫 changelog這樣團隊能看到規(guī)則是在更新的而不是永遠一成不變。規(guī)則文件本身也應(yīng)該走代碼審查流程——這聽起來有點像套娃但對保證規(guī)則質(zhì)量真的有效。5. 接入CI流水線后的真實收益與潛在坑5.1 阻塞式還是非阻塞式一個需要明確的決策把 open-code-review 接入 CI 流水線時第一個要決策的問題就是機器人審查失敗時CI 到底要不要掛。這個決策做錯了后續(xù)非常被動。有些團隊一上來就搞阻塞式只要 open-code-review 返回failure整個 PR 就不能合并。這樣做看似嚴(yán)格但規(guī)則成熟度不夠時每天會產(chǎn)生大量卡住的 PR開發(fā)體驗極其糟糕。更現(xiàn)實的做法是規(guī)則系統(tǒng)上線第一階段設(shè)置成非阻塞式讓機器人評論和 CI status 只是記錄不真正阻止合并。跑上一到兩周觀察規(guī)則的誤報率和團隊反饋再逐步把error級別的規(guī)則調(diào)整為阻塞式。我的經(jīng)驗是阻塞式只適合兩類內(nèi)容一類是安全底線密鑰、憑據(jù)、危險函數(shù)另一類是流程硬約束缺少測試、缺少變更描述、目標(biāo)分支不對。至于代碼風(fēng)格和可維護性的規(guī)則先做提示等人接受之后再慢慢收緊。這個漸進思路能讓引入工具的過程更平滑。在 CI 配置中可以用類似這樣的命令直接讓腳本返回狀態(tài)open-code-review check --event pull_request --source refs/heads/feature/xxx --target refs/heads/main --exit-code加不加--exit-code就決定了是否阻塞。我在團隊里用的是先輸出報告文件再決定是否指定 exit-code的做法讓 CI 日志里能看到完整分析結(jié)果而不是只看到一個紅色叉。5.2 與現(xiàn)有CI/CD工具鏈整合的兩種方式open-code-review 與 CI/CD 工具的整合方式我在實踐中驗證過兩種比較順手。第一種是webhook 事件驅(qū)動方式。open-code-review 自己監(jiān)聽代碼托管平臺事件跑完檢查之后通過狀態(tài) API 把結(jié)果寫回 PR。這種方式的好處是無需改動現(xiàn)有 CI 流水線只要你原來有 webhook 轉(zhuǎn)發(fā)能力就行。CI 本身不感知 open-code-review 的存在兩者是平行關(guān)系互相之間只通過代碼托管平臺的狀態(tài)字段交流。第二種是流水線步驟調(diào)用方式。在現(xiàn)有的 CI 流水線腳本里增加一步比如在 Jenkins 或 GitHub Actions 中調(diào)用 open-code-review 的check命令然后把報告上傳到構(gòu)建產(chǎn)物里。這種方式適合已經(jīng)用了大量自定義流水線、并且希望審查結(jié)果和構(gòu)建記錄放在一起的團隊。兩張方式可以同時用但要約定清楚避免重復(fù)報告。如果 webhook 已經(jīng)自動評論了流水線里就不要再加同樣內(nèi)容的評論否則開發(fā)者會看到兩條重復(fù)信息。我的做法是webhook 負責(zé)在 PR 里打 inline 評論流水線步驟負責(zé)做構(gòu)建層面退出碼判定互不干擾。5.3 實際運行中遇到的三個典型問題接入 CI 之后我踩過一些坑這里挑三個典型的說。第一個是時區(qū)問題導(dǎo)致的分支狀態(tài)判斷錯誤。open-code-review 在比較分支更新時間時如果服務(wù)端和代碼托管平臺所在的時區(qū)不一致會把新提交誤判成已經(jīng)被檢查過導(dǎo)致機器人不更新評論。解決辦法是在服務(wù)端環(huán)境變量里顯式指定TZUTC并在日志里確認時間和平臺一致。這個問題特別隱蔽我當(dāng)時排查了一晚上最后才發(fā)現(xiàn)是時區(qū)偏移了 8 小時。第二個是大倉庫的 diff 拉取超時。接入大型倉庫后PR 的 diff 可能非常龐大。默認的 HTTP 客戶端超時時間是 30 秒在拉取超過幾百 MB 的差異數(shù)據(jù)時會超時失敗。解決方式是把服務(wù)端配置中的api_timeout調(diào)高并且開啟use_pagination分批拉取文件列表。同時建議在過濾器里跳過vendor/、node_modules/這類依賴目錄它們完全不需要做規(guī)則檢查。第三個是機器人評論在 PR 重構(gòu)后殘留在舊代碼行上。當(dāng)開發(fā)者因為機器人評論修改了代碼原評論的位置可能已經(jīng)不在最新 diff 里但評論本身不會自動撤回。這會導(dǎo)致 PR 上掛著過期的評論給人問題還沒有解決的錯覺。解決辦法是給規(guī)則配置resolve_on_update: true一旦檢測到對應(yīng)行內(nèi)容已經(jīng)變化open-code-review 會自動把該評論標(biāo)記為過期并在新的位置重新評估。上線這個配置后團隊反饋干凈了很多。6. 團隊落地過程中的行為推動與數(shù)據(jù)度量6.1 從工具到制度審查文化的建立工具解決了能不能審的問題但真正決定團隊能不能把這套東西用起來的是愿不愿意審。這個和文化相關(guān)單靠工具做不到。我在團隊里推動 open-code-review 時做了三件具體的事。第一件是讓規(guī)則文件成為公開文檔。規(guī)則文件放在倉庫里任何人可以看到每一條規(guī)則存在的理由和背后的討論記錄。這樣團隊不會覺得是某個人在拍腦袋立規(guī)矩而是一起沉淀出來的共識。第二件是把代碼審查納入開發(fā)任務(wù)的驗收標(biāo)準(zhǔn)。一個任務(wù)的定義完成不只是代碼合入還包括收到 open-code-review 的檢查報告后所有error級別問題都已處理或有人工確認記錄。這個口徑寫進團隊 wiki 后大家的行動就統(tǒng)一了。第三件是定期做審查意見復(fù)盤。每個月挑一個小時的會議把機器人打出來的典型問題和人工審查中有價值的評論拿出來一起過一遍。不是為了批評誰而是讓團隊看到機器人和人的配合產(chǎn)生了什么效果同時收集規(guī)則的改進建議。慢慢地大家會覺得 open-code-review 不是用來找茬的而是用來降低犯錯的。6.2 度量指標(biāo)設(shè)計與統(tǒng)計口徑度量是一個容易做形式主義的環(huán)節(jié)。我的建議是不要一開始就設(shè)計十幾個指標(biāo)那純粹是給自己找負擔(dān)。以我實際使用的經(jīng)驗真正值得定期看的指標(biāo)只有三個。第一個是審查覆蓋率合入的 PR 中有多少比例經(jīng)過了至少一次人工 review 和機器人 review。第二個是平均首次響應(yīng)時間從 PR 創(chuàng)建到收到第一條有效審查意見的耗時。這個指標(biāo)直接反映了團隊審查的響應(yīng)效率。第三個是規(guī)則命中分布每個規(guī)則在一個周期內(nèi)命中多少次、被忽略多少次、真正推動代碼修改的次數(shù)是多少。通過這個分布你能夠一眼看出哪些規(guī)則是高效有用的哪些規(guī)則只是擺設(shè)。統(tǒng)計口徑也要提前約定。比如只看合入主干的 PR不含依賴機器人產(chǎn)生的自動合并如果是包含多個 commit 的 PR響應(yīng)時間以 PR 創(chuàng)建時間為準(zhǔn)。open-code-review 的報表功能會把這些指標(biāo)按周聚合輸出方便做趨勢對比。我強烈建議所有指標(biāo)掛在同一個看板上不要既有的看板又說一套數(shù)據(jù)口徑不一致會讓人徹底喪失信任。6.3 應(yīng)對開發(fā)者的抵觸情緒無論工具設(shè)計得多妙總會有開發(fā)者覺得又多了一個來管我的東西。常見的說法是這個規(guī)則太苛刻了又要在 PR 里等機器人了自動化審查根本沒有理解我的業(yè)務(wù)場景。這些反饋有一定合理性但不能因此放棄自動審查。我的應(yīng)對方式很簡單讓開發(fā)者參與規(guī)則制定。如果機器人評論里出現(xiàn)了一條你認為不合理的規(guī)則你可以直接提一個規(guī)則修改的 PR把理由寫在描述里。一旦通過合并后規(guī)則就變了。這句話聽起來很常規(guī)但真正做到之后團隊中的抵觸情緒會大幅下降。因為大家發(fā)現(xiàn)自己不是在被動接受機器人規(guī)則而是在一起維護一套團隊質(zhì)量標(biāo)準(zhǔn)。同時我也刻意把機器人評論的話術(shù)調(diào)整得中性一些不出現(xiàn)你違反了規(guī)則這種指責(zé)性詞匯而是當(dāng)前變更中檢測到以下風(fēng)險點請確認是否需要處理。人去看待機器人和人審視自己的感受差異是很大的中立的話術(shù)能減少情緒對抗。堅持跑上一兩個月團隊成員會慢慢把 open-code-review 的評論當(dāng)作一個提前自查的信號用力。我在實際使用中最深的體會是開放代碼審查工具的價值不在一鍵解決所有問題而在它能把審查變成一件可以持續(xù)改進、可以數(shù)據(jù)驗證、可以全員共建的事。規(guī)則寫了可以調(diào)效果差了可以看數(shù)據(jù)異議多了可以提交修改。這種持續(xù)演進的循環(huán)才是讓代碼審查真正從形同虛設(shè)走向扎實落地的關(guān)鍵。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
蜜乳AV网址| 操人妻逼91| 看大黄色大片原件| 中文字幕AV片| 91九九九小逼| 影音先锋中文字幕日本好一区二区| 在线综合 亚洲 欧美中文字幕| 亚洲熟妇无码一区二区三区| 久久香蕉综合一本到3atv| 亚州欧美色图| 亚洲图片欧美制度| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 91一区二区| 精品欧美老熟女一二区| 久草电影网| 亚州高清色综合| 91婷婷伊人狠人| 99精品成人免费看| av资源在线播放天堂| 人妻干天天| 国产精品久久久久9999小说| 亚洲 欧美 第一页| 亚洲激情欧美色图| 久九九九| 男人的天堂久久久| 日韩精品人妻| 中国操逼无码| 日韩操逼性鲍| 成人七区| 久久草在线综合视频| 午夜久久无码1000合集| 天天日天天干天天整| 新久久AV| 欧美国产伊人久久久久| 久久性视频| 亚洲性爱无码乱伦av| 中文字幕人成乱码熟女香港| 亚洲最新a在线观看| 国产精品人妻熟女aⅴ| 国内偷拍精品一区二区| 精品久久久久久中文字幕视频免费| 丝袜天堂| 色香91| 中文久久96| 蜜桃久久久久久久久久久久| 亚洲精品久久一区二区三区蜜桃臀| 欧洲小说色图视频另类| 日韩欧美麻豆| 又大又大又大又粗爽高潮观看 | 思思热国产高清| 青青草中文字幕| 欧洲精品一级二级精品综合视频综合| 日本人妻伦在线中文字幕| 国产丝袜美女在线一区| 成人国产精品三级A片| www.狠狠操| 乱精品一区字幕二区| 中文字幕91综合| 97 超碰 人人做 人人爱| 97 九色| 免费97视频| 秋霞福利网| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照| 亚洲交性| 妇女性内射冈站HDWWWCOM| 97在线观看播放视频| 韩国三级理论在线| 久久精品一区二区三区不卡| 亚洲情色一区三区| 亚洲 欧美 日韩另类 麻豆| 日本三级精品| 视频国产精品未满十八禁止在线观看| 色色婷| 欧美制服另类丝袜| 97综合久第一页| 欧美色另类| 欧美色综合影院| 色色色999| 亚洲天堂区| 亚洲 欧美 另类 日韩 人妻一区| 92大香蕉| 91精品久久久| 看日韩美女二区三区免费操逼视频 | 岛国成人av在线播放网址| 精品一区二区三区最新| 东京太热男人的天堂久久久| 人人摸人人添人人操| 丁香九月激情| 蜜桃狠狠色伊人亚洲综合 | 日韩免费性爱视频在线观看| 蜜臀AV成人精品蜜臀AV久久| 国产精品久久久亚洲第一牛牛_在线观看 | 破苞ⅩXXX性无码动漫无码| 91色五月俺来也| 91熟女丨老女人| 久久精品国产亚洲妲己影视| 九月色婷婷| 97久久久精品| 欧美性爱精品七区| 欧美日韩情色一区二区| www.色吧5.com| 久久天天摸| 亚洲色图片区| www.色操逼| 亚av顶级裸体一区二区三区四区五区 | 国产精品久久久久久高清无码免费看 | 性色一线| 国产精品福利视频| 蜜桃臀av在线观看| 国内毛片四区| 六月婷婷五月丁香| 一本色道久久综合精品婷婷| 深爱五月天| 欧美线天码中字| 18禁网站在线播放| 91青青在线视频| 91社操逼| 国内精品久9| 青青草天天亲夜夜操网| 婷婷五月天色网| 91小视频| 欲综合网| 亚洲欧美精品一区天堂久久 | 亚洲欧美日韩夜夜| 国产丁香精品露脸视频| 超碰人人超在线观看| 国产第二页| 亚洲一曲日韩精品| 九草在线大香蕉| 18禁精品网站在线看| 韩国三级三级BD在线| 另类亚洲一区二区三区| 999 久久久| 国产一级操B视频| 97在线资源| 国产一区二区三区影片| 老熟女乱伦片| 久久久青青草| 一区二区精品更新提醒| 高跟丝袜AV专区国产| 搡老女人老91妇女熟女| 99久久婷婷| 高清孕妇孕交 交| 丝袜美腿欧美| 99re国产精品视频| 亚洲天堂一区二区| av婷婷色网| av在线播放国产一区| 啊嗯嗯啊好大好爽| 久久久无码国精品无码三区三区| 亚洲加勒比久久日本道| 一级性爱视频免费观看 | 麻豆精品.欧美精品.日韩精品.| 日本天天色| 亚洲天堂欧美| 少妇精品久久久八区九区| 色人久久| 国产精品久久久久久照片| 热热色国产一二区AV| 大胆91| 家庭乱伦国产精品| 日本天天干天天操一区| 伊人伊人LD| 色五月综合| 吖在线不卡一区二区国产剧情| 丰满人妻一区| 中文一区在线日| 色色色五月婷婷| 免费家庭乱伦视频| 777超碰| 久啪| 人妻黑丝袜电影| 国产av尤物| 四虎国产精品永久地址入口| 亚洲高清自拍| 日本不卡一二区| 大香蕉在线视频重口味毛片在线| 婷婷综合网站| 91丨熟女丨丰满熟女| w w w.久久精品| 极品一区二区三区免费| 麻豆 亚洲 97| 五月天伊人| 美女诱惑爱爱| 你操综合| 97天天爽| 禁片 高清 在线观看视频网站| 青椒国产97在线熟女| 国产成人亚洲精品无| 亚洲图片欧美另类综合免费视频大大香| 在线观看一卡二卡| 天天综合~91入口| 妺妺跟我一起洗澡没忍住| 日韩人妻制服丝袜av| 色综合av综合久久| 囯戸精品高潮呻吟旡码| 中文字幕在线观看永久| 国产无马在线| 9国产超碰| 超碰97护士| 99热在线只有精品| 黄站在线免费观看| 精品9999| 欧美情色亚洲| 日本一区二区亚洲综合| 亚洲最新Av| 韩国一级做A片免费的| 国产精品久久久久久高清无码免费看| 99无码狠狠久久| 亚洲天天操| 97视频播放| 婷婷激情丁香| 免费试看60秒| 韩国三级一线观看久| 午夜性生活av免费在线看| 91综合中文字幕| 久久久精精精| 秋霞Av理论一级在线| 精品国产乱码久久| 日本潮催一卡操| 亚洲无码视频免费在线观看网址!| 91精品人| 久久av一级av少妇av高潮| 操逼啊啊啊91| 67194国产| 色哟哟国产精品免费网址| 日韩av熟女一区二区三区成人| 中文字幕 一区二区 亚洲无码| 国产精品国产自产拍高清AV| 激情欧美日韩女同久久| 9.1小视频| 97资源站国产精品| 成人午夜高潮av猛片| 操操逼视频| 免费A V在线播放| 99热网站| B049AV在线播放| 亚洲,欧美,综合网| 人妻夜夜爽天天爽三区麻豆AV网站| 亚洲精品久久久久毛片A片拉屎 | 涩涩五月天| 色九月综合| 日本黄色XXX| av天堂电影网| 天天视频综合在线观看视频| 96精品在线| 97精品第3页| 老鸭窝在线视频播放| www.91视频网| 国产精品人妻熟女aⅴ| 激情综合婷婷| 青青伊人加勒比海| 69视频入口| 一级A片女人高潮叫床| 亚洲成人碰碰| 福利五区| 超碰人妻天天干| 国产精品老熟女一区二区| 精品久久九| 欧美碰碰综合色| 欧美偷拍区| 99re在线视频国产| 日韩日本欧美在线观看| 二色av| 91色综合色| 午夜国产成人精品视频| 97av在线视频| 国产尤物在线三区| 操逼操网| 国产熟女二区| 亚洲精品一区二区精品| 情色日播放AV| 国产精品视频在线观看| 99热99色| 色97干| 人、人、摸,人、人、草| 色女99一级片在线观看| 97精品视频| www久久久| 超碰 国产熟女精品一区| 啪啪视频亚洲第一| 综合久久99亚洲人妻中文在线| 91色色网站| 天堂蜜桃无码视频一区二区| 婷婷超| 玖玖人人爱| 熟女91网站| 色五月综合网| juliaann丝袜| 91色碰| 狠狠干91| 啊啊啊啊啊在线观看网址 | 黄色性爱网网| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 78久久| 97操碰| 91欧美色| 午夜久久一区二区无码中出| 激情小说亚洲| 九九热五区| 牛牛操视频逼| 精品无码一区二区人妻久久蜜桃| 搡老女人老妇女AAA一VU麻豆 | 91在线精品一区二区三区| 116美女午夜| 色哟哟AⅤ| 黑丝日韩av丝袜av| 97人人干人人操| 老熟女阿 国产91| 久9热| 久久久人妻| 美日韩一卡二卡三卡免费人妻精品| 国产传媒日韩欧美| 日韩特一级久久| 色狠狠色| 无码人妻精品一区二区三区99不卡| 中文字幕 一区二区 亚洲无码| 国产亚洲一黄| 亚洲开心网| 一区二区三区四区五区高清无码永久视频 | 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 久/久精品99看9| 久久久九九九| 色阁阁AV综合网| 丁香六月综合激情| 韩日色费| 日韩综合97p| 素人美腿视频网站| 另类一区| 国产精品日本无码A片| 天天射夜夜| 成人欧美一区二区三区黑人一| 搡老熟女免费视频| 欧美后入式| 91丝袜美女| 国产一区二区欧美日本| 日韩精品碰碰| 国产综合色精品在线观看| 日韩少妇在线视频| 五月天黄色av| 日韩性爱高清免费视频| 岛国激情视频在线观看| 东京热毛片177b2viP| 怡红院成人av| 精品免费1| 欧亚性爱视频免费看| 亚洲欧美情色| 久九九九九九九九热| 91欧美偷拍| 婷婷激情综合网| 福利社区午夜一区二区| 91搞逼视频| 偷拍盗拍亚洲色图图片 | 国产精品成人蜜臀AV在线| 成人精品无码| 欧美人妻少妇| 日本二三四区| 亚洲精品一区二区精品| 中文字幕神马久久| 97 国产一区| 欧美成年人性爱视频免费观看| 婷婷九月丁香| 中国一区二区亚洲人妻| 另类天堂| 免费视频97| 久久风骚城市| 亚洲第一色页夜| 丝袜高跟澳门91视频| 老熟女乱子伦中文字幕一区二区| 亚洲欧美综合| 久九色| 蜜臀99久久精品| 久久婷婷欧美| 欧美日韩中国x| 天堂在线一区二区| 97超碰亚洲| 欧美美女在线高潮999| 男人的天堂网免费| 91 刺激在线| 在线黄页看毛片| 日本三级中国三级99人妇网站| 黄aaaaaaaaaaaaaaaaaa色网站| 国产高清在线观看欧美| 欧美强奸乱能| 婷婷丁香成人| 久久精品小视频| 色综合五月天| 天天看综合网| 美女大乳久久久久久久女人18| 免费的av网| 五月天色图| 神马午夜久久久| 久久国99999| 亚拍在线| 精品二区久久| 久久免费少妇| 久久久亚洲Av| 免费啪啪啪网站18岁| 99久在线精品99re8热| 色播五月丁香| 久久久av爱| 狠狠2050在线观看| 欧洲色综合| 日本综合色图| 欧美一区二区三区入口| 日韩AV熟女乱伦| 色婷婷五月天| 日韩精品操少妇| 91色伦| 久一区久久蜜桃| 免费观看网黄| 久久综合婷婷| 91高跟美女在线播放| 人人爽夜夜玩视频| 日日夜夜精品视频| 日韩性爱毛片操骚逼| 26uuu国产免费观看| 99在线精品视频| 中文字幕天天天天天| 98超碰日本| 综合色好色| 黑人狂躁日本妞一区二区三区| 丁香九月激情啪| 高清不卡视频| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 日本欧美一区二区三区视频麻豆| 日欧操屄视频| 夜夜综合| 精品视频一区二区| 久久欧美性爱视频| 人妻无码后入| av在线免费一区二区| 香蕉久久国产AV一区二区| 800zy一区二区| 精品制服美女中文一区二区三区| 日韩成人性日韩成人性爱视频在线免费观看| 老熟女乱子伦中文字幕一区二区| 无码99| 欧美性第1页| 人人看人人插| 欧美制服另类丝袜| 96麻豆精品一区二区三区| 蜜乳AV一区| 成人影 天天操 亚洲| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 日韩一级性爱无码| 国产av尤物| 九色 蝌蚪 熟女自| 九九探花视频在线观看| 白丝少妇一区二区| 最新无码国产| 久久熟女人| 久久东京热成人| 强奸乱伦av电影| 日韩人妻精品中文字幕| 国产亚洲色停停久久99精品91| 国产超碰在线| 男人天堂新在线| 秋霞一级视频在线观看免费| 91激情综合| 97精品熟女少妇一区| 夜夜久久| 亚州一区二区成人片免费| 大香蕉综合| TS人妖另类精品视频系列| 91国产精品在线看| 欧美色狠| 天天日日本| 亚洲精品成人动漫在线| 欧美变态激情网| xxxx网站亚洲精品| 日本熟妇色熟妇在线视频播放| 亚洲国产精品有声| 啊啊啊轻点在线观看| 国产97视频免费观看| 精人妻无码一区二区三区伊人直播| 美国人人操人人操| 99国内熟女露脸视频| 美女极品一区二区三区| 超碰精品人妻狠狠干| 全球成人中文在线| 人妻久久一区二区三区 | 久热热| 欧美综合站| 日韩三级伊人| 伊人玖玖网| 黑丝自慰喷水网站| 欧亚三区动漫| 日韩一999精品| 久久日韩精品一区二区| 日韩av情韩国爱禁区av一区二区| 久久香蕉国产线看观看猫咪av| com 首页 18岁 禁区 女优 免费 精选 同城 | 天美麻花大全视频| 性综合网| 蜜臀aV午夜一区二区三区| 国产超碰| 欧美成熟性爱精品| 天美传媒av一区二区| 99色色网| 国产精品免费1区2区视频| 亚洲 综合 第一页| 色性欧美| 色情乱伦AV| 60秒不遮不挡| 日本中文字幕熟妇| 91精品国产综合久久久蜜臀| 人妻一区视频| 精品人妻一区二区三区四区不卡在| 亚洲欧美九九九| 久久精品亚洲成a人天堂| 九热中文字幕| www.acm成人黄色毛片| 狠狠 91| 国语精品内射在线观看| av网站免费看| 亚欧操逼片在线观看 | 亚洲影院小综合| 97最新在线播放视频| 久久国产AⅤ| 亚洲狠狠入| 亚洲少妇在线影音| 91在线美女| 久久ww| 色婷婷激一区二区三区| 无码操逼视频一下| 中文字幕乱码在线观看| nuu12国产麻豆精品| 日韩97视频!在线| 操一区| 日韩欧美国产高清视频| 99老司机精品视频在线观看| 蜜臀久久99精品久久久久| 国内精品久9| 九一精品牛牛一区二区| 国产精品久久久久久夜夜夜| 啊啊啊啊嗯嗯嗯用力好爽 | 99热最新| 国产亚洲精品第一最新| 视频国产精品未满十八禁止在线观看| 操b在线观看| 亚州欧美色图| 国产三级片在线观看| 色婷婷A V一二三四区麻豆综合| 妇人噜噜| 99re69| 精品无人区麻豆乱码久久久| 久久熟女人| 97中文超碰| 操狠狠| 人人色97| 色一射色一射| 五月天伊人| 高树玛利亚无码流出| 91丝袜美腿网站| www鬼畜国产男人的天堂| 天天摸,夜夜摸| 国产精品交换一区二区| 五月婷婷激情| 在线啊啊啊啊| 亚州精品丝袜-不卡成人免费| 男女打扑克高清网站| 国产原创精品| 亚洲影院小综合| 欧美夜色| 91精品人妻五十路| 亚洲情色 自拍| 综合色欧美| 97精品久久| 五月丁香六月综合缴清无码 | 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 欧美日韩制服| 91综合网| 影音先锋视频在线| 大香蕉黄色一区| 欧美另类色图片| 色爱综合网欧美| 日韩精品三级片长长久久| 九九九九九九九九九九九蜜桃| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 熟女乱伦二区| 五月天黄色av| 日本孕妇孕交| 日夜伊人网| 熟妇xxxxx性春色| 中文自拍欧美影视| 极品丝袜无码| 囯产精品强| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 新版天堂中文资源8在线| 人妻久久久| 日韩情色AV| 99草精| 欧美色www亚洲国产阿娇要播| 一本久道在线综合视频| 九九色热| 我中文字幕6区| 91第一页| 日韩A优精品在线观看| 国产丝袜视频| 色偷偷超碰亚洲| 国产自制av蜜乳| 日韩精品在线观看网站| 久久亚州高清| 国产精品久久久久久久久久久久久久吹| 日韩成人性日韩成人性爱视频在线免费观看 | 97综合在线| 2019天天操天天爽天天拍| 4tube欧美女厕所| 日韩免费看在线黄色片| 久久超碰久| 毛片99-全集电影手机免费观看完整-B029AV | 狠狠久久手机视频精品| 99色综合| 国产丝袜一区二区三区| 黄色激情电影在线观看| 花野真衣| 国产精品乱码久久久| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 99热啪啪| 久久青娱乐| 操操操日本的逼| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 欧美女同在线| 精品亚洲国产成人精品| 欧美第38页| 亚洲另类春色| 人妻加勒比东京热| 91亚洲综合在线| 日韩午夜啪啪视频| 97视频在线免费| 333kkkk·亚洲com久久| 亚洲淫色网中文| 不卡中文字幕aⅴ在线| 日韩美脚一区二区网站| 97超碰香蕉| 水野优香在线观看| 久久久人妻| 国产免费一区二区三区最新不卡| 久久久亚洲精品中文字幕人妻| 囯产乱伦一区二区三女| 久久久草草精品| 亚洲强奸乱伦影视网| 玖玖爱伊人玖玖爱| 一区二区三区精品视频| www久久精品| 人人透人人操| 97亚洲中文| 台湾佬激情综合| 日韩亚洲欧美中文字幕| 东北黄色电影| 极品欧美一区二区三区| 久久精品国产99国产精品亚洲| 国产精品99精品视频网站| 色欲人妻一区二区在线| 亚洲va有码在线天堂| 久久久精品一区二区| a级理论午夜日本| 成人一二三区| 大香蕉在线视频15| A一区片| 天美传媒av在线| 国产又操| 中文字幕丰满子伦无码专区在线视频最新| 操九九九九九九| 国产又黄又粗的视频| 亚洲色图欧美色图制服诱惑| 国产成人久久久精品免费AV| 91五十路| 91色伦综合| 操婷婷逼| av三级电影在线播放| 四虎免费看黄| 五月丁香综合| 人人操人人干xxx| 97se综合| 黄页18禁| 亚洲国产一级精品毛一级精品看免费视频| 啊啊啊轻点在线观看| 国产不卡精品91| 国产熟女完整版中字 | Blackedraw视频一区二区| 天美麻豆一区二区三区| 国产农村妇女精品1区二区| 激情综合二| 天美传媒精品一区二区| 亚洲色图综合网| av中文字幕在线熟女| av天堂精品久久| 狠狠躁伊人中文字幕| 欧美色一二三| 中文字幕 人妻不满 在线视频| 亚欧毛片基地国产毛片基地| 久久久无码精品人妻二区| 超碰 另类 欧美| 91热爆在线| 在线观看高清AV| 凹凸精品熟女在线观看| 99re综合伊人| 中文字幕97色| 国产欧美美女免费观看视频| 日本性爱少妇| 日韩激情毛片一级久久久| 男女啊啊啊啊啊| 91少妇通奸网站| 少妇人妻精品| 久操视频免费在线观看| 色情综合| 无码 有码 国产18p| 成人自拍三级在线观看| 天天日夜干| 97在线视频观看免费| 怡春苑东京热| 欧美少妇一区二区三区| 精品 码产区一区二-1080P高清在线www-B029AV | 超碰人妻在线| 乱伦AVxx| 亚洲AV秘 精品久久老牛影视| 国产综合色精品在线观看| 亚洲天堂资源在线| 人妻激情视频| 超碰97.com| 黄色十八禁| 欧美亚洲国产日本在线,久久精品国产| 91天天日| 少妇无码太爽| 日韩99神马视频播放片在线播放| 五月天激情网图片| 开心五月婷婷激情| 在线99热| 狠狠干狠狠色| 91操碰| 激情五月丁香五月| 丁香九月激情| 色婷婷久久| 九九黄色网| 黑丝少妇| 精品熟女一区=区三区| 大香蕉伊利av| 国产精品久久9| 九九九久千久久激情蜜桃在线看 | 欧美激情1区| 在线欧美亚洲| 激情综合网亚洲| 性色AV蜜色av色欲av| www久久国产精品| 国产又猛又粗又爽又黄| 人人操肉肉| 亚洲精品一区二区三区在线播放 | 欧美丝袜美女电影一二三四区| 欧美性综合| av在线免费一区二区| 国产中文字幕在线点播| 国产女人和拘做爰视频| 久久三| 中日高清无码操逼视频| 91五月天| 91人妻视频在线| 1204金沙人妻懂旧版免费| 久久久男人的天堂| 国产伊人精品在线| 欧洲在线性爱视频| 神马久久久久久伦理片| 免费一级欧美片片线观看| 欧美成人精品A片免费一区99| 男人亚洲91首页在线| 亚洲精品欧美专业| 国产情色在线| 九九热三级片| 99这里只有精品国产| 秋霞影音一区二区三区| 欧美日韩成人在线| 久热精品色情| 自拍啪啪视频| 日韩免费一级性爱视频| 国产成人bd在线观看| 精品久久久久久亚洲| 躁躁日曰躁2020| KK色在线影院| 性久久久| 伊人五月天| 97久久久精品| 97av在线观看| 另类 日韩 熟女| 97久精品| 久久婷婷苹果| 国产黄色在线播放观看| 国产成人综合网| 超碰这里只有精品| 日韩欧美加勒比| 睡产熟女乱伦| 麻豆一区在线| 久久伊人最新网址视频| 92午夜免费福利视频| 校园春色欧美色图| 超碰色图| 殴美大黄片| 亚洲精品欧洲精品| 91亚洲人| 日本网色| 后入福利视频| 青草草免费网站av| 亚洲色堂免费视频| 操久久久久| 黄色视频特级毛片| 物尤视频一区二区| 亚洲天天综合| 操久久久久久| 97ai亚洲| 男人的天堂一区三区| 蜜臀久久在线视频| 欧差乱伦二三| 熟女丰满人妻一区| 一本色道熟妇| www.91色| 欧美 日韩第一性色| 日韩卡一卡二卡三在线| 久久久久久中文版| 无码人妻精品一区二区三区99不卡| 婷婷色综合| 九九九不卡| 亚洲四虎熟女精品| 大干人妻| 欧美精品999| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 欧美日韩操逼动图| 性爱AV天堂| A 在线网址| 日韩ab网| 中文字幕日韩人妻视频一区二区三区| 夜夜騷av、一區二區| 午夜男女爽爽大片免费观看| 男人下部插入女人下部| 国产强奸乱伦无码视频| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 亚洲91av| 色在线视频导航| 欧美日韩人人精品| 国产精品女aA片爽爽视频| 爱爱60秒免费视频| 永久免费观看的毛片的网站| 熟妇人妻一区二区三区| 国产精品高潮呻吟av久久4虎| 欧洲免费一区二| 亚洲欧美色图小说| 成人在线永久| 色乱二区| 亚洲资源吧| 久久精品人体| 亚洲天堂区| 亚州色综合| 精品v1区| 亚洲第一狼人丝袜美女另类| 亚洲怡春院| 好吊色在线观看| 97亚洲精品| 久久加勒比| 四月丁香婷婷| 国产日韩精品无码去免费专区国产| 91色爽欧美| 深夜国产一区二区三区在线看| 久久久久久九九九九九九| 国产热RE99久久6国产精品首| 欲香欲色综合天天伊人| 人妻精品综合中文字幕在线 | 素人伊尹大香蕉免费下载视频| 2018色综合天天操| 久操精品| 97精品97久久| 天天操天天插| 欧美偷拍区| 久久久极品| 久久亚洲不卡一区二区三区| 嫩草影院性色| 91超碰在线| 啊啊啊啊好大好硬啊啊啊啊啊| 五月色丁香| 亚洲一区二区三区不卡国产欧美| 久射吧| 97 超碰 人人做 人人爱| 久久久久九九九| 久久一区二区三区四区五区| 91爱做| 人妻加勒比东京热| 亚洲高清无码在线桃色| 神马久久久久| 天天干夜夜操一区二区| 高清不卡国产| 亚洲一区中文字幕一区| 午夜a成v人电影| yazhououmeizongya| 麻豆人妻少妇在线免费观看| 五月丁香啪啪网| 人人操人人摸人人看人人干| 亚洲中文字幕熟女少妇一区二区| 另类 综合 日韩 欧美 亚洲| 日韩精品 资源| 亚洲九月丁香| 国产真乱mangent| 日本精品一区二区不卡| 亚洲人久久久网| 欧美日韩理论一区| 蜜臀国产AV中文字幕| 91爆操视频| 精品丝袜无码一区二区三APP| 九九久久久| 亚洲丝袜二区在线| 肉丝无码中文高清| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 久久m| 操我啊啊啊啊啊| 少妇超碰在线| 六月婷婷色综合| 亚洲成人美女无吗| 正在播放国产精品一区| www国产无码| 香蕉99秘 一区精品蜜桃臀| 少妇人妻在线| 中文字幕精品专区搜索结果91| 午夜啊啊啊| 蜜桃久久久久久久| 国产熟女少妇一区| renqi久久久久久久久久久久| 操婷婷逼| 日本在线播放不卡一区| 国产精品蜜乳AV| 亚一综合久久久久久久久久| 日韩黄片视频试看| 免费观看国产小粉嫩喷水精品午| 乱伦一二三| av一区二区三区不卡| 夜草网站| 国产精品午夜福利亚洲综合网| 亚洲精品久久久久毛片A片拉屎 | 亚洲最大成人a毛毛片| 精品久久久久久AV无码| 强奸乱伦免费网站| 操逼大黄片| 国产51色综合久久免费| 先锋色眉乱伦资源| 日韩精品黄片免费观看| 国产懂色精品国产av| 丰满人妻大屁一区二区| 精品-91人妻子系列| 亚洲日韩精品在线播放| 九九性视频| 亚洲天天艹| 91色综合激情| 色www精品视频在线观看| 超碰在97| 91美女视频。| 好吊色综合| 亚洲 欧美 日韩 国产一区二区| 无码直播久久久| 日本欧美一区二区三区免费| 久久99午夜精品一区人妻| 欧美日韩理论一区| 超碰97资源大奶| 欧美性天天影院| 91久久国产精品| 超碰成人人人爽人人爽| 18啪啪手机免费性爱| 激情综合网五月婷婷五月天| 97色色婷婷| 日本一区二区三区欧美日韩中文字幕| 99啪啪视频| 成人一级二级| 一起草视频在线| 高清国产性猛交xxxx乱大交| 殴美大黄片| 另类图片五月| 久久少妇人妻| se..亚洲欧美| 日本黄色大片一级视频免费麻豆| 黄片在线免费在线观看| 99精品丰满人妻无| 999熟女精品| 亚州综合网| 国产 亚洲 丝袜 制服| 五月婷婷影院| 久久99草| 97这里只有精品| 免费观看的黄色的网站| 91蜜臀在线久久久久| 99999这里都精品| 中文字幕三四区| 色一色综合网| 欧美中文字幕一区 | 丰满人妻无码一区二区三区| 大香蕉AV在线| 足交视频老司机| 超碰免费97| 熟女六十路| SS久久| 91天天综合网| 插欧洲美女欧美精品| 亚洲综合113页| 国产免费内射视频| 人妻一区视频| 亚洲男人的天堂一区二区| 男人的天堂kva| 91在线超高颜值国产| 麻豆视频test| 久久久555| 岛园激情| 欧美91丝袜| 日韩免费高清大片在线| 国产精品色| 亚洲乱熟女一区二区| 亚洲一区二区三区中文字幕| 亚洲最大的黄色电影网站。| 久久久日本电影| 亚洲四虎熟女精品| 校园春色综合香蕉| 老司机深夜18禁污污网站| 天美麻豆精品视频99| 天天综合网~91| 粉嫩不卡一区二区性爱 | 国产乱伦亚洲| 啊啊啊97视频| 国产精品4p在线观看| 97青青操视频| 天天澡天天爽日日AV| 成人情色一区二区| 青女偷拍网| 日本综合久久| 国产一二三福利视频网| 91狼人| 亚洲日本大香蕉1| 国产懂色精品国产av| 综合97久久| 在免费jIzzjIzz在线视频| 熟女精品一区二区在线观看| 亚洲伊人a线观看视频| 久久国99999| 人人看人人插| 婷婷另类小说| 天天色,天天干,天天干| 嗯嗯啊啊好大好爽| 亚洲暴力强奸AV| 日韩人人精品| 午夜男女爽爽爽在线视频| 91天天综合在线观看| 久久久97| 欧美96精品在线| 中文高清一区二区的| 97爱爱| 欧美一二三区四五区| 7777奇米影视久久| 人妻黑丝袜电影| 亚洲成人美女无吗| 精品国产乱码久久久久久久久久毛片| 综合网色| 五月丁香激情四射| 亚洲av热热色| 日韩无码黄色片| 久久99干一本高清| 最新欧洲欧美日本激情网站| 七月婷婷综合| 日韩在线97| 粉嫩在线一区二区懂色| 天躁夜夜躁2021| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 亚洲国产亚洲天堂| 色五月激情网| 草草草视频在线免费看| 亚洲自拍另类丝袜综合| 浪人综合网| 99rre在线精品99re8| 一区二区三区 丝袜 高跟 美腿| 天堂69亚洲精品中文字| 久久久精品中文字幕麻豆| 91丨九色丨43老版熟女| 青春草莓视频在线观看网址| 精品九九九九九九九九九| 亚洲啪啪性视频| 在线午夜成人无码视频| 青青伊人加勒比海| 五月丁香色综合| 天天激情综合站| 亚洲综合在线91| 欧美五区| 亚洲天堂99| 91搞逼视频| 亚洲黄色AV电影| 超碰久久草| 禁片 高清 在线观看视频网站| 欧美性生活免费网| 欧美日韩在线小说 | 国产免a费看黄片在线| 亚洲情色 自拍| 久久久久久久久久久999| 香蕉婷婷| 无码操逼网| 蜜桃狠狠色伊人亚洲综合网站| 亚洲无限观看| 青青草九九九九九| 一区二区三区视频在线观看免费| 国产真实子伦对白| 精品人妻一区二区三区蜜桃视频| 4141514逼喷水三级片| 中文字幕一二三av| 91精品91久久久中77777| 欧美亚洲美少妇一区二区| 婷婷爱五月| 一,爱啪啪,在线免费视频| 中文字幕久久婷婷丁香五月天| 亚洲加勒比色图| 久久爱超碰网| 中文字幕在线观看第二页| 色婷婷网| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 午夜无码熟妇丰满人妻| 大香蕉 222| 亚洲.欧美.丝袜.中文.综合| 欧美系列在线一区二区| 人人干黄色| 午夜小电影在线插入淫高潮| 男女啊啊啊| 亚洲,欧美,综合网| 亚洲天堂美臀在线| 四虎视频在线观看| 91老司机在线视频免费观看 | 蜜臀99久久精品久久久懂爱| 另类欧美综合| 91综合天天看| 97情超碰色| 最新9久久久9免费视频| 精品性爱久久视频| 亚洲吊色| 1204金沙人妻懂旧版免费| 欧亚第一综合网| 大香伊人在线一区| 欧美狠狠操| 欧美 青青草| 日韩激情视频| 上床不卡网站| 亚洲第一色页夜| 亚洲第91页| 欧美精品久久| 最新9久久久9免费视频| 精吧天堂| 午夜精品久久久久久久99| 色臀aV| 无码精品啪啪啪一区二区三区三州| 成人欧美日超碰| 大香蕉伊然在亚洲91| 天天热精品| 蜜臀99久久精品久久久久久| 午夜福利合集| 夜夜嗨一区二区三区直播内容| 国产精品久久久亚洲第一牛牛_在线观看 | 欧美色网| 岛国免费视频在线| 亚洲色图尤物视频| 岛国毛片手机在线观看| 成人午夜小视频手机在线看| 国内精品久久久久影院亚洲| 丁香六月激情综合|