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

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í)一句話(huà)凡是正被提交了沒(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è)工具往往意味著額外的部署成本和用戶(hù)培訓(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ò)鉤子。卡口一旦能被輕易繞過(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 代碼如果需要裝依賴(lài)要在安全沙箱環(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)論閾值以?xún)烧呓Y(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è)以?xún)?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
返回資訊列表
九久9热| 久久99操天天日| 久久久久久久人妻| 91观看 国产白丝| 亚洲国产ⅴ高清在线观看| 国产精品一级片在线看| 亚洲精品骚逼| 中日韩一区二区三区欧美| 日韩午夜啪啪视频| 日日AAvv| 成人精品在线观看| 日韩性爱免费观看视频| AV高清一区| 精品人妻一区二区三区免费视频| 日韩亚洲Av人人夜夜澡人人爽| 殴美日韩m| 欧洲黄色网| 免费一级精品啪啪视频| 超碰 另类 欧美| 日韩成人无码| 最新一二三区视频| 欧美不卡五十路| 日韩成人免费电影| 亚洲国产成人精品999| 国内毛片无码一级毛片| 成人九九| 91neishe| 日韩欧无码一区二区三区免费不卡| 免费人成?大片在线播放| 丁香婷婷激情五月天无毒不卡| 看免费一级在线播放毛片| 真实高潮91| 色97欧美| 亚洲色图大香| 亚洲男人综合| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 97欧美性爱| 午夜后入| 久久社区一区二区三区| 精品人妻一区二区三区视频| 亚洲AV操| 中文字幕99999| 中文字幕jul-617人妻熟女| 色香91| 精品国产人成在线| 青青青草原| 乱色视频中文字幕| 人妻一区二区三区四区视频| 你操综合| av日韩国产一区二区| 日韩精品人妻中文字有码在线| 午夜性刺激视频免费观看| 极品丝袜无码| 日本色色视频网站| 大香蕉一人| 欧美日韩999| 漂亮人妻被强中文字幕hd| 久久九九综合| 国产在线激情视频| 哈哈操 大香蕉| 日日夜夜国产综合| 九九性爱网| 人妻精品视频一区二区三区| 熟女91网| 二区熟妇韩日| av天堂精品久久| 99热18这里只有精品| 五月婷婷丁香| 无码国产Av| 女生看匆91网站| 久久蜜桃综合网| 午夜电影在线观看无码专区| 亚洲视频中文一区| 日日骚精品视频| 色色色色电影网| 少妇高潮喷水无套久久久久久| 天天日天天爽| 欧美一区二区三区入口| 亚洲精品国产拍免费91在线| 青青伊人加勒比海| 青青青国产| 十八禁成人网站在线观看| 91内射| 亚洲综合色在线| 欧美综合加勒比在线| 91精品国产高清久久久久久,亚洲成人| 久久AV无码AV| 亚州色综合| 久久久久婷婷精品av电影| 超硑97精品| 色色色热| 乱色视频中文字幕| 99热官网| 国模限制级电影| 亚洲午夜福利视频| 国产 无码 一区二区| 午夜在线播放| 国产v亚洲v日韩v欧美v片另类| 亚洲国产97在线精品一区| 60秒免费小视频| 国产九九久久久精品| 熟女乱伦二区| 中文字幕av亚洲在线| 国产精品久久久久久照片| av黄图片在线观看| 国产无码久久高清| 国内外内射高清视频| 97资源站国产精品| 色姑娘综合网| 亚洲欧美在线观看无码| 最新日产中文在线麻豆| 亚洲操逼无码| 高清在线偷拍自拍视频| 国产精品久久久久av| 综合欧美激情网| 亚洲国产av中文字幕久久| 五月丁香六月综合缴清无码| 超碰色男人操熟女| 精品中文字幕一区二区| 五月婷婷六月丁香网址| 97色在线| 超91综合网| 亚洲 综合 欧美| 久99热| 色五月网址| 操91| 欧美一区二区日韩传媒搭讪精品| 伊人一区二区三区| 四虎影视永久在线观看精品免费网站 | 懂色中文一区二区三区 | 国产在线精品偷| 黄色av一区二区在线| 亚洲日韩成人性爱视频| 99久久九九| 国产精品色| 久久久久免费少妇| 亚洲色图加勒比| 欧美熟妇精品黑人巨大一二三区| 亚洲日韩青青草色月| 亚洲诱惑| 精品人妻久久久| 97中文字幕九区| 超碰人妻久久| 成人无码电影在线观看网| 亚洲精品无码久久AV| 五月丁香社区婷婷日韩欧美精品影院| 婷婷五月天成人| 亚洲精品欧美专业| 色九九九九九九| 2020中文字幕在线观看| 91亚洲色人| 亚洲乱码尤物193YW| 大香蕉碰碰| 婷婷色香| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 亚州色图狠狠干| 中文字幕十五区| 亚洲色天堂九9| 黄片www视频免费| 美国精品国产精品| 水野优香在线观看| 男人精品天堂一区| 91亚洲电影| 欧美人人曰人人操人人射射| 在线观看精品国产免费| 嗯嗯嗯不要不要免费视频| 伊人久久综合影院精品久久久| 99热99在线播放激情| 99操逼| 99久久无色码| 麻豆色约约| 第四色奇米影视777| 五月天激情小说| 啊啊啊啊啊啊啊啊要喷了| 欧美亚洲91| 中文字幕精品一区二区精| 大胆91| 欧美高潮| 日韩无码精品综合久久| 人妻天堂综合网| 嗯嗯啊啊啊啊轻点视频| 久久精品超碰| 99精品在线| 亚洲文学偷乱拍啪啪啪啪| 欧美精品三级黄片| 国产精品香蕉热久久新品| 五月天综合| 偷拍色图| 国语国产操逼伊人AV网| 97资源免费视频| 久久只有精品| 欧美色图天堂在线| 欧美日韩色| 国模少妇一区二区三区| 日本熟妇精品九九| 99在线无码精品秘 入口黑人| 97色诱| 欧洲特黄毛片免费看欧洲毛片| 99操碰| 色女免费在线观看视频网址| 久久亚洲AV无码专区国产精品| 黄色香蕉视频网站一区| 欧美爆操91| 国产白丝av| 日韩九区| 91精品国产一区三一| 久操热线| 老熟妇91| 艹我哪美一区无码| 亚洲加勒比久久日本道| sss视频华人在线| 超碰在线一区二区三区| 精品国产乱码久久久久久久久1| 夜夜高潮夜夜爽国产伦精品| 九九综合久久| 久草免费在线视频| 中文一区二区婷婷视频| 人妻偷拍一区二区三区| 伊人色综合欧美| 国产网红精品| 校园春色 亚洲| 色噜噜综合网| 欧美精品宗合| baiduhicn.com。| 蜜桃视频成a人v在线| 男人的亚洲天堂| 久久久久亚洲Aⅴ无码| 久久久久久久久久精| 综合 欧美 亚洲 日本| 欧美在线综合| 美女黄色一级A视频| 天天天干977| 婷婷激情四射| 韩国一级做a久久久久| 一道本东京热加勒比一区二区三区 | 九九综合久久| 婷婷丁香人妻| 欧美天天综合网版| 桃花色涩综合影院| 天天色欧美| 成人资源中文字幕在线观看天天| 国产无码精品成人| 91碰碰| 午夜天堂精品久久久久91| 中国人高清www色视频免费| 亚洲人在线| 黄色在线网站| 91成人无码| wwe 天天干.com| 国产精品久久久久久久久AV大片| 91啦人妻| 久草看看看| 久久超碰、| 欧中日成人免费影视| 夜夜国产一区| av三级电影在线播放| 天天干天天日天天射黄色片| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 美腿色图| 欧美性爱系列| 国产亚洲欧美每日在线| 91欧美经典| 伊人操操| 日韩亚洲美州欧洲综三区一品在线| 亚洲黄片免费在线播放| 91亚洲欧洲| 综合网97| 色九月综合| 婷婷丁香五月激情啪啪| 肏逼福利网站| 久久久青青草| 久久影视二区三区行押| 色婷婷婷五月天激情四射| 亚洲日韩成人性爱视频| 激情国产乱伦Av| 久久亚洲中文字幕视频| 精品一级| 亚洲有薄码区久久在线一区| 亚洲色图欧美色图日韩色图| 婷婷伊人五月| 国产精品不卡一区二区电影| 黄片qw| 97资源久久| 四季av一区二区凹凸精品小说 | 激情另类激情| 国产欧美成人精品| 91美女在线看| 日本精品88888888| 国语人妻精彩刺激| 色99色| 日本在线不卡一二区| 大香蕉强奸乱伦| 69XX一中文字幕人妻91| 亚洲黑人在线| 东北少妇高潮zzzz| 欧美人与动性人交a| 97免费视频在线| 久操免费电影| 欧美高清91| 伊人嫩草| 欧美午夜熟妇黑人精品91| 麻豆人妻偷人精品无码视频| 激情四射熟女丝袜| A一级色女| 青青草字幕AV| 欧美人人天天网| 97频视在线| 级品肉射| www久久精品| com 首页 18岁 禁区 女优 免费 精选 同城 | 久久女人| 乱性AV| 国产最火爆久久国产网站网站| 亚洲精品九九九| 91亚洲欧美| 韩国免费播放一级毛片| 天天爽夜夜爽夜夜爽精| 欧美日韩大黄片| 国产精品视频麻豆入口| 亚洲一区二区中文字幕| 天天爽人人综合免费7799| 久久HD| 九九九九九九九精品视频| 五月丁香啪| 丝袜美腿亚洲| 国产AAAAAABBBBB| 国产对白刺激视频| 无码乱人伦中文视频| 啊视频在线| 无遮挡猛进视频免费无限观看| 在线观看国产黄色| 91狠狠综合久久久久久| 色性荡荡荡荡视频| 色悠久久久av| 亚洲国产97在线精品一区| 91激情国产| 亚洲性天堂| 肉动漫无遮挡h在线观看| 13小男生GAY自慰脱裤子| 精品久9| 亚洲欧洲av影音| 综合 欧美 亚洲 日本| 亚卅熟女乱色| 第四色色综合91| 日韩精品9区| 欧美日韩人妻精品系列一区二区三区| 国产无码久久高清| 国产精品久久久久综合| 91色图片| 91 丝袜在线播放| 亚州一区二区成人片免费| 亚洲av强奸乱伦| 久热伊人99re| 久草线上视频免费看| 91性片| 26UUU欧美激情一区二区| 久久婷色| 小草av不卡亚洲二区| 大粗鳼巴久久久久| 国产女人操逼视频| 亚洲综合影视| 中国特猛少妇色xxx| 国产人妖的免费的视频| 亚洲欧美精品一区天堂久久 | 韩日巨乳美女免费视频在线观看| 男人久久精品| 国模久久在线| 日韩一级二级| 色香色欲天天综合网天天来吧| 99re免费| 日本大香蕉综合网| 蜜桃传媒视频第一区入口在线看| 密臀AV在线| 久久久999网站| 激情综合网激情五月天| 干b网| 天天色悠悠激情| 日本中文字幕在线电影| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 岛国片在线播放| 清纯唯美亚洲综合| 东北女人高潮视频| BBBBB97COM| 青女偷拍网| 91艹| 风骚少妇视频中文字幕| 九九九九九九九九九九九九九九九女| 久久一区,青青青青草视频在线播放| 亚洲成人网站在线观看| 无码自拍SM| 一区二区三区探花在线观看| 国产女人和拘做爰视频| 在线岛| 74成人在线| 久久受www免费人成| 被窝影院午夜看片无码| 日语五十路和六十路亚洲国产精品 | 欧美一区二区福利在线| 亚洲欧洲精品视频发布| 久久美女福利是上海美女| 国产精品无码AV网站| 久久精品店| 亚洲少妇综合在线播放| 欧美日韩性爱操大逼| 少妇高潮对白在线观看| 欧美日日操| 最新三级网址| 日韩性爱1级片视频| 亚洲精品一二牛牛| 无码高清操逼网址| 中文字幕亚洲永久精品| 无遮挡猛进视频免费无限观看 | 亚洲 欧美 第一页| 少妇一区二区三区| 日韩av不卡在线看| 日韩不卡a级视频专区| 韩国一级婬片A片AAAAA| 国产农村妇女精品1区二区| 欧美亚洲涩涩| 日本亚洲嫩草影院啪啪| 欧美v亚洲v综合v国产v妖精| 粉嫩av久久一区二区三区| 日本孕妇一区二区视频操逼免费看 | 夫妻四区五区六区| 国产亚洲日本| 诱惑网综合| 久操操AV电影| 亚洲综合一区二区| caopeng97| 999 久久久| 视频在线97| A 天堂| 青娱乐国产精品| 五月婷婷激情网| 亚洲男人的天堂V| 久久噜| 久久 精品| 国产天天看| A一级色女| 熟妇熟女一区二区三区| 日本成人A片免费看| 激情婷婷五月天| 丁香五月天久久精品视频一区二区三区| 99后入| 国产性爱强奸乱伦大全| 精品成人av一区二区三区在线| 色综合中文字幕不卡| AV男人天堂网| 人人艹亚洲| 欧美淫穴| 91日产桃蜜| 天天插夜夜操| 欧美婷婷久久| 97精品在线视频| 韩国三级理论在线| 天天摸夜夜操视频| 青娱乐福利99| 小草三级久久观看| 国产精品久久久久久久久久久久久久| 久久久麻豆精品| 97超碰逼| 少妇熟女1区2区3区| 91超级碰碰| 任我爽在线视频免费观看 | 操我无码| 亚洲性综合| 91影库| 97色爱| 国产精品9999| 综合色图,成人综合网| 午夜福利合集| 丁香婷婷九月| 大干人妻| 日韩精品一区二区三区色欲| 熟女露脸激情自拍视频| 1禁看欧美黄片免费看| 干b在线性社区| 亚洲天天操| 综合熟女| 欧美成人免费在线观看| 91久久精品国产| 91亚洲综合在线| 婷婷五月av| 国产深喉| 懂色AV一区二区三区| 99re黄| 五月丁香六月婷| 密臀在线一区尤物| 亚洲中文字幕妇伦久久| 久久久久久国产成人| 操b网站亚洲无码| 蜜乳中文字幕a在线| 夜夜高潮夜夜爽高清视频一 | 无码高清操逼| 午夜性| 国内毛片国产欧美拍| 九九九久千久久激情蜜桃在线看| 国产精品不卡一区二区三区av| 黄页大片在线观看| 伦激情人妻另类人妻| 精品美女少妇一区二区三区| 92午夜免费福利视频| 情色五月天就去干| 亚洲最大91网| 搞中出久久| 亚洲天堂电影网| 久久婷婷六月综合| 亚洲欧美另类激情小说| 白丝少妇一区二区| 日韩青久久| 91在线色综合| 日本三级一区二区 在线| 97se综合| 麻豆天美电影一区二区| 亚洲综合另类小说色区亚洲成av人片在www | 日日摸夜夜夜夜爽| 国产精品一区二区三区在线| 久久人妻四季| 亚洲无码AV九九九| 思思久热在线精品66| 男人把坤坤插入女人的下体| 婷婷综合| 日韩性爱人人爱人人操| 日韩十八禁| m欧洲一级午老| 超碰久热| 亚洲成人日韩小说| 熟妇熟女一区二区三区| 欧美一品道| 花野真衣| 综合色色网| 国产JDAV无码视频在线观看| 免费男人的天堂| 久久9亚洲| 国产大学生高潮在线播放| 日韩中文字墓| 欧美亚洲首页| 69丨亚洲丨精品丨入口免费播放| 精品一区二区三区最新| 五月综合色| 国产高清免费不卡av| 男人天堂网站| 九九热av| 黑人粗大V S日韩女优视频| 欧美日日夜夜| 99热超碰| 色婷婷久久| 九九干| 尹人免费观看视频在线| 久久久夜夜夜| 97chaopengongkai| 91 亚欧| jiujiujiujingpin| 91久久18禁| 亚洲、日韩、综合、另类| 久久久久久欧美精品se一二三四| 久久久无码av精| 国产精品探花色| 天天澡天天爽日日AV| 青青五月天| 久久爱97| 国语精品av| 青草伊人网| 久久久精品九| 精品二区久久| 5252色欧美在线男人的天堂| 夜夜国自区| 欧美在线干| 国产亚热在线久久| 日韩av电影网站| 色哟哟精品1精品2| 久久亚码| 欧美亚洲高清晰 | 亚州日韩97| 91夜夜蜜桃臀1区2区3区| 少妇蜜汁| 欧美色天堂网在线视频| 天天天天天超碰| 福利一级版子| 久久久91福利姬| 天天综合~91| 熟女少妇一区二区三区| 精品人妻一区二区三区视频在线| 精品国产乱码久久久久久蜜臀| 欧在线一二区| av网站在线看| 黄色在线网站| 色五月婷婷中文字幕| 色婷久久| 亚洲欧洲小说图片视频| 色诱avtt| 日韩欧美蜜桃精品久久中文字幕久久| 97日韩欧美亚洲| 极品色综合| 免费a v| 国产黄色影片在线观看| 亚洲天堂无码| 熟女日韩| 亚洲图片 激情小说| 欧美色图亚洲色,麻豆| 精品一区二区三区丰满熟女-亚洲欧美一区| 天天综合色图| 国产日韩区| 免费A V在线| 91天天日| 91黑丝操| 日韩av无码网站| 精品高清一区二区三区三州| 综合色99| 日本999精品视频| 亚洲影视第一页| 91丝袜美女视频| 亚洲精品国产专区在线观看| 久久99操天天日| 亚洲自拍欧美国产首页网曝| 97视频一区| 青娱乐福利99| 色九九综合| 国厂麻豆77q4| 97超碰欧美中文字幕| 久久五月天婷婷丁香中文字幕| 91精品黄在线观看| 久久一二三四不卡 | 男女啪啪啪18禁网站| 日韩激情中文字幕有码| 亚洲一二三四区机械| 青青久久久| 国产精品日韩在线一区| 色色国产| 大香交| a一区二区三区乱码在线| 五月天丁香| 超碰69| 欧美自拍偷拍综合图片| 天天爽天天爽| 中文精品少妇天堂| 日本不卡高清视频| 69精品人人人人| 天啪| 欧美激情综合| 国产精品自在自拍视频| 60秒免费小视频| 无码久久国产| 九九九网页| 欧美亚洲首页| 六月婷婷色综合| 老司机午夜精品福利视频一区二区| 襙一襙| 美女露胸露奶头| 久久久91| 色婷婷影院| 97国产精品在线观看| 日韩三级天堂在线观看| 精品国产久久乱码| 操逼逼中文字幕| 久久久不卡区一区二区三区久久久| 综合夜夜| 丰满少妇一区二区三区专区| 久草在线| 精品一区二区三区最新| 亚洲情色综合| 蜜桃精品一区二区三区ww| 玖玖爱影院| 校园春色综合| 国产自制av蜜乳| 国产久久久9999| 无遮挡又黄又刺激的视频| 少妇蜜汁| 亚洲国产一区二区日韩专区| 精品人妻一区二区三区夜夜| 唐山老熟妇露脸啪啪叫| 丝袜狂射91| 亚洲九月丁香| 婷婷丁香人妻| 欧美性猛交美女自慰91| 国产自制av蜜乳| 亚洲中文字幕乱码无码一区二区| 国产无码久久高清| 人妻 制服 日韩 中文 在线| 午夜120视频在线观看| 中文欧丝袜诱惑| av天堂5| 性欧美91| 欧美一区二区在线资源| 操操操日本的逼| 97久久久久久久久久| 五月婷婷激情综合| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 日韩特一级久久| 色五月av| 欧美一二三级精品在线| 四虎在线免费视频| 久久久婷婷| 秋霞免费无码视频日韩A片| 亚洲精品国产av天美传媒| 国产精品香蕉热久久新品| 久久中文字幕人妻熟av女蜜柚| 97在线精品| 伊人热综合| 韩日自拍| 欧美九九99久久精品| 九色精品视频导航1| 超碰天天去日穴| 欧美性区| 久青草影院| AND人妻系列| 国产精品美女久久久久AⅤ国产馆| 97在线欧| 97超碰热线| 熟女被操视频网址| 免费A片三p视频| 中文字幕无码不卡啪啪| 91 国产丝袜在线放观看| 人妻aa| 国产精品不卡高清在线观看| 亚洲人妻久久久| 亚洲欧美天堂在线| AV九九| 欧美日韩不卡a片| 97超碰超| 亚洲色图第一页| 操香逼| 婷婷五月天在线观看| 国内精品a| 91视频综合| 性欧美第一页| 超碰这里只有精品| 九九综合色| 色综合天天| 国产老太乱伦一区| 欧美色老汉| 中文乱码99| 久操热线| 国产高清成人mv在线观看| 欧美美女视频| 久久精品国产久精国产| 91亚·色| 婷婷六月色| av无码精品久久久久| 国内外内射高清视频| 丝袜色综合| 丝袜av一区二区三区| 青娱乐亚洲热| 色婷婷丁香五月| 亚洲国产激情国产av| 93人人操人人| 亚洲啪啪视频一区二区| 人人人摸人人| 日韩一区二区精彩视频| 成人一二| 日韩无码人妻| 呦呦一区| 亚洲成人黄色在线观看| 精品91日日夜夜超清资源| 深喉吞精| 麻豆精品.欧美精品.日韩精品.| 日韩精品一区,二区 九九...老司机| 97公开久久| 精品视频97| SUV一区二区在线看| 青青草啪啪网| 精品久久久中文字幕不| AV色天香在线| 日韩伦理视频| 久久国色天香香蕉| 亚洲男人天堂Av| 91大胆欧美| 在线观看中文字幕| 一区二区三区视频| 热99这里有精品综合久久| 蜜臀久久99精品久久久久久-DVD原版全| 日韩小电影| 欧美日韩在线小说| 国产区日韩区在线观看| 操逼视频色| 天天艹天天日| 五月丁香综合啪啪| 日本三级韩国三级99| 91麻豆天美国产欧美日| 台湾佬中文娱乐自偷自拍| 亚洲欧美日韩综合在线尤物| 99无码精品| 亚洲精品色| www.91欧美| av2014 日韩在线中文字幕| 欧美精品激情| 国产精品一二三区18| 亚洲无码免费看| 国产成人精品日本亚洲语言| 丝袜美腿诱惑亚洲欧美视频在线观看 | 思思久热在线精品66| 少妇人妻好深太紧了vr91| 无码人妻丰满热妇又大又粗| 五月婷婷无码| 久久久婷| 少妇的嫩逼图片| 国产成人99久久亚洲综合| 人人摸人人叼| 熟妇高潮一区二区免费视频| 九九自拍伦理| 熟妇高潮精品一区二区三区下载| 中文字幕一品色图| 天天看天天日天天操| 国产女人极品高潮毛片| 亚洲人妻一区二区三区| 91挑色欧美| 草草草草视频| 日韩乱中文| 一本一道人妻久久一区二区三区 | 18禁在线视频| 人人干人人搞人人摸| 开心激情婷婷| 亚州春色| 九九热精品视频六| 免费人成毛片乱码| 黄色高清无码无码破解免费暗网| 亚州操操穴网| 久日综合网| 亚洲天堂资源在线| 亚洲成人av电影在线| 天天摸夜夜摸| 猛猛干| 人妻熟女av国产网站| 亚洲限制级| 天天视频黄| 好湿好紧视频| 超碰在线香蕉| 一区二区三区四区姦女| 天天伊人| 色情五月丁香| 中文字幕在线第二页| 欧美性爱18观看| 国产suv精品一区二区四| 欧美综合亚洲| ?亚洲伊人伊成久久人综合网| 欧美18禁91| 国产一级高清免费观看| 五月综合久久| 91无码人妻精品一区二区三区蜜桃| 超碰在线观看av不卡| 91久久午夜无码鲁丝片久久人妻| 大香蕉中文在线| 久久婷色| 久久久久久久久久久久97| 秋霞免费AV| 九七人妻在线| 国产人妖视频一区在线观看| 久久綜合很很很| 久久 国产 无码| 欧美日韩淫加| 大屁股人妻女教师撅着屁股| 人妻在线中出视频| www熟女乱伦com| 久久久久久久少妇| 国产高清自拍视频| 99啪啪视频| 一本色道综合久久欧美| 婷婷色网| 曰韩操B| 蜜桃丰满熟妇av无码区不卡| 综合久久六月久久婷婷| 日本A级视频| 成人a级高清视频在线观看| 老师充足的奶水小说| 婷婷伊人五月| 日本啊啊啊啊啊视频| 亚洲精品三区在线观看| 一区二区国产视频在线观看| 久久精品国产72国产精品福利| 亚洲97资源| 欧美综合站| 久久草草亚洲蜜桃臀| 亚洲少妇色图自慰直播| 思思视频免费看网站| 日韩精品影视| 91久久久久久| 台湾一区国产高清在线| 偷拍在线观看视频| 九九久久精品| 亚洲欧美另类激情小说| 影音先锋一区二区在线资源| 六月激情婷婷| 国产一区二区三区高清视频| 国外91| 天天综合91在线| 国产无码精品高清| 嫩草 我啊~嗯~在线| 欧美在线视频99| 激情五月天插| 大香蕉2017| 91av熟女人妻| 无码人妻系列少妇| 日本久操视频| 国产日韩无码一区二区三区久久区| 欧美A√综合网| 99热精品在线| 91成人高清在线观看| 九九超碰综合网| 成人AV素股で擦久久| 免费看A片毛毛片在线播| 91丝袜在线播放| 久久精9| 五月丁香啪啪网| 免费av高清无码| 日日骚网站| 日韩资源网| 国产黄a三级三级三级av在线看| 国产一区二区在线播放量| 夜夜夜夜久久久久| 青青国产在线拍揄自揄拍| 97操操| 小日子操bb在线看| 97在线免费视频观看| 日韩中文字幕宗合在线| 尤物av网站| 亚洲另类在线观看| 日韩图区| 玖玖久久久| 亚洲色婷婷| 欧美91网| 色色色色色色色色色色色色色色综合| 日本好吊色视频| 国产麻豆一级精品视频| 操91| 91操操| 国产在线观看91精品一区| 伊人aaa| 影音先锋中文字幕日本好一区二区| 蜜臀久久精品久久久久视频| 蜜乳视频网站| 亚洲91极品| 激情小说图片亚洲首页| 秋霞福利网| 精品区9| 逼逼逼逼操操操操操操操操操午夜剧场| 九九九九九用不成了| 另类小色呦| 青青免费在线视频一区| 2020中文字幕在线| 久久久艹艹艹| 蜜乳AV色欲AVAV无码| 亚洲超碰97| 四虎免费视频| 91麻豆天美国产| 午夜精品久久久久久久99蜜桃一| 蜜臀久久99精品| 色婷婷影视| 欧美国产伊人久久久久| 亚欧高清| 黄页| 91欧美网| 精品丰满熟妇人妻一区| 深爱激情五月天| 亚洲午夜福利视频| 欧美性爱三区二区| 操逼不卡中文字幕| 在线亚洲 欧美 日本专区| 中文乱码字幕观看视频| 日日干夜夜欢| 无码九九九九| 亚洲人91| 无码人妻系列少妇| 久久这里都是精品| 人人爱人人操人人性| 亚洲一级黄色毛片| 美女黄站| 亲子敌伦对白在线播放| 欧美日韩精品久久久久久久久东北老熟妇| 在线情色电影 91大| 国产乱人妻精品入口| 国厂麻豆77q4| 射丝袜大香蕉| 99色热| 国产精品诱惑| 欧州一区二区三区四区| 精品欧美А∨无码黑人大荫蒂 | 91人人臊| 98色网| 超碰98综合网| 天天摸夜夜添无码小视频| 超碰无码加勒比| 亚洲色图亚洲无码强奸乱伦| 91丨熟女丨丰满熟女| 九月婷婷| 欧美日韩国产中文超碰| 麻豆国产第一| 五月天婷婷社区| 亚洲春色欧美激情自拍| 在线观看色视频| 很很干很很操| 亚洲日韩乱码中文无码蜜桃臀网站 | 午夜欧美精品久久久| 啪啪性爱免费视频| 色婷婷色99国产综合精品| 95精品在线| 91老妇女| 宅男影院久久久,99| 夜嗨影院| 亚洲91网站| 蜜臀AV秘一区翔田千里| 大香蕉久| 欧美aⅴ99久久黑人专区| 少妇天堂| www.狠狠| 欧美淫乱视频| 天天色综亚洲91污| 韩国女主播青草在线| 日韩性爱啪啪视频| 色婷五月| 青娱乐大香蕉| A片大香蕉在线| 国产乱婷婷精品二区三区| a啊啊啊啊啊啊啊啊一区二区| www.大香| 人妻丝袜日本| 久久97超碰| 中日韩欧美精品无码AⅤ一区二区| 久久啊啊啊| 97啪啪| 久久久无码国精品无码三区三区| 人人摸人人干| 国产又黄又粗的视频| 在线天堂999| 亚洲人妻五月丁香婷婷| 午夜爽爽爽在线观看永久入口姬片| 无码视频一区二区| 国产探花精品在线| 夜夜嗨TV| 成人婷婷丁香| 亚洲无992tv| 嗯~啊~快点 死我视频| 亚洲欧美精品国产一区二区| 啊啊好多水| 亚洲 欧美 手机在线观看| 精久久久| 精品视频123区小说区| 一级二级三级黑人无码| 国产风韵犹存熟妇三区| 丝袜AV一二三区| 久久黄片国产一区二区| 亚洲第一男人天堂| 女人妻一区| 91成人18| 综合九九| 人人综合| 五月天偷拍| 蜜乳AV色欲AVAV无码| 91肉片| 不卡二三区人妻少妇| 人妻少妇精品久久久| 日本精品一区三区| 3PAV乱伦视频| 久久大黄片| 日日日日做夜夜夜夜做无码97| 欧美中文字幕一区 | 亚洲双插| 最新精品久久蜜桃| 搡老女人老妇女老妇老熟女怎么读| 草莓精品视频| 天天做日日做天天欢。| 久久一区二区三区入口| 日本不卡一区二区| 久久精品一区二区| 久九九九九九九九热| 欧美日日人人天天| 另类专区加勒比| 在线电影亚洲色图| 国产又长又大又粗的视频| 人妻内射一区二区在线视频| 91国产大片| 一区 欧美 日韩 麻豆| 97久久精品亚洲中六字幕| 日韩在线视频1234| 亚洲AV资源| 亚熟在线| 欧美AB在线观看| baisiav| 夜夜爽妓女| 60秒免费视频| 男人天堂无码| 久久久人妻| 免费家庭乱伦视频| 午夜亚洲国产理论秋霞| 成人性爱美曰韩| 国产精品无码论坛| 中文伊人大香蕉视频| 99热aaa| 97资源站国产精品| 天天日天天干少妇日| 久久受www免费人成| 国产欧美日韩精品中文| 95人妻爽爽人人做人人澡| 高清不卡国产| 精品一区99999| av激情亚洲五月天| 在线观看av区| 夜夜高潮夜夜爽| 怡红院成人视频| 亚洲日韩视频二区| 99亚洲天堂| 中出后入| 国产91 丝袜在线播放| 一级人妻性爱视频| 长长久久曰曰夜夜成人网| 国产妇女精品视频青青草| 天堂综合网| 激情五月天社区| 60秒免费视频| 成人精品久久久午夜福利| 狠狠 91| 超碰99re| 丁香六月激情综合| 亚洲在钱| 国产综合操逼高清| 99热99re超碰精品| 国产白丝av| 超碰人人乐97| 亚州性色| 一区二区激情国产熟女| 欧美的精品的视频| 一本久道在线综合视频| 麻豆婷婷成人一二三| 婷婷精品国产欧美精品亚洲人人爽| 91精片| 天天色悠悠激情| 思思视频免费看网站| 七久久久| 久久久久久久伊人精品| 日韩钢筋无码高清啾啾啾| 亚洲色图尤物视频| 超碰在线第一页| 性久久久| 极品久久久久久久久久久久久久| 秋霞一级鲁丝片A片| 国产情色第一第二页在线观看| 欧美日韩日产免费网站看| 欧亚揄拍偷拍精品视频| 7777欧美成是人在线观看| 欧美性性性| 青青国产在线拍揄自揄拍| 免费毛片在线播放| 超碰在线一区| 色呦色呦色精品| 色婷婷激情| 少妇啪啪自拍| 上床啊啊啊| 涩涩久久精品| 国产欧美第五页| 国产一级作爱毛片| 亚洲丝袜诱惑| 熟妇国产免费一区| 在线观看AV不卡| 操逼逼无码| 日韩一区二区精彩视频| 中文有码9| 青青操视频在线| 日韩乱伦视频| 大学生口爆吞精| 国产97亚洲| 亚洲天天天|