99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

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ā)和帶團(tuán)隊的時間加起來超過十年換過幾家公司也看過不少代碼評審流程從制定到瓦解的全過程。幾乎所有團(tuán)隊在創(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)的成品框架而是我把團(tuán)隊踩過的坑、內(nèi)部反復(fù)出現(xiàn)的問題列成清單之后逐步驗證出的一套思路。一個稱職的代碼審查工具至少要回答四類問題。第一類問題是改了什么。大部分開發(fā)平臺自帶的 diff 視圖只展示文件級別的增刪改但審查者真正需要的是變更影響面比如這個改動涉及了哪些 API、調(diào)用了哪些公共函數(shù)、會不會影響老版本兼容性。open-code-review 在獲取變更信息后會做一次依賴關(guān)系分析把涉及的模塊、入口和潛在調(diào)用方列出來相當(dāng)于給審查者遞了一張影響范圍地圖。第二類問題是是否違反約定。團(tuán)隊規(guī)范通常有大量顯式和隱式約定比如密鑰禁止明文提交、引入新依賴必須審批、TODO 注釋不能帶上線、錯誤日志必須包含請求 ID。這些如果用人工審查去盯又累又容易漏。代碼審查工具的價值在于把這些約定轉(zhuǎn)成可執(zhí)行的規(guī)則在機器人層面直接攔截。第三類問題是有沒有人真正看了。很多工具能做到自動評論但評論本身不是目的。open-code-review 更關(guān)注審查狀態(tài)的流轉(zhuǎn)誰會去處理機器人提出的問題、哪些問題被標(biāo)記為不處理、什么原因?qū)е虏惶幚怼_@相當(dāng)于給審查過程加了審計日志團(tuán)隊復(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)是否干凈。兩個視角缺一不可。我在部署的時候吃過一個虧默認(rèn)配置只拉取了平臺返回的前 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ī)則之間是獨立的方便團(tuán)隊按模塊拆分維護(hù)。過濾器解決的是這條規(guī)則到底是否需要執(zhí)行。最典型的場景是某些歷史遺留目錄已經(jīng)存在大量問題時如果新規(guī)則一上來就全量掃描會產(chǎn)生幾百條噪音團(tuán)隊一下子就被淹沒了。open-code-review 支持按路徑、按分支、按提交作者、按文件變更量做過濾。比如只有src/目錄下的改動才需要執(zhí)行某條安全掃描規(guī)則或者只有 master 分支才啟用嚴(yán)格的checkstyle規(guī)則集。這個能力非常重要它決定了審查工具會不會被團(tuán)隊嫌棄。動作則對應(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 行上審查者點進(jìn)去就能看到具體的代碼行和規(guī)則說明。這比看一條籠統(tǒng)的檢查一下這個文件要有效得多。審查者關(guān)注的不再是代碼里有什么可疑點而是機器人覺得可疑的地方是不是真的存在更深的問題。我經(jīng)常跟團(tuán)隊說一句話機器人負(fù)責(zé)檢查和掃雷人負(fù)責(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 左右對于中小團(tuán)隊完全夠用。部署前需要準(zhǔn)備一個 HTTPS 域名或者能用反向代理轉(zhuǎn)發(fā)到服務(wù)的入口因為代碼托管平臺的 webhook 回調(diào)一般要求可達(dá)地址。下面是我實際使用的 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適合幾十人的小團(tuán)隊不需要額外維護(hù)數(shù)據(jù)庫如果團(tuán)隊規(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)限粒度更細(xì)而且不會因為某個 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 和私鑰。私鑰的管理要小心。我見過有人把私鑰直接塞進(jìn) 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)重級別時所有命中都會按這個默認(rèn)值處理。我把默認(rèn)值設(shè)為warning這樣即使有人手滑寫了一個大范圍規(guī)則也不會直接阻塞整個合并最多是評論提醒。真的要讓某條規(guī)則強制阻塞合并可以單獨指定severity: error。這種灰度設(shè)置思路適合剛引入自動審查的團(tuán)隊能顯著降低工具上線初期的對抗情緒。服務(wù)端會監(jiān)聽 rules 目錄下的.yml文件變化通常在 10 秒內(nèi)完成熱加載。我驗證過這個機制修改規(guī)則后不需要重啟容器下一次審查事件進(jìn)來時就會使用新規(guī)則。但要注意如果使用容器 Volume 掛載宿主機目錄文件權(quán)限和路徑格式可能會影響監(jiān)聽效果遇到不生效時先看日志再驗證掛載路徑是否被識別。4. 審查規(guī)則設(shè)計把團(tuán)隊規(guī)范變成可執(zhí)行代碼4.1 規(guī)則文件語法與三類常用規(guī)則規(guī)則文件是 open-code-review 的靈魂。我習(xí)慣給每類規(guī)范建一個獨立文件比如style.yml、security.yml、process.yml這樣職責(zé)清晰也方便在團(tuán)隊群里討論。規(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ī)則在團(tuán)隊跨模塊協(xié)作時特別有用因為大 PR 的審查質(zhì)量幾乎一定下降。4.2 分層設(shè)計審查規(guī)則硬性門檻、軟性建議、人工確認(rèn)項把團(tuán)隊所有想檢查的都塞進(jìn)規(guī)則系統(tǒng)不是一個好主意。我見過兩個比較極端的團(tuán)隊一個是規(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)格、命名、配置硬編碼等。機器人只評論不阻塞。人工確認(rèn)項severity: info機器人把比較主觀的問題點出來并 對應(yīng)模塊的負(fù)責(zé)人讓負(fù)責(zé)人來確認(rèn)是否需要處理。比如這個函數(shù)的復(fù)雜度從 12 漲到了 18雖然當(dāng)前通過測試但請確認(rèn)后續(xù)是否規(guī)劃重構(gòu)。分層之后團(tuán)隊的反饋會舒服很多。硬性門檻攔截的是絕對不能出的問題軟性建議給了討論空間人工確認(rèn)項實際上是把跨模塊的判斷權(quán)交給了對應(yīng) owner。這是其他純自動化方法論里經(jīng)常被忽略的點。4.3 處理誤報的閉環(huán)流程規(guī)則系統(tǒng)上線一個月后一定會遇到誤報問題。比如正則把測試代碼里的示例字符串當(dāng)成了真密碼路徑規(guī)則把配置目錄下的合法文件擋住了。如果誤報率太高開發(fā)者會開始忽略機器人評論甚至要求關(guān)掉某條規(guī)則。所以一定要建立誤報處理閉環(huán)而不是簡單把規(guī)則刪掉。我在團(tuán)隊里的標(biāo)準(zhǔn)流程是收到任何一條疑似誤報的評論開發(fā)者不需要現(xiàn)場爭論只做兩個動作——在評論下回復(fù)#ignore加一句原因同時把這條問題加入周會上的規(guī)則巡檢清單。每周固定時間值班的同學(xué)會做一次規(guī)則召回分析統(tǒng)計哪些規(guī)則命中率低、被置為 ignore 的次數(shù)多然后去調(diào)整正則表達(dá)式或收窄過濾范圍。open-code-review 支持從評論中解析#ignore標(biāo)記命中后自動把這條規(guī)則從后續(xù)事件中排除。這樣既保留了規(guī)則的歷史記錄又避免了同一問題反復(fù)打擾。我調(diào)整完規(guī)則后記得在描述里寫 changelog這樣團(tuán)隊能看到規(guī)則是在更新的而不是永遠(yuǎn)一成不變。規(guī)則文件本身也應(yīng)該走代碼審查流程——這聽起來有點像套娃但對保證規(guī)則質(zhì)量真的有效。5. 接入CI流水線后的真實收益與潛在坑5.1 阻塞式還是非阻塞式一個需要明確的決策把 open-code-review 接入 CI 流水線時第一個要決策的問題就是機器人審查失敗時CI 到底要不要掛。這個決策做錯了后續(xù)非常被動。有些團(tuán)隊一上來就搞阻塞式只要 open-code-review 返回failure整個 PR 就不能合并。這樣做看似嚴(yán)格但規(guī)則成熟度不夠時每天會產(chǎn)生大量卡住的 PR開發(fā)體驗極其糟糕。更現(xiàn)實的做法是規(guī)則系統(tǒng)上線第一階段設(shè)置成非阻塞式讓機器人評論和 CI status 只是記錄不真正阻止合并。跑上一到兩周觀察規(guī)則的誤報率和團(tuán)隊反饋再逐步把error級別的規(guī)則調(diào)整為阻塞式。我的經(jīng)驗是阻塞式只適合兩類內(nèi)容一類是安全底線密鑰、憑據(jù)、危險函數(shù)另一類是流程硬約束缺少測試、缺少變更描述、目標(biāo)分支不對。至于代碼風(fēng)格和可維護(hù)性的規(guī)則先做提示等人接受之后再慢慢收緊。這個漸進(jìn)思路能讓引入工具的過程更平滑。在 CI 配置中可以用類似這樣的命令直接讓腳本返回狀態(tài)open-code-review check --event pull_request --source refs/heads/feature/xxx --target refs/heads/main --exit-code加不加--exit-code就決定了是否阻塞。我在團(tuán)隊里用的是先輸出報告文件再決定是否指定 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)建記錄放在一起的團(tuán)隊。兩張方式可以同時用但要約定清楚避免重復(fù)報告。如果 webhook 已經(jīng)自動評論了流水線里就不要再加同樣內(nèi)容的評論否則開發(fā)者會看到兩條重復(fù)信息。我的做法是webhook 負(fù)責(zé)在 PR 里打 inline 評論流水線步驟負(fù)責(zé)做構(gòu)建層面退出碼判定互不干擾。5.3 實際運行中遇到的三個典型問題接入 CI 之后我踩過一些坑這里挑三個典型的說。第一個是時區(qū)問題導(dǎo)致的分支狀態(tài)判斷錯誤。open-code-review 在比較分支更新時間時如果服務(wù)端和代碼托管平臺所在的時區(qū)不一致會把新提交誤判成已經(jīng)被檢查過導(dǎo)致機器人不更新評論。解決辦法是在服務(wù)端環(huán)境變量里顯式指定TZUTC并在日志里確認(rèn)時間和平臺一致。這個問題特別隱蔽我當(dāng)時排查了一晚上最后才發(fā)現(xiàn)是時區(qū)偏移了 8 小時。第二個是大倉庫的 diff 拉取超時。接入大型倉庫后PR 的 diff 可能非常龐大。默認(rèn)的 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)記為過期并在新的位置重新評估。上線這個配置后團(tuán)隊反饋干凈了很多。6. 團(tuán)隊落地過程中的行為推動與數(shù)據(jù)度量6.1 從工具到制度審查文化的建立工具解決了能不能審的問題但真正決定團(tuán)隊能不能把這套東西用起來的是愿不愿意審。這個和文化相關(guān)單靠工具做不到。我在團(tuán)隊里推動 open-code-review 時做了三件具體的事。第一件是讓規(guī)則文件成為公開文檔。規(guī)則文件放在倉庫里任何人可以看到每一條規(guī)則存在的理由和背后的討論記錄。這樣團(tuán)隊不會覺得是某個人在拍腦袋立規(guī)矩而是一起沉淀出來的共識。第二件是把代碼審查納入開發(fā)任務(wù)的驗收標(biāo)準(zhǔn)。一個任務(wù)的定義完成不只是代碼合入還包括收到 open-code-review 的檢查報告后所有error級別問題都已處理或有人工確認(rèn)記錄。這個口徑寫進(jìn)團(tuán)隊 wiki 后大家的行動就統(tǒng)一了。第三件是定期做審查意見復(fù)盤。每個月挑一個小時的會議把機器人打出來的典型問題和人工審查中有價值的評論拿出來一起過一遍。不是為了批評誰而是讓團(tuán)隊看到機器人和人的配合產(chǎn)生了什么效果同時收集規(guī)則的改進(jìn)建議。慢慢地大家會覺得 open-code-review 不是用來找茬的而是用來降低犯錯的。6.2 度量指標(biāo)設(shè)計與統(tǒng)計口徑度量是一個容易做形式主義的環(huán)節(jié)。我的建議是不要一開始就設(shè)計十幾個指標(biāo)那純粹是給自己找負(fù)擔(dān)。以我實際使用的經(jīng)驗真正值得定期看的指標(biāo)只有三個。第一個是審查覆蓋率合入的 PR 中有多少比例經(jīng)過了至少一次人工 review 和機器人 review。第二個是平均首次響應(yīng)時間從 PR 創(chuàng)建到收到第一條有效審查意見的耗時。這個指標(biāo)直接反映了團(tuán)隊審查的響應(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)了一條你認(rèn)為不合理的規(guī)則你可以直接提一個規(guī)則修改的 PR把理由寫在描述里。一旦通過合并后規(guī)則就變了。這句話聽起來很常規(guī)但真正做到之后團(tuán)隊中的抵觸情緒會大幅下降。因為大家發(fā)現(xiàn)自己不是在被動接受機器人規(guī)則而是在一起維護(hù)一套團(tuán)隊質(zhì)量標(biāo)準(zhǔn)。同時我也刻意把機器人評論的話術(shù)調(diào)整得中性一些不出現(xiàn)你違反了規(guī)則這種指責(zé)性詞匯而是當(dāng)前變更中檢測到以下風(fēng)險點請確認(rèn)是否需要處理。人去看待機器人和人審視自己的感受差異是很大的中立的話術(shù)能減少情緒對抗。堅持跑上一兩個月團(tuán)隊成員會慢慢把 open-code-review 的評論當(dāng)作一個提前自查的信號用力。我在實際使用中最深的體會是開放代碼審查工具的價值不在一鍵解決所有問題而在它能把審查變成一件可以持續(xù)改進(jìn)、可以數(shù)據(jù)驗證、可以全員共建的事。規(guī)則寫了可以調(diào)效果差了可以看數(shù)據(jù)異議多了可以提交修改。這種持續(xù)演進(jìn)的循環(huán)才是讓代碼審查真正從形同虛設(shè)走向扎實落地的關(guān)鍵。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
www.91在线观看| 五月天丁香综合久久国产| 伊人激情综合网| 久久精品噜噜噜成人A∨色欲| 伊人激情网| 天天摸日日舔狠狠添婷婷婷| 九九热99精品| 婷婷五月av| 超碰成人在线观看| 国产精品涩涩涩视频网站| WWW丁香五月| 激情五月天色播| 这里只有精品免费在线视频| 亚洲V国产V欧美V久久久久久| 婷婷丁香五月天在线视频| 五月婷婷激情综合| 狠狠色丁香久久婷婷综合五月| 亚洲AV日韩AV永久无码网站| 日本高清久久| 激情五月,婷婷五月,丁香五月| 成人片在线免费看| 开心婷婷五月| 婷婷色正月| 欧美天堂久久| 中文字幕日产A片在线看| 久久激情五月婷婷| 亚洲最大五月六月丁香婷婷| 丁香五月亚洲AV| 久久九九亚洲| ou洲色吧| 婷婷丁香黄色| 高清一区二区三区日本久| 丁香五月婷婷五月天| 超碰97人人操| 青青草五月天| 人人97操| 69综合在线| 五月丁香网站| 婷婷操超碰| 丁香五月综合网亚洲综合欧美狠狠| 色婷婷色九月| 亚洲AV成人一区二区在线观看| 婷婷五月六月| 久久 这里只有精品1| 大香蕉九九| 日韩在线视频9色| 婷婷在线激情| 五月丁香无码| 开心五月网 | 婷婷射图五月天| 男人的天堂97| 五月丁香六月综合基地| 人人草碰| 婷婷97碰碰| 碰超亚洲| 婷婷丁香中文字幕| 国产精品久久久久久妇女6080| 亚洲无码99| 先锋男人99资源| 狠狠九九婷婷韩| 99热在线观看| 1000部毛片A片免费观看| 六月丁香五月天| www.开心激情| 五月天桃色深爱网| 草综合14| 激情综合丁香五月| 五月激情婷婷丁香| 91精品无码| 99无吗| 色婷婷狠狠色| 开心五月婷婷在线| 26uuu激情五月天| 九九综合色| 超碰在线成人| 26uuu色噜噜精品一区| 丁香婷婷五月天亚洲| 激情五月婷婷欧美极品| 亚洲尤物在线| 五月婷婷色五月| 五月天综合在线观看视频| 日本va欧美va国产激情| 婷婷伊人网| 99国产精品久久久久久久久久久| 极品少妇婷婷五月| 99热色无码| 9精品一区| 国产小网站| 99热综合在线| 亚洲丁香五月在线观看| 久久综合99| 丁香五月手机在线| 这里只有精品久久| 日韩 mm 不卡| 9.1综合网| 夜夜爽日日躁| av色婷婷| 婷婷婷五月香蕉| 99精品高潮| 五月色婷婷夜色| 激情综合国产| 这里只有精品在线免费视频| 久久99精品久久久久久噜噜| 八戒青柠影视剧在线观看| 色色图五月天| 99热1| 色婷婷五月影视| 九九色影院| 99热婷婷| 综合网啪| 天天插天天干| 久久多色| 五月天激情婷婷小说| WWW.桔色成人.COM| 婷婷伊人綜合中文字幕小说| 婷婷六月成人| 伊人久久大香线蕉av最新| 婷婷五月激情基地| 婷婷五月天激情电影小说| 99热精品中文字幕| 久久久A级视频| 六月婷婷之青青草| 欧美激情综合五月色丁香| 97人人干人人操| 欧美这里只有精品| 久9热视频在线观看| 99热青青草原| 狠狠综合| 婷婷丁香五月天影院| 亚洲综合婷婷五月| 婷婷爱五月天| 天堂二区| 99r这里只有精品哦| 激情婷婷啪啪| 婷婷丁香五月天激情四射| 超碰免费人妻| 射区导航| 婷婷五月激情欧美大胆视频| 色色99色色| 九热免费视频| 婷婷爱爱蜜臀天天操| 五月丁香激情婷婷综合| 男女啪啪做爰高潮无遮挡| 婷婷五月色花丁香社区| 天天做天天爱天天玩夜夜爽| 青青草婷婷五月天| 婷婷十月丁香| 91色色色视频| 99这里只有精品99| 婷婷五月天在线观看| 海外网站专业操老外| 天天干肏夜夜| 天天日天天插| 影音先锋四区| 婷婷久久精品| 五月丁香好婷婷A片网| 婷婷五月另类网站| 激情五月天婷婷色色色色色色色色色色色 | 欧美va视频| 色婷婷五月视频| 国产精品久久久爽爽爽麻豆色哟哟| 久久三级视频| 久色视频| 热996精品在线观看| 激情开心五月亚洲| 白人荫道BBWBBB大荫道| 色婷婷成人在线| 天天精品视频免费观看| 九九免费精品在线视频| 六月丁香久久| 日日干日日色| av亚洲国产小电影| 久久机只有这里精品| 熟女人妻一区二区三区免费看| 色情五月丁香婷婷网| 99在线小视频| 色宗合,宗合网| av九九| 人人爱天天摸摸天天爱| 激情都市另类| 天天插天天草人人玩| 五月丁香成人网| 色狠狠激情五月| 色99视频| 五月丁香综合| 天久综合91综合首页| 五月天婷婷影院| 99免费热视频| 五月天操逼网| 免费无码毛片一区二区A片| 五月在线婷色| 人人操超碰| 婷婷性爱五月天| 玖玖婷婷婷丁香五月| 九六五月天婷婷| 国产毛片操B| 婷婷色激情五月天| 4399在线日本A片| 九九热免费视频| 久久五月人人摸| 日本99久久| 天天狠狠婷婷在线| 91久久久久| 久热免费| 五月婷成人网| 日韩xx在线| 日韩成人电影AV| 色色精品色| 热思思九九| 安息电影在线观看完整版| 欧洲色色| 激情五月天婷婷五月天| 欧美激情 日韩无码 婷婷 五月天| 色色色香蕉五月婷| 婷婷精品免费久久| www.激情五月天| 伊人五月天97| 国产精品扒开腿做爽爽爽A片唱戏| 爱婷婷久久视频| 丁香久久久| www99热| 人人爱人人摸人人澡| 五月婷色激情五月| 激情小说五月天社区丁香| 香蕉久久av一区二区三区 | 婷婷基地成人五月天| 天天插操| 亚洲黄色影视| 色情五月婷| 激情丁香淫荡婷婷| 精品婷婷| www狠狠com| 综合色播| 丁香色综合| 天天操九九插| 激情五月丁香五月| 丁香五月很很肏| 激情五月天视频| 五月婷六月婷婷| 91久久婷婷| 日本三级日本黄色| 伊人91| 久久丁香五月天| 99久久丝| 影音先锋91| 色视频色综合91| 综合久久综合| 日韩三级高清无码| 五月天婷婷婷| 色色综合视频| 丁香五月综合图片在线观看| 人人干人人干骚美女| 热婷婷在线视频| 五月天激情小说| 六月丁香综合| www热久久yy9| 五月婷婷丁香网| 日本色婷婷五月天成人电影| 丁香五月天激情网址| 亚洲成人网站在线播放| 色久一| 99在线精品免费视频| 五月久久婷婷| www色色色com| 久久视频婷婷视频| 激情久久四色| 一起草av| 超碰国产AV| 久99999热视频在线观看免费| 在线婷婷| 久久婷婷成人综合色怡春院| VA色婷婷| 天天操夜夜操| 欧美狠狠色| 夜夜夜叫天天天做| 九九视频精品在线免费| 天天噜日日噜综合无码| 午夜丁香综合婷婷| 在线播放 精品| 国产FREESEXVIDEOS性中国| 色99网站| 婷婷丁香六月| 欧美搡BBBBB摔BBBBB| 婷婷丁香五月综合| 五月丁香综合激情| 91蜜桃婷婷狠狠久久综合9色| 综合色播| 九九热视频这里只有精品| 色情综合| 天天干天天拍| 熟女人妻一区二区三区免费看| 色五月婷婷在线| 色色色欧美| 玖玖爱综合网| 婷婷丁香人妻天天爽| 色色色色综合网| AV在线大香蕉| 97色婷| 中文av网| 91肏肏肏| 九九热在线视频观看免费10| 99热性色| 婷婷五月激情的图片| 久久丁香五月综合六月激情红杏视频 | 色小说婷婷五月天天天| AV天堂婷婷五月天| 色色色色色色网| 天天操人人干| 综合婷婷久久| 91操碰| 国产精品美女久久久久AV超清| 中文字幕丰满孑伦无码专区| 天天视频精品9| 毛片蕉地一二| 91精品丝袜久久久久久| 久久亚洲网| 天天噜天天爱| 婷婷激情五月天激情| 热99这就是精品视频| 五月婷婷婷丁香播| 337p大胆噜噜噜噜噜91Av| 少妇性按摩无码中文A片| 国产精品涩涩涩视频网站| 五月日韩中文字幕| 99五月婷| 日韩一66精品| 激情五月天在线免费美女视频| 久久色五月天| 亚洲精品又粗又大又爽A片| 久久九九激情五月天| www.狠狠操| 丁香五月成人| 美国天天操无码| 色婷婷天堂| 色婷婷丁香五月天| 激情五月婷婷色播网| 婷婷五月激情六月| 99热亚洲| 婷婷色色丁香五月天| 丁香色情五月天| 婷婷五月色丁香在线看| 超碰操网| 婷婷热色| 激情丁香久久| 五月丁香婷婷婷激情爱爱| 婷婷激情图片| 99热99在线精品| 婷婷五月大| 这里只有精品视频一区| 天天日,天天插| 中文字幕婷婷| 色啦啦视频| 97碰碰在线观看视频| 丁香色六月| 五月天婷婷青青草| 色色色com| 97碰 在线视频观看| 色综合99色| 成人电影AV在线观看| 成人色情五月天婷婷丁香| 人人草人人舔| 日本婷婷色| 99热在线观看免费中文| 丁香五月天激情综合| 26uuu欧美| 婷婷趴趴| 夜夜撸天天操| 爱穴久久| 另类综合激情| 丁香六月婷婷色XXXXX| 久在线综合69| 婷婷五月天首页| 高清无码视频网址| 99热99美国在线观看| 26uuuu精品一区二区| 精品在线网站| 99伊人性爱在线影院| 五月丁香六月婷婷不卡免费无码| 五月丁香色六月激情干大屄| 青草视频在线观看视频| 色婷婷五月影视| www.色五月| 日本女色人人| 日日天天操| 在线另类| 噜噜噜狠狠色综| 婷婷五月天免费视频| A片试看120分钟做受视频红杏 | 激情久久伊人| 婷婷丁香五月天综合网| 色婷婷久久| 另类视频综合| 26uuu欧美日本| 狠狠色婷婷7777久综合| 五月丁香啪啪综合| 啪啪五月婷婷| 色婷婷成人五月| 黄色录像网点| 色婷婷AV五月天| 激情五月婷婷视频一区二区三区| 热99这里只是精品| 色99在线| 激情99热| 99超超碰| 久久视频在线| 91久久免费| 26uuu欧美日本| 日本丰满久久| 天天做天天爱天天高潮| 五月婷婷熟女| 久久人人看| 99国产小视频2013| 亚洲日韩乱码一区二区三区四区 | 欧美精品A片一区在线观看| 五月花亭亭| 五月丁香久久久| 九九爱看亚洲| 中文字幕人妻AV| 成人性爱无码| 亚洲免费观看高清完整版AV线| www.婷婷五月天.com| 欧美日韩日韩成人| 五月婷婷亚洲| 婷婷中文网站| 99久久www| 99热新网址| 激情久久综合| 玖玖在线资源视频| 亚洲AV久久久久久久久久久久久久久久 | 丁香香五月激情免费视频| 久热大香蕉| 婷婷色五月亚洲| 草草女人亚洲| 五月天亚洲色| 九九综合精品| 亚洲最大成人综合网720P| 男女99免费视频| 99久视频| 激情五月婷在线精品| 亚洲色区17| 久久久久久久人妻| 精品99这里有| 大香伊人久色| 欧美大香蕉视频| 婷婷六月激情小说网| 亚洲欧洲中文日韩久久AV乱码| 欧洲综合视频在线观看。欧洲,亚洲综合食品在线观看。 | AV片一区在线观看| 中文av网站| 成人AV免费观看| 色狠狠色| 99热费观看| 99爽视频| 日本一級黃色一級片| 丁香五月天色婷婷| 五月丁香激情片| 婷婷五月天国产传媒| 五月婷婷之婷婷| 五月婷中文字幕| 国产精产国品一二三在观看| 亚洲热综合| jiqingtaose五月天| 久久久久久五月天| 婷婷色九月| 亚洲综合色丁香五月天| 五月丁香久久久久| 久久5 9视频免费观看| 亚洲免费av在线| 丁香五月婷婷姐| 激情婷婷视频在线| 少妇人妻偷人精品无码视频新浪| 九色啦蜜臀| 久久精品在线| 99ri久久| 九九久久腿| 久久久免费精彩视频| 中文字幕乱轮| 狠狠搞综合色| 综合久久综合久久| 99九九免费精品| www.婷婷五月天| 婷婷五月天激情小说| 五月天另类综合网| 色婷婷九月| 夜色爱爱亚洲| 精品国产一区二区三区四区阿崩 | 激情五月天色婷婷综合| 伊人婷婷青青cao| 久久一级片| 三年高清大片免费观看国语| 99这里只有精品|v| 99精品久久久久| 五月婷婷欲色| 少妇激情五月婷婷| 亚洲一个色| 五月丁香婷婷啪啪网| 欧美情色一区| 激情五月综合网| 91九色熟女| 思思热精品在线观看| 五月丁香网站| 色综合av超碰| 极品五月天| 亚洲精品又粗又大又爽A片| 五月丁香久久久久| 亚洲综合另类| 五月丁香激情综合网| 五月天综合区| 久色视频首页| 99热在线99| 97中文在线| 在线资源av-超碰中文在线-成人AV| 久久婷婷六月综合国际| 成人做爰高潮A片免费视频| 色婷婷丁香五月| 91在线日| 婷婷午夜| 五月丁香黄色视频| 婷婷综合久久| 九九黄色网| www.激情| 狼人狠狠操| 久久99精品久久久久久三级| 五月天淫乱视频| 日日色综合| 婷婷色5月激情网| 1010日日无码| 玖玖资源站中文| 九九色热视频| 26uuu| 激情五月影院| 亚洲婷婷五月| 丁香激情网| 婷婷五月花| 久久久久久激情| 五月婷色色| 日本高清久久| 99精品网| 久久性爱99国产| 激情综合视频| 一区二区三区四区牛| CAOBIBI| 亚洲操B视频| 视频久久9| 国产AV不卡福利| 久久久27操| 玖玖爱综合网| www.av视频xx999.com| 色五月丁香五月五月婷婷| 久久九九免费大视频| 丁香婷婷丁香五月欧美人| 日本精品。999| 无码婷婷五月天| 无码色色| 啪啪黄页网| 婷婷色五月激情| 婷婷天天日婷婷| 熟女人妻一区二区三区免费看| 亚洲欧洲中文日韩久久AV乱码| 欧美综合激情| 97久久五月丁香婷婷| 婷婷丁香宗合888| 欧美日韩一a.无| 色人五月婷婷| 九九精品热| 成人在线网| 五月婷婷激情| 亚洲久艹| 99热只有精品在线播放| 麻豆五月丁香婷婷| 丁香久月| 99激情| 99久久色| 婷婷久久五月| 婷婷五月丁香在线视频| 丁香色婷婷五月天| 五月婷婷碰碰| 九九伊人网| 婷婷播播五月天| 无套内射极品大美女| 五月婷婷香| 婷婷99视频在线| 日亚二欧美| 狠色狠色狠狠色综合网| 色五月激情| 婷婷色六月| 精品热九九| 一起草Av| 五月丁香婷婷激情澎湃四射| 色婷婷综合网站| 激情小说色五月| 亚洲婷婷91丁香| 夜夜操少妇| 成人综合视频在线| 操B无码视频国语| 九月丁香亭亭| 深爱激情婷| 色综合色色| 日韩五月婷婷| 婷婷5月天av| 五月久久婷婷天堂视频| 婷婷在线五月综合| 丁香六月啪啪| 五月天婷婷成人网| 午夜伊人大香蕉| 超碰av在线| 婷婷五月丁香香蕉| 国产精品扒开腿做爽爽爽A片唱戏| 日韩三及成人AV片| 色丁香婷婷美女视频网站| 黄网在线播放| 热九九九九| 99久久思思| www,久久久| 天天综合网~91| 国产夫妻操逼内射视频| 亚洲综合九九| 丁香婷婷超碰| 婷婷五月天色| 激情AV综合| 99热99网| 久99热| 91岛国片| 99热这里只有精品3| 久久久国产精品黄毛片| 亚洲国产色婷婷| 天天舔天天摸视频| 俺去也五月| 色五月婷婷婷婷婷婷婷婷婷婷| 开心婷婷五月| 婷婷丁香综合在线| 婷激情五月| 男女啪啪做爰高潮无遮挡| 久热婷婷| 99综合| 精品久久久999| 五月婷婷丁香五月婷婷丁香| 9一精品视频观看| 79色色免费| 中文中文在线| 天天噪夜夜爽| 色欲一区二区三区精品A片 | 日本操B片| 天天日夜夜操五月| 色色欧美色色色| 综合色天天| 五月丁香婷婷色| 九九伊人网| 久9热| 黄网在线免费观看| 久久九色| 996热| 97操在线视频| 五月丁香| 色婷婷丁香五月| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 激情综合网激情五月俺也去| 久久成人天| 91干婷婷| 久久丁香久久| 婷婷久久图片| 99热精品99| 五月丁香激情四射综合| 日本综合色色| 九九综合视频在线观看| 超碰人人在线| 国产26uuu视频| 亚洲熟妇AV乱码在线观看| 激情丁香五月激情婷婷| 国内精品免费一区二区2009| 丁香五月六月综合欧美| 五月婷六月| 色综合久久天天综合网| 天天噜天天插| 中文字幕无线久必| 天天日天天干天天爽| 伊人九九综合| 色色色图| 婷婷五月综合在线视频| 大香蕉天堂色| 亚洲啪啪视频| 性小说五月天| 禁片二区| 99黄色性生活| 婷婷激情另类| 亚洲综合碰| 日韩超碰在线| 99在线观看这里都是精品| 丁香六月天婷婷色| 99热| 五月丁色AV| 99九九这里有免费视频| 深爱婷婷网| 99啪啪视频| 777米奇影视第四色| 丁香久久久| 九色视频91疯狂| 99精品国产在热久久| 99色色色色| 草草操操| 五月丁香综合色婷婷| www.五月天婷婷| 第四色五月激情网| 免费99色| 国产这里只有精品| 激情五月,婷婷五月,丁香五月| 五月丁香啪啪综合网| 国产精品99久久久久久久女警| 可以看的AV网站| site:hcxsz888.com| 婷婷丁香久久网| 超碰人人操在线| 亚洲十月婷婷综合| 久99综合婷婷| 婷婷丁香红五月91C| 99九无网码| 另类激情五月| 激情五月综合网| 日逼影音先锋AV男人资源站| 久久久久人妻| 五月丁香婷婷综合网| 亚洲 25P| 超碰91人人操| 婷婷WWW久久| 亚洲综合色婷婷| 亚洲男女激情| 热热久久久久久久久| 9热视频在线观看| 琪琪布丁香社区激情五月天| 天天干天干| 日本色视| 亚洲热综合网在线观看| 99自拍网| sewuyuetingtingiii| 久久精品99国产精品日本| 色五月婷婷综合在线| 精品乱码视频| 直接看的AV| 天天搡日日搡aaaaⅩ| 色婷丁香91| 五月天开心激情综合网| 丁香 亚洲 久久| 骚货艹网站视频| 久鲁鲁色网| 丁香婷婷五月色成人网站| 色综合网页| 成人无码精品1区2区3区免费看| 日韩欧美一级大黄网站| 精品色色| 色偷偷色婷婷| 国产精品久久7777777精品无码| 久久丁香五月婷婷激情综合网| 4399人妻无码久久久| 九九99九九精品视频| 色视频色综合91| 婷婷午夜| 五月丁香六月激情| 亚洲欧美成人在线| 天天综合五月| 99热这里只有精品在线| 天天爱夜夜爽| 免费观看欧美成人AA片爱我多深| 另类小说五月天激情| 婷婷六月婷婷| 新久久五月天激情| 天天综合情| 五月婷婷影院| 九九九九国产| WWW.99热| 影音先锋按摩| 五月丁香六月婷婷综合在线| 日本99视频| 成人在线日韩| 激情五月天婷婷图| 成人做爰A片免费看网站找不到了| 丁香六月婷婷综合激情欧美| 久婷婷婷| 91天天操天天干天天射| 啪啪激情综合| 97AV在线视频| 五月开心婷婷网| 青青热视频| 激情综合啪啪啪| 99视频这里只有免费精品| 色噜噜狠狠色综合无码久久欧美| 久久丝丝热| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 无码色色色| 婷婷五月花| 天天日天天插| 丁香婷婷五月香蕉91| 久久九网| 婷婷综合伊人| 天天综合久久| 色婷婷欧美| 久久亚洲A| 密臀久久| 久久人妻在线| 深爱激情综合网| 操逼三区| 五月激情六月丁香| 国产69久久久欧美黑人A片| 色五月综合激情网| 毛片九九九九九九| 97影院一级片| 華人性愛AV在線| 五月天色婷婷图片| 婷婷激情社区| 色碰碰| 日日干夜夜干| 五月丁香婷婷钟和色图| 激情啪啪五月天| 99久热在线精品| 亚洲激情99| 另类图片婷婷五月天| 亚洲无码99| 99热这里只有精品1| 少妇高潮呻吟A片免费看软件| httpwww色com日本| 激情四射婷婷| 国产99精品免费视频| 久久婷婷五月天亚洲欧美| 久久性爱视频| 日韩成人综合网| 日逼影音先锋男人资源站| 怡春院久操| 激情五月伊人婷婷| 深爱激情婷| 久久久激情| 五月丁香婷婷伊人| 六月婷婷色色色| 九九热视频首页/这里只有精品| 六月五月婷婷| 丁香五月婷婷啪| 99原创自拍视频在线观看| 五月丁香婷婷激情四射迷人| 99热99网| 五月天婷婷爱| 丁香五月成人社区| 97男人天堂| 久久久激情| 懂色AⅤ| 亚洲精品亚洲人成人网| 六月婷婷综合网2| 99操逼视频| AV79| 国产激情综合五月久久| 变天就操逼婷婷五月| 另类在线| 色香欲综合| 国产暴力强伦轩1区二区小说| a在线免费v| 五月丁香AV、伊人业余、性色熟妇| 五月亭亭网成人在线视频| 婷婷大香蕉| 无码橾| 这里只有精品久| 婷婷伊人网| 四季AV综合网| 五月丁香在线偷拍视频| 99热九九热| 欧美在线视频9| 五月天欧美 另类小说| 婷婷五月激情的图片| 婷婷操无码| 天天五月香欧美| 天天干天天拍| 激情影院69| 亚洲久久视频| 九九黄色网| 久久九精品| 婷婷丁香亚洲五月天| 天天插天天日| 色综合久久综合中文综合网| 五月婷婷AV| 69超碰在线| xxxx五月激情| 欧洲毛片基地c区| 97人妻碰碰碰碰碰久久久久久| 久热最新视频| 五月天激情视频| 婷婷中文在线| 综合色影院| 四射综合网| 婷婷色成人| www.97视频| 五月丁香激情综合啪| 99精品国产热久久91色欲| 久九九热| 天天透天天爱| 超碰在线资源| 色色 9| 五月停视频天堂| 综合狠狠干| 婷婷久草| 丁香五月婷婷综合视频| 久久五月天婷婷| 丁香九月久久| 久久五月视频| 三级三久久线久久99久目本WW| 激情五月婷黄版| 成人丁香五月| 丁香五月婷婷基地| 久热综合| 久久9视频| 久久久网站| 婷婷色播婷婷| 激情五月丁香五月| 99热国品免费| 激情五月综合亚洲另类| 丁香婷婷六月婷婷六月婷婷六月婷婷| 丁香五月天啪啪| 国产免费AV在线| 99热亚洲| 久久伊人大香蕉| 六月激情婷婷| 激情五婷精品网在线观看网址| www.五月天婷婷| 激情综合青草| 国产美女无遮挡裸体毛片A片 | 五月婷婷综合社区| 九月色婷婷综合| 99re热在线观看| 丁香激情久久| 天天射综合网站| 日日操日日撸| 六月综和久久| 九九成人电影婷婷| 色婷婷基地| 九九综合网色全集 | 久婷婷五月综合欧美| 五月婷婷影| 天天爽在线视频| 粉嫩AV久久一区二区三区| 99久久综合网| 色婷婷精| 激情图片婷婷| 激情丁香婷婷六月天| 年轻的妺妺伦理HD中文| 开心五月色婷婷综合开心网| 91精品丝袜久久久久久久久粉嫩| 96精品久久久久久久久| 99精品在线观看| 亚洲经典三级| 操人妻视频91| 五月丁香婷婷色色色| 丁香婷婷激情| 婷婷激情五月综合在线视频| 99在线播放| www.超碰在线| www好屌操| 亚洲第二AV| 九九热精品| 天天模,夜夜模夜夜爽| 激情婷婷22月间| 97精品自拍| 就爱啪啪婷婷| 美女伊人久久| 天天干天天干天天干天天干天| 99激| 99热一本久道| 欧洲色| 3www激情| 99热人人| 潘金莲AAAAAAAAAA| 久久综合首页| 色欲丁香久久| 日本97在线| 亚州美女| 亚洲无码99| 2025中文在线视频字幕免费观看| 久久婷婷色综合老司机| 怡红院视频| 婷婷五月骚厕所| 影音先锋一区| 丁香六月婷婷基地| 婷婷五月亚洲综合| 无码人妻一区二区三区免费九色| 91久久五月天| 免费无码毛片一区二区A片| 激情五月婷婷五月丁香五月开心五月 | 色五月激情五月| 色婷婷五月天久久| 丁香狠狠| 无码yw| 日韩av变天就操逼不卡区| 97色在线观看视频| 丁香五月在线视频黑人| 国产操碰| 大香伊人婷婷影院| 99热色精品| 亚洲色婷婷| 偷拍视频五月天| 久操热| 五月色丁香婷婷综合| 久久婷婷精品| 991精品在线视频| 色婷五月| aaaaaa片| 丁香婷婷五月色成人网站| 九月丁香八月婷婷加勒比| 日韩操人| 99热这里是精品| 婷婷婷五月天最新综合你懂的| 亚洲AV成人精品日韩在线播放| 啪啪色激情五月天| 香蕉久久av一区二区三区| 久久色情| 噜噜狠狠色综无码久久合欧美| 噜噜噜噜在线| 激情婷婷五月女| 欧美色色色色色色色色色色| 思思热视频| 五月综合色| 啪啪六月婷婷| 天天天添天天操| 五月丁香激情综合啪| 久久久久久9| 五月天婷婷久草丁香| 国产精品电| 香蕉AV福利精品导航| 亚洲天天操| 久99久在线| 婷婷五月丁香色综合| 91精品久久久久久综合五月天| 天天日日天天| 五月婷婷伦理| 99热这里在线精品| 亚洲中文av| 9191avse| 久久五月天色婷婷| 麻豆精品| 丁香五月很很肏| 香蕉久久五月| 色色9 9| 伊人久久丁香狠狠婷婷综合香蕉| 国产精产国品一二三在观看| 色5月婷婷| 久久人人看| 五月激情小说| 丁香色五月天| 丁香五月在线| www婷婷| 国产这里只有精品| 五月婷婷色五月| 五月天婷婷视频| 久久婷五月天| 久久视频这里有精品99| 99久热| 久久婷婷激情| 99超级碰免费视频| 五月丁香狠狠爱| 丁香成人五月天| www.zbzhongsen.com| 六月丁香啪啪| 丰满老熟妇BBBBB搡BBB| 碰97 久| 国产成人综合亚洲| 亚洲一区二区色图-亚洲精品国产精品乱码-成人AV | 色色无码| 99色在线| 婷婷五月花| 欧美天堂婷婷日韩| 九九色黄色| www.99热精品99.com| 99久久亚洲国产| 特级操b片| 成人亚洲精品| 亚洲丁香婷婷五月天综合色| va婷婷在线| 99色一| 2025色婷婷| 五月丁香激情综合啪啪| 成人视频一区| 五月香婷婷| 日韩二区搞逼插逼毛片| 亚洲AV成人无码精品| 久久久久久18| 任你搞网站| 永久无码色| 午夜丁香六月婷| 精品国产va久久久| 激情九九六月激情免费视频| 另类在线| 国精产品一区一区三区免费视频| 色域五月丁香| 激情文学第四色婷婷丁香五月| 亚洲色综合| 日日干综合| 五月天婷婷婷| 91超碰在线观看| 五月婷婷综合在线| 嫩草视频。| 美女激情综合| 久久婷婷六月综合资源| 久久免费婷婷视频| 99热这里都是精品| 国产精产国品一二三在观看| 五月丁香色色色| 99色干| 丁香色啪综合| 人人摸人人| 色综合天天综合成人网| 五月停性愛| 亚洲六月色婷婷| 久久久月丁香| 综合色播| 97人妻碰碰中文无码久热丝袜| 色婷婷精| 欧美A级网站| 丁香婷婷中文字幕| 91九色国产| 日韩国产在线精品| 中美月韩免费A片| 五月婷婷成人w| 五月婷婷综合在线| 99re在线播放| 婷婷综合一二三| 午夜丁香六月婷| 激情中文在线| 亚洲网在线观看| 97干欧美| www一区二区三区| WWW,五月| 一级韩国产精品毛| 天天人人综合| 26uuu成人网| 少妇AB又爽又紧无码网站| 国产精品国产| 丰满人妻一区三区三区| 色欲天天综合| 在线视频九色97| 丁香五月天婷婷在线视频| 色色网站| 少妇大叫太大太粗太爽了A片| 亚洲色激情| 思思热国产在线| 欧美99热| 五月天三级久久| 日韩六十路91性交电影| 色五月激情综合网| 9999热精品| 97色色色色色色色色色色色色色| 99激情在线| 俺去婷婷 丁香| 天天插天天日天天爽| 色婷五月| 丁香五月WWW| 99久久思思| 26uuu国产| 欧美日本国产欧美日本韩国99| 久狠日av| 亚洲精品白浆高清久久久久久| 色色综合网站| 免费视频无码| 日本A片一区| 婷婷五月丁香五月天| 久久精品性爱| 婷婷激情九月| 五月婷婷视频| 亚洲丁香婷婷丁香五月天激情| 国产日批视频| 色婷婷a v| 婷婷丁香五月天色色| 久久五月网| 操人无码| 色色色国产| 日本在线99| 99精品网址| 丁香 婷婷 亚洲 熟女| 国产AV一区二区三区最新精品| 亚洲一个色| 五月天大香蕉| 亚洲天99| 中文成人在线| www.久9| 婷婷丁香色五月久久88| 中文字幕有多少字| 桃色伊人在线| 久久婷婷五月天| 天天摸天天舔在线视频| 26uuu精品国产| 色婷婷综合久久久久| 99九无网码| www.91在线观看| 婷婷丁香五月综合免费视频百花| 去色色五月天| 玖玖资源站中文| 99国产97在线,| 亚洲久热无码| 9999热在线| 午夜色丁香| 奇米四色五月天| 五月婷婷中文字幕| 日本九九九九九九| 狠狠色噜噜狠狠狠狠综合| 久久久A级视频| nvrentiantang av| 99人人操人人爱久久久| 丁香五月欧美午夜视频| 日本操片| 伊人碰碰碰| 五月天婷婷久久| 五月婷婷av| 婷婷丁香六月五月天| 久久久天堂国产精品女人| 五月丁香婷婷久久| 精品少妇人妻AV无码专区偷人| 777丁香六月青青草婷婷综合久月| 国产做爰视频免费播放| 九九热在线视频,| 九色综合五月天婷五月| 99热这里只有精品免费观看| 久久香蕉婷婷| 综合久久高清| 九九Av| 亚洲精品无码一区二区| 五月婷婷深爱六月| 丁香六月激情国产| 日本女人久久| 青青.com| 日韩丰满少妇无码内射| 99re这里只有精品在线观看| 9 大屁股在线视频精品| 99riAV国产精品视频| 五月丁香激情综合网| 99自拍视频在线| 久久99这里只有精品视频| 97sese婷婷| 影音先锋一区二区三区| sS丁香五月婷婷| 激情五月丁香五月色| 亚洲精品国产精品乱码视99| av在线激情| 啊v视频在线观看| 日日操,夜夜爽| 五月丁香综合成人社区| 五月丁香777| 国产精品久久久60086| 综合久久伊人| 开心激情网五月天| 色五月婷婷开心| 欧美激情伊人| 99无码精品| 婷婷色成人| 亚洲综合1024| 亚洲精品又粗又大又爽A片 | 99热这里只有精彩| 九九伊人网| 免费91久久精品| enecarbon-materials.comWu染请涟系Bao护@wip1688 | 射琪琪| 99热精品在线| 色噜噜狠狠插综合| 五月天色图| www.seqingwuyuetian| 91se在线观看| 视色网在线播放| 久久精品女人天堂AAA| 丁香五月天激情综合| 日本欧美国产| 久久久999精品| av婷婷六月丁香社区在线观看| 欧美日韩123| 五月开心激情网| 99在线观看|