免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

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

開(kāi)源代碼審查實(shí)踐:open-code-review 讓機(jī)器盯細(xì)節(jié),人工抓重點(diǎn)

開(kāi)源代碼審查實(shí)踐:open-code-review 讓機(jī)器盯細(xì)節(jié),人工抓重點(diǎn) 做代碼審查這件事我前前后后折騰了快六年。從大廠里逐 commit 走查的嚴(yán)格流程到小團(tuán)隊(duì)里 MR 發(fā)出去一周沒(méi)人理的松散狀態(tài)全都經(jīng)歷過(guò)。今天想聊的這套 open-code-review不是哪個(gè)商業(yè)平臺(tái)的新功能而是我這幾年踩坑之后沉淀下來(lái)的一套純開(kāi)源代碼審查落地實(shí)踐。它解決的問(wèn)題很直接讓代碼審查不再是有沒(méi)有都行的過(guò)場(chǎng)而是變成一套機(jī)器主動(dòng)盯細(xì)節(jié)、清單兜住盲區(qū)、統(tǒng)計(jì)結(jié)果反過(guò)來(lái)改進(jìn)流程的機(jī)制。open-code-review 適合誰(shuí)一句話凡是正被提交了沒(méi)人審審了也說(shuō)不出所以然審查全靠 leader 一個(gè)人扛困擾的團(tuán)隊(duì)都可以直接參考。整套方案完全基于開(kāi)源組件搭建不需要采購(gòu)任何商業(yè)產(chǎn)品只要團(tuán)隊(duì)在用 Git 托管平臺(tái)GitHub、GitLab、Gitea 都可以就能把流程在倉(cāng)庫(kù)層面固化下來(lái)。整體設(shè)計(jì)原則就一條機(jī)械的、可枚舉的規(guī)則交給機(jī)器需要經(jīng)驗(yàn)判斷的內(nèi)容留給人類(lèi)。這也是它跟那些動(dòng)輒上百頁(yè)的審查規(guī)范文檔之間最本質(zhì)的區(qū)別。如果你最近也在關(guān)注 open code review 這個(gè)方向或者正糾結(jié)開(kāi)源的代碼審查方案到底能不能用、算不算真正開(kāi)源這篇實(shí)踐記錄應(yīng)該能幫上忙。接下來(lái)我會(huì)把整套方案的設(shè)計(jì)思路、關(guān)鍵配置、真實(shí)踩坑過(guò)程以及推行半年后的數(shù)據(jù)變化全部攤開(kāi)講你照著抄就能用。1. 方案選型與整體設(shè)計(jì)代碼審查為什么總流于形式1.1 從反復(fù)失敗中總結(jié)出的四個(gè)典型困境先說(shuō)結(jié)論大多數(shù)團(tuán)隊(duì)的代碼審查做不起來(lái)真不是成員態(tài)度問(wèn)題而是流程設(shè)計(jì)本身有缺陷。我拆過(guò)好幾個(gè)團(tuán)隊(duì)的 Review 數(shù)據(jù)反復(fù)出現(xiàn)的基本就這四類(lèi)問(wèn)題。第一是審查不及時(shí)。PR 掛在倉(cāng)庫(kù)里三天沒(méi)人理開(kāi)發(fā)者手上的上下文早就切換到下一個(gè)需求了等 review 意見(jiàn)回來(lái)光重新回憶上下文就要花半天。審查者看一個(gè)陌生模塊也要重新讀代碼兩邊的時(shí)間成本都極高最后只能草草 approve 了事。第二是關(guān)注點(diǎn)錯(cuò)位。我見(jiàn)過(guò)太多 review 評(píng)論糾結(jié)在縮進(jìn)、命名、單行長(zhǎng)度這些格式問(wèn)題上真正高風(fēng)險(xiǎn)的點(diǎn)——接口兼容性、并發(fā)邊界、數(shù)據(jù)一致性、事務(wù)嵌套——反而沒(méi)人提。為什么因?yàn)楦袷絾?wèn)題一眼就能看到而邏輯風(fēng)險(xiǎn)需要主動(dòng)分析才能發(fā)現(xiàn)人的注意力天然會(huì)被最容易感知的東西帶走。第三是知識(shí)分布不均勻。一個(gè)項(xiàng)目里能真正把核心模塊看明白的可能只有一兩個(gè)人其他人在 Review 的時(shí)候根本不敢出聲久而久之形成了事實(shí)上的單人審查。這個(gè)問(wèn)題的可怕之處在于它會(huì)讓團(tuán)隊(duì)產(chǎn)生虛假的安全感人人都點(diǎn)了 approve但沒(méi)有人在認(rèn)真看。第四是沒(méi)有反饋閉環(huán)。審查完就結(jié)束了不統(tǒng)計(jì)、不復(fù)盤(pán)同樣的坑隔幾周再踩一次。團(tuán)隊(duì)根本不知道自己的 review 平均要花多久、哪類(lèi)問(wèn)題最常被漏掉、哪個(gè)模塊是事故高發(fā)區(qū)。沒(méi)有數(shù)據(jù)支撐改進(jìn)就永遠(yuǎn)停留在口號(hào)層面。這四個(gè)困境是我設(shè)計(jì) open-code-review 的第一性起點(diǎn)。方案里的每一塊配置都是為了針對(duì)性地解決其中一個(gè)或多個(gè)問(wèn)題。1.2 為什么堅(jiān)持全開(kāi)源工具鏈而不是商業(yè)產(chǎn)品嚴(yán)格來(lái)說(shuō)商業(yè)代碼審查產(chǎn)品在某些場(chǎng)景下確實(shí)做得不錯(cuò)比如可視化報(bào)表很漂亮、權(quán)限體系很完整。但我在落地的時(shí)候發(fā)現(xiàn)大多數(shù)中小團(tuán)隊(duì)真正需要的不是一整套復(fù)雜平臺(tái)而是審查這件事能穩(wěn)定發(fā)生、不被繞過(guò)的底線機(jī)制。商業(yè)工具往往意味著額外的部署成本和用戶培訓(xùn)成本團(tuán)隊(duì)為了用工具而用工具反而會(huì)更抗拒流程。所以 open-code-review 的選型原則非常明確全部使用開(kāi)源組件優(yōu)先選團(tuán)隊(duì)已經(jīng)在用、或者托管平臺(tái)原生支持的能力。Git 倉(cāng)庫(kù)用 GitHub/GitLab 這些主流平臺(tái)提交規(guī)范用 commitlintPR 靜態(tài)檢查結(jié)果用 reviewdog 自動(dòng)貼評(píng)論文件負(fù)責(zé)人機(jī)制用 CODEOWNERS自動(dòng)化流程用 GitHub Actions 或 GitLab CI。這一套下來(lái)既有商業(yè)工具的體驗(yàn)自動(dòng)檢查、自動(dòng)指派、趨勢(shì)統(tǒng)計(jì)又沒(méi)有一分錢(qián)額外采購(gòu)成本所有配置都以文本文件形式存放在倉(cāng)庫(kù)里可以隨倉(cāng)庫(kù)一起版本化管理。這里要專(zhuān)門(mén)回應(yīng)用一下熱詞里那個(gè)問(wèn)題open code review 開(kāi)源了嗎。這套方案從底層到上層沒(méi)有任何閉源組件——每個(gè)工具都有自己的開(kāi)源倉(cāng)庫(kù)整個(gè)模板配置也完全可以公開(kāi)共享。你甚至不需要信任某個(gè)第三方服務(wù)因?yàn)槿繖z查動(dòng)作都在自己的 CI 環(huán)境里跑token 和日志都是自己控制的。對(duì)很多有合規(guī)要求的團(tuán)隊(duì)來(lái)說(shuō)全開(kāi)源、自托管、可審計(jì)本身就是選它的一個(gè)重要理由。另外一個(gè)很實(shí)際的考量是可復(fù)制性。方案里所有配置都收斂在一個(gè).github目錄里新倉(cāng)庫(kù)只要把整個(gè)目錄復(fù)制過(guò)去再改兩三個(gè)環(huán)境變量就能直接獲得一致的審查流程。團(tuán)隊(duì)里有十個(gè)服務(wù)倉(cāng)庫(kù)這套機(jī)制拷十份規(guī)則完全一致不會(huì)出現(xiàn)這個(gè)倉(cāng)庫(kù)審查嚴(yán)、那個(gè)倉(cāng)庫(kù)走過(guò)場(chǎng)的割裂狀態(tài)。2. 核心機(jī)制拆分機(jī)器干機(jī)器的活人干人的活2.1 審查清單給人工審查提供最小可用上下文open-code-review 最核心的一個(gè)設(shè)計(jì)是把人工審查從打開(kāi) PR 從頭看到尾變成對(duì)照清單逐項(xiàng)確認(rèn)。PR 描述里自動(dòng)生成一份自查清單開(kāi)發(fā)者提交時(shí)必須逐項(xiàng)勾選審查者打開(kāi) PR 就能看到一個(gè)明確的檢查框架。這份清單的設(shè)計(jì)原則是只寫(xiě)人類(lèi)才能判斷的問(wèn)題機(jī)器能查的格式問(wèn)題一個(gè)不寫(xiě)。我目前的模板長(zhǎng)這樣## 變更說(shuō)明 ## 影響范圍涉及哪些模塊、接口、數(shù)據(jù) ## 測(cè)試情況新增/修改了哪些測(cè)試手工驗(yàn)證了哪些場(chǎng)景 ## 自查清單 - [ ] 功能行為與需求描述一致 - [ ] 關(guān)鍵分支、邊界條件、異常路徑已覆蓋 - [ ] 對(duì)外接口與數(shù)據(jù)結(jié)構(gòu)變更已評(píng)估兼容性 - [ ] 并發(fā)訪問(wèn)與事務(wù)邊界已檢查 - [ ] 無(wú)明顯可以預(yù)見(jiàn)的性能退化 - [ ] 日志輸出不包含敏感信息很多團(tuán)隊(duì)會(huì)覺(jué)得清單太簡(jiǎn)單其實(shí)這里有個(gè)很容易犯的錯(cuò)誤把清單做得又長(zhǎng)又細(xì)恨不得把編碼規(guī)范全寫(xiě)進(jìn)去。清單一旦超過(guò)十項(xiàng)開(kāi)發(fā)者就會(huì)條件反射式地全部勾選審查者也不會(huì)真的逐項(xiàng)確認(rèn)它就從檢查工具退化成心理安慰。真正有效的清單必須控制在六到八項(xiàng)而且每一條都對(duì)應(yīng)人類(lèi)特有的判斷力比如邊界條件、兼容性、并發(fā)問(wèn)題。這些條目數(shù)量少、分量重反而能讓審查者快速進(jìn)入狀態(tài)。2.2 提交階段卡口把錯(cuò)誤攔截在離開(kāi)發(fā)者最近的地方代碼審查不應(yīng)該從 PR 才起步而是要從 git commit 那一刻就開(kāi)始介入。open-code-review 在本地提交階段配置了兩道卡口commitlint 規(guī)范提交信息lint-staged 對(duì)暫存區(qū)文件做快速靜態(tài)檢查。commitlint 強(qiáng)制提交信息遵循 Conventional Commits 規(guī)范格式是type(scope): subject比如fix(login): correct token expiry check。為什么要管提交信息因?yàn)樗苯記Q定后續(xù)的 changelog 自動(dòng)生成、關(guān)聯(lián) issue 追蹤、以及 git bisect 定位效率。我的 commitlint 配置是這樣的module.exports { extends: [commitlint/config-conventional], rules: { type-enum: [2, always, [feat, fix, docs, style, refactor, perf, test, chore, revert]], subject-max-length: [2, always, 72], subject-empty: [2, never] } };配合 husky 注冊(cè) pre-commit 和 commit-msg 鉤子開(kāi)發(fā)者提交的那一刻就能得到反饋不需要等 CI 跑完才發(fā)現(xiàn)提交信息寫(xiě)錯(cuò)了。lint-staged 的作用類(lèi)似它只檢查暫存區(qū)里那些即將提交的文件保證不會(huì)因?yàn)閭}(cāng)庫(kù)里歷史遺留的問(wèn)題阻塞當(dāng)前提交。這兩道卡口放在本地是因?yàn)榉答佀俣缺韧七h(yuǎn)端再跑 CI 快了一個(gè)數(shù)量級(jí)人在寫(xiě)代碼的當(dāng)下拿到報(bào)錯(cuò)修改成本幾乎為零。這里有一個(gè)我特別想強(qiáng)調(diào)的實(shí)戰(zhàn)經(jīng)驗(yàn)這兩道卡口只對(duì)新增和修改的代碼生效絕對(duì)不要放在全量代碼庫(kù)上做強(qiáng)制檢查。很多團(tuán)隊(duì)本地跑全量 lint結(jié)果倉(cāng)庫(kù)里有一堆歷史技術(shù)債新人也跑不過(guò)第一反應(yīng)就是--no-verify跳過(guò)鉤子??谝坏┠鼙惠p易繞過(guò)整個(gè)機(jī)制就失去了意義。寧可先只檢查 diff 范圍等團(tuán)隊(duì)對(duì)規(guī)則適應(yīng)了再逐步擴(kuò)大檢查面。2.3 MR 階段自動(dòng)化讓 lint 結(jié)果出現(xiàn)在該出現(xiàn)的位置本地卡口只能攔截低級(jí)錯(cuò)誤真正能讓審查效率產(chǎn)生質(zhì)變的是 MR 階段的自動(dòng)化檢查在正確的位置輸出正確的結(jié)果。這里我最推薦的組合是 reviewdog 加托管平臺(tái)的 CI。reviewdog 的核心能力是把各種 linter 的輸出解析成 diff 行級(jí)評(píng)論貼在對(duì)應(yīng)的代碼行下面而不是在 CI 日志里刷一屏 summary。審查者打開(kāi) PR點(diǎn)開(kāi) Conversation 標(biāo)簽頁(yè)就能看到類(lèi)似這里有一處空指針風(fēng)險(xiǎn)這樣的評(píng)論錨定在具體代碼行上。這種體驗(yàn)跟在 GitHub/GitLab 網(wǎng)頁(yè)上人工評(píng)論幾乎一樣但內(nèi)容是機(jī)器自動(dòng)生成的。我用的 reviewdog 配置大致如下runner: eslint: cmd: npx eslint --format checkstyle ${reviewdog_flags} errorformat: - %f:%l:%c: %m level: error reporter: github-pr-review這里有個(gè)細(xì)節(jié)level: error表示只有 error 級(jí)別的 lint 問(wèn)題才會(huì)被貼到 PR 評(píng)論里warning 級(jí)別只進(jìn) summary。為什么因?yàn)槿绻?warning 都上評(píng)論P(yáng)R 會(huì)被刷得密密麻麻核心問(wèn)題反而被淹沒(méi)。機(jī)器評(píng)論也要有節(jié)制抓到真正的硬錯(cuò)誤就夠了。還要配套 CODEOWNERS 自動(dòng)指派。規(guī)則文件長(zhǎng)這樣# 核心流程模塊需要模塊負(fù)責(zé)人確認(rèn) src/core/ alice bob # 數(shù)據(jù)庫(kù)遷移文件必須過(guò)架構(gòu)師 db/migrations/ carol # 前端組件改動(dòng)過(guò)前端負(fù)責(zé)人 src/components/ david審查的第一步永遠(yuǎn)是找到對(duì)的人。CODEOWNERS 的價(jià)值在于把指派規(guī)則固化到文件里任何倉(cāng)庫(kù)只要改了對(duì)應(yīng)目錄系統(tǒng)自動(dòng)把人拉進(jìn)來(lái)省去了人工指定 reviewer 的溝通成本也避免了臨時(shí)隨手拉個(gè)人導(dǎo)致審查質(zhì)量不可控的問(wèn)題。2.4 審查邊界自動(dòng)化終于開(kāi)始的地方自動(dòng)化并不能覆蓋所有問(wèn)題這一點(diǎn)必須明確。我在設(shè)計(jì)的時(shí)候把檢查分成了三層第一層是格式與靜態(tài)規(guī)則機(jī)器自動(dòng)查第二層是單測(cè)與構(gòu)建驗(yàn)證CI 自動(dòng)跑第三層是架構(gòu)合理性、業(yè)務(wù)邏輯、邊界條件、擴(kuò)展性這些只能靠人。open-code-review 里的所有自動(dòng)化配置目標(biāo)都是壓縮第一層和第二層的消耗把人的精力和注意力集中到第三層上。很多團(tuán)隊(duì)翻車(chē)的點(diǎn)在于把自動(dòng)化工具當(dāng)作審查的全部lint 通過(guò)就合并導(dǎo)致代碼雖然格式統(tǒng)一但架構(gòu)腐爛得悄無(wú)聲息。我在推行這套方案時(shí)反復(fù)和團(tuán)隊(duì)強(qiáng)調(diào)tool review 從不等同于 human review自動(dòng)化環(huán)節(jié)是守門(mén)員不是裁判。守住低質(zhì)量的球最終判斷還是要交給人來(lái)下。3. 實(shí)操過(guò)程把 open-code-review 跑起來(lái)3.1 倉(cāng)庫(kù)初始化與目錄結(jié)構(gòu)整套方案落地不需要安裝任何獨(dú)立服務(wù)所有配置都放在倉(cāng)庫(kù)里。我習(xí)慣在模板倉(cāng)庫(kù)里維護(hù)這樣一個(gè)目錄結(jié)構(gòu).github/ ├── workflows/ │ └── review.yml ├── reviewdog.yml ├── CODEOWNERS └── PULL_REQUEST_TEMPLATE.md commitlint.config.js .husky/ ├── commit-msg └── pre-commit模板倉(cāng)庫(kù)本身也是一個(gè)普通 Git 倉(cāng)庫(kù)團(tuán)隊(duì)內(nèi)所有服務(wù)倉(cāng)庫(kù)都可以把這個(gè)目錄作為一個(gè)分支拉過(guò)去或者直接復(fù)制。這里要注意.github/PULL_REQUEST_TEMPLATE.md必須放在這個(gè)位置GitHub 才會(huì)在創(chuàng)建 PR 時(shí)自動(dòng)加載模板。GitLab 的 MR 模板路徑略有不同但原理一致。3.2 逐個(gè)文件配置與參數(shù)選擇先看 CI 工作流的核心文件.github/workflows/review.ymlname: code-review on: pull_request_target: types: [opened, synchronize, reopened] permissions: contents: read pull-requests: write jobs: review: runs-on: ubuntu-latest steps: - uses: actions/checkoutv4 - uses: actions/setup-nodev4 with: node-version: 20 - run: npm ci - uses: reviewdog/action-eslintv1 with: github_token: ${{ secrets.GITHUB_TOKEN }} reporter: github-pr-review level: warning filter_mode: diff_context逐個(gè)拆解這里面的關(guān)鍵參數(shù)。pull_request_target和pull_request的區(qū)別是前者使用目標(biāo)分支的代碼來(lái)跑工作流token 權(quán)限更大。對(duì)于 reviewdog 這種需要把評(píng)論寫(xiě)回 PR 的使用場(chǎng)景只能用pull_request_target。但要注意安全隱患工作流里不要直接執(zhí)行未經(jīng)審查的 PR 代碼如果需要裝依賴要在安全沙箱環(huán)境里做。filter_mode: diff_context表示只報(bào)告 diff 范圍內(nèi)及其上下文幾行的問(wèn)題這樣舊代碼里的歷史問(wèn)題不會(huì)被新 PR 觸發(fā)避免噪音。level: warning的意思是 warning 和 error 都會(huì)反饋給 PR但因?yàn)榍懊媾渲昧?reviewdog.yml 里的 level 設(shè)置最終評(píng)論閾值以兩者結(jié)合為準(zhǔn)。實(shí)踐經(jīng)驗(yàn)是新團(tuán)隊(duì)剛推行時(shí)可以把 level 設(shè)成 error等到大家習(xí)慣后再放寬到 warning。permissions字段也很重要。它遵循最小權(quán)限原則只給pull-requests: write其余全部只讀。不要貪圖方便把權(quán)限放開(kāi)審查機(jī)器人只需要寫(xiě)評(píng)論和讀代碼的能力給多了反而是風(fēng)險(xiǎn)敞口。接下來(lái)是 CODEOWNERS 的配置策略。文件路徑寫(xiě)規(guī)則時(shí)越具體的規(guī)則優(yōu)先級(jí)越高。我一般按模塊重要程度分層核心庫(kù)代碼、數(shù)據(jù)庫(kù)遷移、密鑰相關(guān)邏輯、支付相關(guān)邏輯都配置兩個(gè)以上 owner普通業(yè)務(wù)頁(yè)面只配一個(gè) owner。這里有一個(gè)可量化的經(jīng)驗(yàn)每個(gè)被標(biāo)記的目錄owner 至少兩人避免單個(gè)維護(hù)者休假時(shí)審查阻塞。3.3 審查人數(shù)、PR 大小與超時(shí)提醒的策略計(jì)算很多團(tuán)隊(duì)糾結(jié)代碼審查到底幾個(gè)人看才夠其實(shí)答案取決于改動(dòng)風(fēng)險(xiǎn)等級(jí)。我給 open-code-review 定的默認(rèn)策略是常規(guī) PR 至少一個(gè)非作者 reviewer 批準(zhǔn)涉及db/migrations/、src/core/、或超過(guò) 600 行變更的 PR必須兩個(gè) owner 或 owner 加架構(gòu)師共同批準(zhǔn)。為什么取 600 行這是很多研究里提到的認(rèn)知負(fù)荷臨界點(diǎn)——超過(guò)這個(gè)規(guī)模的 diff審查者很難保持全程注意力容易被局部細(xì)節(jié)帶偏忽略整體設(shè)計(jì)問(wèn)題。PR 拆分的參考原則我可以直接給到單個(gè) PR 的改動(dòng)文件控制在 10 個(gè)以內(nèi)改動(dòng)行數(shù)盡量控制在 400 到 600 行之間重構(gòu)類(lèi)改動(dòng)要額外拆分把遷移性重構(gòu)和新功能開(kāi)發(fā)分兩個(gè) PR 提交。這個(gè)數(shù)字不是拍腦袋定的配合分支策略可以直觀感受如果一次功能開(kāi)發(fā)是一個(gè)大 PR說(shuō)明分支粒度不對(duì)應(yīng)該讓 feature 分支按可獨(dú)立驗(yàn)收的子任務(wù)拆分。超時(shí)提醒也非常有必要。工作流里可以加一個(gè)獨(dú)立 job用 cron 定時(shí)掃描所有處于 pending review 狀態(tài)的 PR超過(guò) 24 小時(shí)就在指定頻道里催辦。這個(gè)能力用 GitHub Actions 的 schedule 事件就能做代碼量不大但對(duì)流程剛性的幫助非常明顯——它把有人忘了審從一個(gè)可被忽略的偶發(fā)現(xiàn)象變成一個(gè)每天自動(dòng)暴露的指標(biāo)。3.4 度量與復(fù)盤(pán)用數(shù)據(jù)看審查是否真的變好了open-code-review 的最后一塊拼圖是度量。沒(méi)有數(shù)據(jù)你就無(wú)法回答這套方案是否有效。我建議每?jī)芍芾淮蝹}(cāng)庫(kù)數(shù)據(jù)統(tǒng)計(jì)四個(gè)核心指標(biāo)從 PR 創(chuàng)建到首次 review 評(píng)論的時(shí)間反映響應(yīng)速度從首次 review 到合并的時(shí)間反映討論收斂速度每個(gè) PR 的評(píng)論條數(shù)反映討論深度太少說(shuō)明沒(méi)人認(rèn)真看被退回修改的 PR 占比反映前置質(zhì)量把關(guān)情況拉取 GitHub 數(shù)據(jù)用官方 CLI 就能完成。大致命令是這樣的gh pr list --repo your-org/your-repo --state merged --limit 50 \ --json number,createdAt,mergedAt,reviews \ --jq .[] | {num: .number, firstReviewAt: .reviews[0].submittedAt, createdAt, mergedAt}拿到數(shù)據(jù)后最值得關(guān)注的是響應(yīng)速度。如果 PR 創(chuàng)建后 24 小時(shí)內(nèi)沒(méi)有第一個(gè) review 評(píng)論說(shuō)明審查者沒(méi)有及時(shí)介入。這時(shí)候不要急著怪人要檢查指派規(guī)則是不是有漏洞比如 CODEOWNERS 沒(méi)覆蓋到新加的目錄或者負(fù)責(zé)人沒(méi)有收到通知。數(shù)據(jù)是用來(lái)定位流程問(wèn)題的不是用來(lái)追責(zé)的這個(gè)觀念一定得先立住。4. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄4.1 reviewdog 不評(píng)論了怎么辦這是推行過(guò)程中被問(wèn)得最多的問(wèn)題。reviewdog 明明跑完了PR 里卻看不到一條評(píng)論。排查順序我建議固定為第一步看 Actions 日志里 reviewdog 的輸出確認(rèn)它是否確實(shí)解析到了 lint 結(jié)果第二步確認(rèn) reporter 是不是github-pr-review寫(xiě)成了github-check就只會(huì)出現(xiàn)在 Checks 頁(yè)面不會(huì)出現(xiàn)在 Conversation第三步檢查filter_mode如果是filter_mode: file且 PR 改動(dòng)較少可能沒(méi)有匹配行最后看 GITHUB_TOKEN 權(quán)限contents: read是不夠?qū)懺u(píng)論的必須給pull-requests: write。4.2 PR 模板不生效或清單被批量勾選PR 模板不生效通常是因?yàn)槁窂讲粚?duì)GitHub 識(shí)別的是.github/PULL_REQUEST_TEMPLATE.md路徑錯(cuò)一個(gè)字符都沒(méi)戲。但比模板不生效更常見(jiàn)的問(wèn)題是清單被形式化開(kāi)發(fā)者創(chuàng)建 PR 時(shí)把所有 checkbox 一鍵勾掉審查者也不看。我的處理辦法是在清單底部加一行聲明我已逐項(xiàng)確認(rèn)上述條目并對(duì)遺漏項(xiàng)負(fù)責(zé)同時(shí)把清單勾選情況接入 CI——用一個(gè)腳本檢查 PR 描述里是否還有未勾選的自查項(xiàng)有就不能合并。4.3 團(tuán)隊(duì)抵觸強(qiáng)制審查怎么辦技術(shù)方案永遠(yuǎn)好辦人的問(wèn)題才難。我推行這套流程時(shí)也遇到過(guò)抵觸核心原因是大家覺(jué)得被強(qiáng)制審查是一種不信任。后來(lái)我改了一個(gè)做法先從核心模塊和數(shù)據(jù)庫(kù)遷移這類(lèi)高風(fēng)險(xiǎn)文件做強(qiáng)制 owner 審查其他代碼先保持建議審查等團(tuán)隊(duì)嘗到了甜頭——比如線上事故變少、回滾幾乎消失——再逐步擴(kuò)大強(qiáng)制范圍。同時(shí)leader 的 PR 也要走同一套流程而且?guī)ь^被機(jī)器評(píng)論和同事提意見(jiàn)這個(gè)示范作用比任何制度都管用。4.4 高頻問(wèn)題速查表整理了一份我在多個(gè)團(tuán)隊(duì)答疑時(shí)反復(fù)用到的高頻問(wèn)題表建議收藏問(wèn)題現(xiàn)象可能原因解決方法reviewdog 不貼評(píng)論token 缺少pull-requests: write權(quán)限檢查 workflow 的permissions字段評(píng)論全部集中在 summary沒(méi)有行級(jí)評(píng)論reporter 配錯(cuò)或 filter 模式過(guò)窄改github-pr-review把filter_mode調(diào)整為diff_context提交信息總是被 commitlint 攔下團(tuán)隊(duì)對(duì)規(guī)范不熟在 README 里附常用 type 示例并給docs、chore多留容錯(cuò)空間PR 在周五掛到下周沒(méi)人看指派規(guī)則遺漏或負(fù)責(zé)人臨時(shí)缺席設(shè)置 24 小時(shí)自動(dòng)催辦并在 CODEOWNERS 中為每個(gè)模塊配置備用 ownerlint 檢查被--no-verify繞過(guò)歷史技術(shù)債太重全量檢查跑不過(guò)只檢查 diff 范圍先保增量質(zhì)量再逐步清理存量審查意見(jiàn)集中在格式缺少業(yè)務(wù)深度清單里沒(méi)有引導(dǎo)業(yè)務(wù)視角的問(wèn)題在 PR 模板里增加影響范圍邊界條件等強(qiáng)提示項(xiàng)4.5 幾個(gè)值得長(zhǎng)期堅(jiān)持的細(xì)節(jié)習(xí)慣最后分享幾個(gè)不在配置文件里、但對(duì)流程質(zhì)量影響很大的細(xì)節(jié)習(xí)慣。第一個(gè)是審查者不要點(diǎn)全局 diff 慢慢劃要按提交順序逐個(gè) commit 看每一個(gè) commit 都是獨(dú)立的邏輯單元這樣定位問(wèn)題更精準(zhǔn)。第二個(gè)是發(fā)現(xiàn)小問(wèn)題不要立刻打斷作者把評(píng)論攢起來(lái)統(tǒng)一發(fā)減少作者來(lái)回切上下文的次數(shù)可以在評(píng)論里標(biāo)注這個(gè)可以放到后續(xù) PR 處理和這個(gè)必須本次修改兩類(lèi)。第三個(gè)是每月做一次代碼評(píng)審復(fù)盤(pán)會(huì)把當(dāng)月最典型的幾個(gè) review 案例拿出來(lái)講讓大家明白為什么這里當(dāng)時(shí)應(yīng)該被攔住這種案例式學(xué)習(xí)比抽象講解有效得多。根據(jù)我個(gè)人的實(shí)操體會(huì)open-code-review 這套方案真正起作用靠的不是某個(gè)工具的魔法而是把流程中可以被自動(dòng)化、被固化的部分全部先固化下來(lái)讓人工審查的精力集中在最有價(jià)值的地方。如果你團(tuán)隊(duì)現(xiàn)在正處于審查形同虛設(shè)的階段我非常建議先別急著鋪開(kāi)全部機(jī)制選一個(gè)核心倉(cāng)庫(kù)把提交規(guī)范、PR 模板、行級(jí)評(píng)論這三件事先跑起來(lái)等習(xí)慣養(yǎng)成后再逐步加 CODEOWNERS 和審查度量。流程設(shè)計(jì)永遠(yuǎn)要順勢(shì)而為一次只改變一個(gè)變量才最容易讓人接受并堅(jiān)持下去。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
激情五月影院| www.色五月天.com| 久久婷婷网址| 久久久性爱视频| www.91.com处女在线直播| 色婷插| 亚洲成人电影aaaa| 这里只有精品亚洲| 综合激情sV| 狠狠穞A片一區二區三區| 能直接看的AV网站| 天天做天天爱天天爽夜夜揉| 激情五月份婷婷| 欧美25p| 激情综合亚洲色婷婷五月| 九九色院| 丁香五月婷婷操逼| 99精品国产在热久久| 五月婷婷AV| 亚洲综合色网站| 色婷婷啪啪| 久久久中文| 无码色色| 精品亚洲VA网站| 色播婷婷大香蕉| 婷婷九九色| 丁香桃色网| 久久偷拍综合五月天| 成人在线日韩| 青青草原亚洲天堂| 超碰免费大香蕉| ai97re99一本| 超碰成人黄色网| 九色自拍| 激情综合色网| 天天噜噜| 婷婷综合网| 亚洲男女激情| 色五月婷婷丁香婷婷| 香蕉久久六月| 婷婷六月色开| 五月久久五月激情| 精品色情一区二区三区四区| 丁香香五月激情免费视频| Aα在线免费观看| 超碰v| 伊人久久婷婷| 久久er99热精品一区二区| av狠狠操| 久久婷婷五月天激情| 丁香色播五月天| 久久99久久99久久99人受| 《久久综合九色综合97婷婷| 91ncm视频| av一区二区电影免费在线观看| 丁香五月偷拍| 国产成人精品亚洲线观看| 久久婷婷亚洲五月天| 色五月婷婷婷婷婷婷婷婷婷婷| 婷婷 丁香 久久| 婷婷综合仓库中文| 日本9区视频| 婷婷欠久少妇| 丁香五月婷婷综合91| 999热视频精品99免费在线| 大香蕉九九| 国产亚洲色婷婷久久99精品91| 精品久久66| 26uuu亚洲欧美| 天天爽,天天操。| 免费99情趣网视频| 男人的天堂五月丁香| 色五月成人在线| 色插综合网| 激情精品久久| 色婷婷视频在线| 亚洲五月花| 激情五月色播五月| 夜夜夜夜夜操| 久久曰曰| 影院久久久| 色婷婷激情五月天| 国产1区2区3区在线观| 久久99热这里只有精品首| 九九热这里只有精品556| 无码色色色色色| 狠狠色丁香久久久婷| 婷婷五月天少妇| 亚洲 五月 婷婷 成人| 好色婷婷| 色综合天天天天做夜夜| 婷婷丁香五月网| 天天爽天天爽| 国产FREESEXVIDEOS性中国| 极品另类| 五月婷婷深深爱| 婷婷色色欧美| 自拍视频在线观看9| 99操逼| 丁香六月婷婷久久综合| 久久婷婷激情| 日本高清不卡免费一区二区三区| 九色91视频| 韩国久久少妇视屏| 人人操人人妻| 五月天久久丁香| 五月天久久婷婷| 综合色久| av一区二区电影免费在线观看| 热婷婷在线视频| 神马欧美精| 丁香五月精品视频| 亚洲视频色婷婷| 五月激情婷婷丁香天堂| 狠狠色婷婷7| 五月天婷婷丁香蜜桃91| 婷婷九月激情| 欧美黄色一级| 青青热久久综合| 色日本网| 极品人妻VIDEOSSS人妻| 97碰碰在线看视频免费| 91久久婷婷人人澡草| 日韩av在线电影| 99精品在线| 人妻在线网站| 天天五月香欧美| 激情综合网亚洲色图| 亚洲另类日本| 人人操9| 五月婷婷三级| 色色色色色综合| 亚洲激情综合| 六月婷婷七月丁香| 激情综合色播| 久久婷婷五月天激情新地址| 亚洲精品乱码久久久久久按摩观| 成人AV中文字幕| 亚洲亚洲人成综合网络| 日韩无码成人电影| 六月婷婷综合| 日韩有码一区| 狠色狠色综合久久| 无码91中文字幕| 九九综合色综合| 99热这里只有精品1998| 国产精自产拍久久久久久蜜| 九九热这里只有精品556| 色色热| 天天日,天天干,天天操| 色情久久久| 亚洲瑟瑟精品在线| 国产精品成人在线| 婷婷综合五月| 99ri国产在线| 毛片新网地| 操射国产日本| 丁香五月婷婷激情中文| 五月天六月婷| 麻豆123区| xx色综合| 精品一二三区久久AAA片| 91人人操.COM| 五月香婷婷| 99人人操| 九艹在线| 婷婷午夜激情| 九九免费视频| 久久九九99| 激情六月天| 中文字幕人妻AV| 99色在线观看| 好叼操在线观看| 婷婷开心青青草| 九九热99热| 97人妻碰碰碰久久香蕉| 九九黄色网| 97视频.干com| 色色日本| 狠狠干天天内射| 婷婷性爱| 色噜噜,噜噜色| 99精彩视频| www99热| 欧美五月婷婷| 丁香午夜天| 国产综合视频婷婷| 中文字幕在线日亚洲9| 中文字幕黄色片| 亚洲综合色色| 婷婷99狠狠| 91超级碰| 天天激情视频| 五月天激情色色| 久久精品视频9| 日都一级A片| 国产va视频| 99视频在线播放大全| 九九RE视频在线精品| 日本综合色色| 欧美成人AAA片一区国产精品| 色五月激情综合网| 国精产品一区一区三区免费视频| www.99成人视频| 丁香五月婷婷高清| 色婷婷亚洲| 日韩不卡DvD| 26uuu欧美日本| 97色婷婷在线观看| 欧美成人va| 久久五月激情网| 逼特逼在线免费播放| www.91有码.com| 精品人妻伦一二三区久久| 久久五月天影院| 色五月播五月| 婷婷色色狠狠| 天久综合91综合首页| 无码 色| 极品九九九九九九| 久久综合丁香| 一二三区视频韩国| 国产精品电影网| 五月丁香怕啪啪| 欧美大片免费播放器| 伊人9999| 综合网色| 黄页免费一级视频懂色| 久久性爱视频网站| 婷婷五月丁香六月综合网| 激情性爱五月| 久在线88综合| 激情色色色| 99爱在线视频观看| 五婷婷六月合| 色五月天丁香| 一区二区三区四区牛| 五月婷婷天| 天天日天天干天天插天天射| 欧美婷婷六月丁香综合色连续高潮抽搐| 淫五月停停| www.超碰在线| 亚洲VA口| 婷婷五月六月丁香综合| 99热思思在线观看| 色色综合网站| 六月婷久久| 日韩野外 无套| 九九99免费视频| 婷婷五月天资源| 色区久久| 国产脫衣舞一区二区三区| 日韩中文字幕| 91丨九色丨大屁股| 99热这里只有精品66| 久久亚洲激情五码| 人人舔天天| 成人深爱丁香五月| 91热久久| A片试看50分钟做受视频| 黄色五月婷婷| 日本色色网站| 成年人丁香五月| 五月丁香六月停停| 久久成人综合五月天| 9久视频| 99九精品| 99超碰在线观看| AV片在线观看| 97人人操人人拍| 国产成人精品一区二三区熟女在线| 另类专区在线| 九月丁香亭亭| 91久久久久久| 九九99久久| 久久伦乱| 五月色婷婷影院| 色婷婷亚洲在线观看| 久草热8精品视频在线观看 | 婷婷五月激情中文字幕| 丁香五月播播| 六月 丁香 视频| 激情综合色婷婷啪啪六月天| 天天日日夜夜| 99玖玖在线视频| 婷婷婷婷婷婷婷婷| 九九99热| 99啪啪视频| 97精品自拍| 神马欧美精| 另类激情中文| 色老久久| 色色色综合网| 六月丁香久久| AA片在线观看视频在线播放| 丁香五月天操B| 日韩在线观看网址| 在线亚洲综合| 五月天婷婷色色网| 99热网站| 五月婷婷久久开心网| 99热这里只有精品98| 综合丁香婷婷五月天| 丁香婷婷久久 | 久久婷婷免费| 婷婷色五月天色| 91疯狂操操操操| 色吊丝永久访问网址| 99热国产婷婷| 超碰成人电影| 五月丁香婷色| www,婷婷| 99re热在线视频| 天天爽夜夜操| 色婷婷综合视频| 这里只有精品无码| 涩五月婷婷| 五月婷婷色播| 999热这里只有美国精品| 丁香五月婷婷影视先锋| 99热综合在线| 色色婷五月天| 久久久久久人妻久久久久久久久久人妻久久久| 日日夜夜干| 玖玖综合网| www.操.com| 中文字幕乱码亚洲精品一区| 狠狠色大香蕉| 久久五月视频| 99re这里只有精品视频了| 九九视频在线观看| 激情丁香五月| 五月天激情日色在线| 91丨九色熟女丨首页| 97福利视频| 天天舔天天摸天天射| 五月天电影网| 91九色精品熟女内射| 国产精品久久久久久久久久久久| 91大神在线免费看视频全集男男一起操| 超碰97干| 桃色激情婷婷伊人网| 色五月丁香六月欧美综合| 九色自拍| 26uuu色五月| 久艹大香蕉| 婷婷狠狠久久| 日本激情91| 五月综合色| 一区二区传媒视频| 色综合久久88色综合天天人守婷| 丁香六月激情| www.开心激情| 丁香五月天视频| 青青久久五月天丁香婷婷| 九九热99视频| WWW.婷婷| 国产免费性爱| 亚洲夜五月| 日本天天色| www.色综合| 久热视频97AV在线观看| 丁香五月花婷婷开心| 中文字幕色色| 极品人妻VIDEOSSS人妻| 五月丁香激情综合网| 人妻操在线看| 中文字幕成人| 欧美综合123区| 操操操操操电影网| 国产这里只有精品| 91黄址| 五月丁香AV在线| 成人丁香五月| 婷婷爱五月| 操嫩逼电影| 91色色色| 日本久久精品18| 爱婷婷五月| 丁香五月婷婷啪啪| 天天爽成人综合网站| 亚洲成人网站在线播放| 成人片在线免费看| 天天日,天天射,天天舔| .青娱乐天天操B| 五月丁香猫咪久久婷婷综合视频激情四射网入口 | 97精品自拍| 五月草影视| 777米奇影视第四色| 九九色精品| 五月天最新网| 色婷婷AV久久| 丁香美女主播视频在线观看| 五月丁香婷婷潮喷中文字幕| 中文字幕精品无码一区二区| 99热在这里只有免费精品| 国产亚洲色婷婷久久99精品91| 色色婷婷婷丁香五月天| 九九99视频| 丰满少妇猛烈A片免费看观看| 日韩欧美一级大黄网站| 婷婷综合五月| 天搞天天天天天| 综合久久97| www.99热在线| 蜜臀av粉嫩av懂色av| 日韩婷婷五月天| 国产裸舞福利资源在线视频| 色情五月综合婷婷| 色综合色色| 黄色五月婷婷| 婷婷丁香成人| 色五月激情婷婷| 狠狠爱综合| 男人天堂99| 日韩色五月| 激情图片久久| 五月婷婷性爱| 久/久精品99看9| 人妻射精AV| 狠狠插狠狠操| 丁香五月另类小说在线阅读| 成人午夜天| 五月丁香婷婷激情| 婷婷成人av| 五月天色婷婷成人| 亚洲成人网站在线| 久激情网| 久热这里只有精品在线观看 | 五月丁香激情婷婷综合| 天天操天天插天天射| 久久久人妻系列| 五月天丁香看婷婷| 9|无码久久久久久| 99无码免费视频| 免费看欧美成人A片无码| 99re26视频| 亚洲第一成人AV| 99视频在线精品免费观看2| 久久人视频| 免费看成人747474九号视频在线观看| 激情av| 夜夜爽天天爽| 婷婷激情五月天在线| 久久久久久久久久婷婷| 亚洲综合成人网| 亚洲中文丁香| 91久久18| 99热在线精品观看| 婷婷伊人久久综合| 99ri国产在线| 日韩AV无码影片| 最新丁香六月婷婷| 天天性视频| 国产午夜成人AV在线播放| 九九精品在线网| 天天操五月天| 五月综合色| www.sezonghe| 人妻久热| 无码视频国内精品久久久| 五月婷婷中文字幕| 天天舔天天插天天爱| 香蕉影院色| 五月丁香婷草| 呦呦AV| 婷婷五月18永久免费网站| 久久综合干| 欧美毛片www| 极品另类| 综合欧美五月婷婷| 久久人操| 99爱在线观看视频| 五月丁香综合网色欲| 亚洲一二三网| 91久久婷婷| 婷婷五月天精品| 秋霞免费三级片| 九九99热精品| 日本猛少妇色XXXXX猛叫| 超碰人人妻| 丁香五月电影| 日韩淑女人妻luan伦激情精品一区二| 深爱五月天 开心网| 噜噜色五月| 亚洲亚洲人成综合网络| 久久婷婷国产| 五月停停激情网| 色噜噜狠狠色综| 极品五月天| 人妻中文在线| 色综合婷婷| 色情综合网| 久久99热这里| 久久性爱视频| 色婷另类| 色五月色五天色情网址| 亚洲字幕AV一区二区三区四区| 久久婷狠狠色| 99乱视频| 99成人精品视频| 婷婷久久五月天亚洲欧美国产日韩在线观看 | 五月天亚洲综合网| 五月综合婷婷久久在线| WWW色综合| 99热碰碰热| 最新日韩AV中文字幕| 成人丁香五月| 色香欲综合| 日韩在线99| 精a品a| 热久久国产视频| 婷婷五月天视| 五月天色播网| 丁香五月亚洲激情婷婷射| 久久日韩婷婷五月| 另类图片五月激情| 综合另类激情| 天天综合在线网| 亚洲操逼片| 色播五月网| 色婷婷成人色网| 色婷婷综合成人| 国产精品电影网| AV伊人青草丁香六月| 三男玩一女三A片| 婷婷伊人中文字幕| 久久人人人人妻| 日韩免费视频| 99re鈥哸鈥唙| 五月婷婷免费视频| 密乳Va| 欧美性生交xXxX久久久| 99热99天堂| 99热主页日本| 久久小说| 99热久久日本| 狠狠操天天干| EEUSS鲁片一区二区三区| 亚洲色色图片| 男人的天堂av俄罗斯热| 六月久久狠狠| wWwCom夜操wwW| 青柠影视免费高清电视剧| 国产无套精品一区二区| 人人操插| 丁香五月激情视频在线| 97AV人人插人人操| 99精品自拍视频| 97干视频在线| 精品综合爱| 十区AV| 伊人婷婷五月天av| 天天久综合网永久入口17v| 99久久97久久欧美综合网| 久热99视频在线观看| 国产首页在线| 色婷婷先锋| 日本3级片偷拍网站| 九九热AV| 九热免费视频| 久久精彩免费视频| 婷婷五月天国产传媒| 成人国产综合| 色欲天天综合网| 色噜噜伊人| 亚洲V国产V欧美V久久久久久| 青青草成人网| 激情欧美五月丁香| 亚洲欧美日韩VIP| 久久日婷婷| 五月丁香激情综合啪啪| 99色色| www.91.com黄| 202丰满熟女妇大| 国产免费av网站| 激情六月婷婷| 五月婷婷久久大香蕉| 91一起艹| 五月黄色婷婷| 偷偷操99| 亚洲热综合| 亚洲五月丁香六月婷婷| 狼人狠狠操| 骚。com| 五月丁香综合影院| 天天射影| 久久婷婷免费| 4399在线日本A片| 欧美性丁香色色五月天综合爱爱| 婷婷深爱五月丁香| 无码 av电影| 亚洲精品午夜国产va久久成人| 五月丁香六月激情综合| 久久婷婷视频| 99re思思热在线视频| 国产精品久久久久久亚洲毛片| 影音先锋一区| 99在线精品免费视频| 天堂网亚洲色图| 日韩成人电影av| 激情com| 婷婷五月AV| 色色99| 亚洲无码你懂的| 国产精品美女| 五月开心婷婷| 狠狠爱婷婷爱| 色色网站毛片| 五月丁香日本一抹本| 九九爱看亚洲| 亚洲色色图片| 狠狠操天天干| 成人无码中文| 国产日批视频| 狠狠色狠狠操| 色五月欧美| se色婷婷视频| 色五月丁香总合网| 免费观看的婷婷五月视频在线| 婷婷性爱| 五月丁香婷婷基地| 婷婷五月花西瓜| 丁香六月婷婷综情欧美| 丁香五月人妻| 色五月开心五月激情五月| 91爱啪啪| 99九九热视频| 91精品国产色猫| 丁香六月婷婷综合网| 婷婷的99视频网站| 激情亭亭五月| 五月天另类小说| 91男人操女人视频| 一區四區歐美日韓| 亚洲综合五月天| 日本99在线视频| 婷婷婷婷婷开心无码播放| 粉嫩AV久久一区二区三区| 五月婷婷黄色| 天堂久久精品| 婷婷99中文字幕| 国产日韩欧美性爱| 9热久久在线| 激情婷婷五月基地| 色五月婷婷在线观看第一页舔| 日日噜人人人做人| 九九AV| 激情四射婷婷| 亚洲综合视频在线| 中文激情网| 五月丁香91| 国产1区2区3区| 182TV大香蕉| 色婷婷91| 91综合色| 欧洲亚洲免费视频9| 伊人网啪啪| 琪琪色热色色| 97碰| 五月天婷婷色色| 久久亚洲婷婷| 伊人99热| 九九黄色网| 开心久久xxx色| 五月天婷婷成人网| 婷婷五月激情六月丁香| 成人做爰A片免费看视频| 人人舔人人色人人高潮| 超碰在线免费观看日韩| 99热99re6国产在线播放| 色色色色av777| 色婷婷a v| 欧美人久久| 九热视频| 伍月婷婷免费视频| 9久热精品在线视频| 五月婷婷狠狠干| 极品嫩草| 六月色播| 在线va网站| 久99999热视频在线观看免费| 天天干天天 亚洲| 天天日日| 婷婷久久五月天丁香| 51成人| 久久机热/这里只有精品| 六月99天天婷婷激情综合| 久久五月婷| 思思热再线视频| 色综合播放| 99玖玖在线视频| 精品视频这里只有精品| 色狠狠色综合久久久绯色aⅴ影视| 99热只有这里才是精品| 4399高清无码视频| 99re8在这里只有精品| 狠狠狠狠狠狠狠狠狠狠狠色宗合图片| 久久涩视频| www.夜夜操| 日本综合久| 日本黄 色 片| 欧洲一区二区| 亚洲XX日本| www.91在线看| 色色婷婷丁香| 久久婷婷五月综合伊人| 精品在线网站| 色www久视频| 久草大| 97在线/亚洲| 日本人妻伦在线中文字幕| 色婷在线视频| 99在线精品观看99| 精a品a| 五月丁香六月在线欧美| 婷婷中文综合网| 婷婷九月色| 亚洲免费99| 婷婷久久五月| 婷婷综合干| 日日撸夜夜操| 亚洲欧洲中文日韩久久AV乱码| 久久久久这里都是精品| 久草婷婷视频| 国产又爽又猛又粗的视频A片| 五月天激情综合| 婷婷丁香午夜综合影视| 99狠狠操一| 97超碰,人人舔,人人操,人人摸| 碰97久久| 狠狠插日日干撸| 草综合网| 五月丁香综合影院| 91夫妻视频| 色色色色色色网站| 六月婷婷视频| 欧美激情综合色综合| 久久只有这里精品免费| 久久加勒比| 成人网在线观看视频| 99自拍视频在线观看| 操人妻视频91| 五月丁香六月合| 青草网在线观看| 人妻激情视频| 婷婷五月天av小说| 欧美搡BBBBB摔BBBBB| 99操视频| 丁香六月婷婷综合| 亚洲六月色| 99在线视频在线观看| 久久精品爱爱| 99热老司机| 操人精品| 9久热在线精品| 亚洲六月色| 日本欧美成人片AAAA| www99热| 亚洲婷婷五月| 九九视频在线| 激情综合激情五月一起草| 天天舔天天| 亚洲久久视频| 丁香色情五月天| 色色综合色视频| 亚洲激情久久| 在线中文av| 99九九热在线观看| 在线观看免费狠狠色丁香香综合| 狠狠色婷婷777| 五月天五月婷五月激情网| 99r久久这里只有精品| av九九| 亚洲综合视频在线| 成人精品人妻| 久久资源网五月婷| Av九九| 国产综合视频婷婷| 久操综合| 久碰久操| 婷婷五月天成人网| 99色视频| 综合天天综合| 开心婷婷五月天电影院| 天天色综合色| 人妻在线中文字幕久久| SS丁香五月婷婷| 五月天伊人手机在线播放AV| 婷婷丁香五月天中文字幕| 久久精品永久免费| 69色色视频| 色色色成人网| 日本欧美成人片AAAA| 看片视频在线免费日产在线看| 欧美五月丁香| 久色大| 日本久久性| 大香蕉九操| 丁香成人五月天| 久久综合99| 一级AV片| 啪啪五月婷婷| 99九九中文字幕视频| 久久婷.com| 国产激情综合五月久久| 亚洲欧洲色色| 五月天婷网| av人人干| www.色婷婷| www.婷婷五月天| 九月丁香久久网| 熟女国产在线一区二区三区四区| 91pornav在线| 激情五月天色色| 四色 爱 婷婷 精品 亚洲 五月天| 99色看| 婷婷丁香五月在线播放| 黄色三级日本| 少妇性BBB搡BBB爽爽爽视頻| 久久久亚洲成人无码A片| caopeng97人人| 99综合免费视频| 99只有精品9| 日韩高清久久| 欧美丁香婷婷天天操| 丁香婷婷久久老熟女综合网| 色五月天综合网| 色色五月婷婷| 欧州婷婷五月天综合| 五月丁香九九| 青青操绿aaa一区日v| 五月天激情婷婷丁香| 亚洲色热| 婷婷丁香六月天| 97超喷视频在线观看| 五月婷婷啪啪啪| 玖玖资源部在线播放| 久久婷婷五月综合伊人| 99热九九热| 欧美人妻一区二区| 久久视9精| 国产精品汇聚精彩第二页 - 高清完整版在线 - 青蛙AV | 九九AV在线| 国产又爽又猛又粗的视频A片| 91VIP在线观看| 99热这里在线精品| 99热只有精| 激情六月综合| 五月丁香六月婷| 综合久久综合五月天婷婷| 99re久久| 五月天精品综合在线| 九九婷婷综合| 9色91视频| 黄网免费看| 五月婷婷免费在线观看| 91爱啪啪| 久久免费高| 精品99这里有| 天天干天天做| 91精品激情9| 五月婷色色| 婷婷五月天美女视频| 午夜五月天| 四色五月婷婷| 亚洲精品欧洲精品| 99无码视频| www.97视频| 99精品国产在热久久| 黄色AAAAA| 男妓跪趴把舌头伸进我的嘴巴| 伊人九九综合| 这里只有精品视频一区| 亚洲激情五月| 激情综合99| 色欲天天综合| 狠狠色丁香| 99热综合网| 六月婷在线| 日日夜夜爽爽| 久久性视频| www.97碰碰com| 亚洲视频图片婷婷五月| 欧亚成人A片一区二区| 五月丁香琪琪| 成人免费va| 五月婷婷丁香91| 色色综合色视频| 色色五月天丁香| 五月丁香综合中文| 五月丁香婷婷激情澎湃四射| 午夜精品人妻无码一区二区三区 | 五月丁香六月婷婷在线观看| 国产麻豆视频| 亚州欧美国产久精国产99综合视频| 99热综合色图| 成人免费网站免费看| 丁香六月亚洲综合| 免费无码毛片一区二区A片| 色婷婷丁香五月| 人妻久久久久久久 | 久久婷婷五月草视频| 天天弄天天操| 婷婷色亚洲| 人妻AV在线观看| 在线观看亚洲视频影院| 色色婷婷丁香五月天| 天天操天天国产三级片处女学生妹| 五月丁香六月婷婷综合伊人| 99这里只有精品| 激情五月天在线| 五月色综合| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 91丨九色丨东北熟女| 色色色色色热| 色色色免费视频| 亚洲婷婷91丁香| 免费观看亚洲AV片| 九热精品| 激情九月婷婷| 日韩黄色网络| 欧美视频五区| 超碰免费人人| 久久五月丁香| 色色色色热热| 大香蕉手机视频| 另类图片五月天婷婷| 狠狠精品干练久久久无码中文字幕| 久久综合网免费视频| 亚洲精品久久久久AV无码| 久久国产精品乱子伦_靑青草…| 精品夜夜澡人妻无码AV| 人妻VideOssS人妻| 丁香五月天中文字幕| 五月情涩综合婷婷| 第四色大香蕉| 中文字幕在线观看视频www| 播播网色播播| 99久久国产成人精品| 亚洲熟妇AV乱码在线观看| 亚洲99在线视频| 色综合播放| 婷婷五月情天| 啪啪色区| 久久丁香五月天| 五月婷婷深深爱爱| 久久ri精品| 99色视频在线| 日本啪啪天堂| 成AV人片一区二区三区久久| 婷婷色Av| 91se在线观看| 99在线精品视频| 操逼福利视频| 婷婷五月天你懂的| 成人版视频在线观看| 五月天激情小说婷婷| 黑人巨粗进入警花疼哭A片| 色婷亚洲| 99九九在线精品热动漫| 婷婷丁香五月综合| 99久久免费精品| xxxx久| 人妻中文在线| 色色色色色网站| 婷婷五月电影院| 男女啪啪做爰高潮无遮挡| 婷婷激情五月综合| 91操熟女| www,婷婷,com| 丁香九九九九| 免费精品66| 久久9RE热视频精品98| 五月天婷婷久久| 狠狠五月激情婷婷直播片| 97热这里精品在线视频| 色五月亚洲| 五月婷婷色五月| 色婷婷久久综合| 亚洲综合网在线| 99在线视频播放| 色插综合网| 五月天综合久久丁香91| 超碰v| 五月婷视频| 我要色综合五月婷婷| 日本一区二区三区精品视频| 亚洲超碰在线| 婷婷五月伦理| 99精品自拍视频| 丁香婷婷浪潮AV久久综合| 丁香六月综合激情| 丁香婷婷色五月天| 男人的天堂999| 国产婷婷久久| 九九热免费视频| 色噜噜狠狠色综合网| 初夜av| 日韩啪啪网| 91九色无码内射| 99久久网站| 欧美日韩成人在线网| 婷婷五月中文字幕国产| 超碰在线精品| 色色草97| 狠狠狠狠狠狠| 久99久视频| 超碰色天堂| 欧美槡BBBB槡BBB少妇| 九九色欲网| 色深爱五月| 欧美婷婷五月无砖| 色色色99| 色五月婷婷五月天激情综合| 日本不卡高字幕在线2019| 五月丁香婷婷综合网| 五月天激情啪啪| 五月丁香啪啪激情| 九九99精品视频在线观看| 91日综合欧美| 五月婷婷 婷婷五月 一区二区 久久久 | 五月丁香六月欧美综合| 色婷网| 久婷婷婷| 吾爱AV导航| 97涩婷婷婷婷基地| 欧洲电影在线观看免费版英语版| 综合久久影院| 日本爆乳片手机在线播放| www,五月天激情| 婷婷激情五月综合基地| 丁香丁香激情网| 婷婷99狠狠躁天天| 色综合丁香婷婷| 欧美日韩国产一区二区| 五月天婷婷偷拍| 国产午夜成人免费看片无遮挡| 91性高潮久久久久久久久| 久久作爱| 欧美三级欧美一级| 婷婷涩涩五月天| 激情五月天激情小说| 丁香五月婷在线观看| 亭亭丁香aV| 婷婷月五天在线在线看| 五月丁香| 丁香激情久久| 九九激情综合| 婷婷综合精品| 日本成人综合| 五月婷在线影院| 國語久久婷| 国产精品色婷婷99久久精品| 免费国产视频| 日本啪啪网| 特级操b片| 色五月婷婷影院| 99精品在线观看视频| 先锋资源婷婷| 九九狠狠干| 日韩性视频| 亚洲色图五月丁香| 久久色情| 激情五月伊人婷婷| 五月丁香啪啪啪免费看| 激情丁香五月婷| 亚洲婷婷丁香五月亚洲| 玖玖在线资源视频| 丁香婷五月| 一级A片天天操夜夜操| 五月天成人网婷婷| 五月色婷婷激情| 丁香色五月婷婷| 亚洲色婷婷五月天| 五月婷婷啪啪啪| 五月天激情亚洲| 九九热免费| 麻豆WWWCOM内射软件| 一区二区无码视频| 91主播在线| 色婷婷超碰| 五月丁香六月婷综合成人综合 | 9l视频自拍9l九色9l成人| 久久9视频| 六月婷婷综合| 日韩在线看AV| 久操人| 狠狠爱五月婷婷| 色噜噜狠狠色综| 凹凸探花电影| 五月天激情综合10p| 五月天婷婷在线观看| 爆乳熟妇一区二区三区爆乳照片| 久色网| 91人在线观看| 婷婷久久图片| 丁香婷婷人妻| WWW.桔色成人.COM入口| 99热这里只有精品86| 久久综合丁香| 91色久| 伊综合蕉| 日韩精品999| 第四色五月激情网| 五月停停激情网| 美女va| sewuyuejiqingwang| 国产婷婷五月色情综合| 操97| 丰满少妇猛烈A片免费看观看| 丁香五月激情啪啪啪| 成人丁香五月| 日本五月丁香| 丁香久久久| 内射爽无广熟女亚洲| 激情综合婷婷久久| 亚洲啪视频| 五月丁香狠狠| 日本一级一级一级一级| 亚洲精品国产熟女久久久| a色婷婷| 美女100%露全身无挡网站| 婷婷激情五月色综合| 色综合综合色| 夜夜爽天天爽| 日本高清不卡免费一区二区三区| 99精品在线观看视频| 色婷婷成人影片| 色婷婷六月天在线| 色区久久| 色婷五月| 天天色五月婷婷91久久久久久久| 99久久综合| 婷婷基地爱| 伊人色综合网| 激情骚五月| 天天做天天爱天天爽在| 久久婷婷五月天激情四射| 亚洲乱码日产精品BD在线观看| 久草丁香婷婷五月天婷| 婷婷五月天在线观看av| 狠狠穞A片一區二區三區| 一本大道嫩草AV无码专区| 91精品无码久久久久久五月天| 夜夜夜夜操| 日本三级中文字幕| 黄色高清无码| 亚洲丁香五月天在线视频| 婷婷五月综合体验看| 九九色网专区| 国产噜一噜天天噜| 思思热久久爱| 婷婷99狠狠躁天天躁| 伊人网碰碰| 色色网站| 国产精品99久久久久久久女警| 婷婷五月花| 激情五月婷| 成人国产欧美大片一区| 欧亚洲在线高清视频| av在线免费网站 | 九九久久偷拍| 超碰女人天堂| 婷婷天天日婷婷| 婷婷五月丁香亚洲| 成人婷婷桔色| 99亚洲天堂| 色五月婷婷伊人| 午夜婷婷六月天| 99热 精品在线| 欧美噜噜噜草| 亚洲AV综合在线观看| 婷婷丁香色性爱| 天天爽日日爽夜夜爽| 日本欧美成人片AAAA| 六月丁香激情综合网| 久久久久9999| 五月黄色婷婷| 色 五月婷婷基地| 777影视理论片大全在线观看| 色狠狠五月天| 91色五月| 99热高清在线| 五月天狠狠| 黄色aa观看aaguochan| 先锋av性爱成人电影| 欧美私人家庭影院| 五月花成人网| 五月丁香亚洲综合| 六月丁香大香蕉| 精品99在线| 成人综合视频在线| 六月激情综合| 国产精品国产| 另类激情五月天| 草草色情综合网| 婷婷六月激情丁香| 国产午夜精品AV一区二区麻豆| 九热视频| 久久综合五月| 无码九九九九| 99热成人| 日韩欧美一道四区中文字幕| 停停五月色宗合| 91丨九色熟女丨首页| 亚洲丁香五月天视频| 91chinese 在线| 美欧日韩国产成人在战| 婷婷综合色网| 日本99在线| 色色激情| 天天综合网站| 天天摸.天天mo| 午夜天堂一区人妻| 狠狠干伊人| 五月婷综合| 激情婷婷六月天| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 美欧日韩国产成人在战| A在线观看| 大香蕉婷婷丁香视频在线| 五月婷婷五月天| 日本 欧美在线| 婷婷五月天影院| 欧美黑人巨大猛烈cuckold| 麻豆AV一区二区三区| 五月天四色房丁香| 日韩欧美成人一区二区三区| 99精品视频网站| 五月停停999| 99热日本| 婷婷丁香久久五月综合| 日本在线播放97| 六月激情久久| 色婷婷五月综合在线| 91丨九色丨43老版熟女| 激情五月天婷婷图| 九九无码| 99热亚洲精品66| 亚洲成人另类| 色999亚洲人成色| 人人摸人人射| 久热9热| 亚洲人妻av| 人妻在线中文字幕久久| 丁香婷婷影院| 久草五月婷婷| 五月天色婷婷av| 色月丁| 五月婷婷激情网| 狠狠色婷婷7| 久草婷妨| 97久久久久| 国产一级婬片毛片| 狠狠 久久| 五月天综合视频| 天天五月情| 99热老网站| 大伊香蕉精品视频在线| 色情婷婷五月天| 婷婷欧美偷拍综合| 七七色综合| 成人AV在线电影| 快色t v在线入口| 五月丁香久久综合|