久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

README 怎么寫:從項(xiàng)目入口到工程化維護(hù)指南

README 怎么寫:從項(xiàng)目入口到工程化維護(hù)指南 README 這三個(gè)字母幾乎每個(gè)碰過倉(cāng)庫(kù)的人都見過但真要把你真的知道 README 嗎這個(gè)問題拋出來能答得漂亮的人并不多。我做過幾年內(nèi)部工具和開源項(xiàng)目的維護(hù)見過太多這樣的場(chǎng)景代碼寫得干凈利落測(cè)試覆蓋也夠結(jié)果 README 里只有孤零零一行項(xiàng)目名外加一句安裝依賴后運(yùn)行。新人接手第一天就得私聊作者七八個(gè)問題外部用戶點(diǎn)進(jìn)來三秒鐘關(guān)掉頁面。README 不是倉(cāng)庫(kù)里的裝飾品它是這個(gè)項(xiàng)目唯一一份24 小時(shí)在線、面向所有陌生人的說明書也是你未來自己的救命稻草。這篇內(nèi)容面向所有需要往倉(cāng)庫(kù)里填字的人寫業(yè)務(wù)的、做工具的、搞算法的、維護(hù)內(nèi)部平臺(tái)的只要你的項(xiàng)目需要被別人跑起來讀下去就有收獲。我會(huì)從設(shè)計(jì)思路、逐塊寫法、實(shí)操落地、問題排查一路講透中間穿插我踩過的坑和可以直接抄的結(jié)構(gòu)。1. README 到底在解決什么問題1.1 先搞清楚讀者是誰再?zèng)Q定寫什么很多人寫 README 時(shí)腦子里沒有具體的讀者形象于是寫出來的東西既不像給自己的備忘也不像給別人的教程最后變成一堆零散信息的堆放場(chǎng)。我的習(xí)慣是先把讀者分成四類寫的時(shí)候腦子里想著他們各自的時(shí)間預(yù)算。第一類是三分鐘后要決定要不要用這個(gè)東西的陌生人他們來自搜索、社區(qū)或者同事轉(zhuǎn)發(fā)只想知道這是什么、值不值得繼續(xù)看。第二類是明天就要把它跑起來的使用者他們關(guān)心最短路徑、依賴版本、配置項(xiàng)。第三類是半年后的你自己你已經(jīng)忘了當(dāng)時(shí)為什么選這個(gè)方案、那個(gè)參數(shù)為什么設(shè)成 64你需要一份能喚醒記憶的上下文。第四類是潛在的貢獻(xiàn)者他們想知道代碼怎么組織、怎么提改動(dòng)、有哪些約定。這四類人的需求是遞進(jìn)的不是并列的。README 的任務(wù)就是把這四種需求按優(yōu)先級(jí)排好讓第一類人三十秒內(nèi)得到答案第二類人五分鐘內(nèi)跑起來第三類人隨時(shí)能查到?jīng)Q策依據(jù)第四類人知道從哪兒下手。我見過反過來的寫法開頭先鋪兩千字的架構(gòu)演進(jìn)史把怎么用塞到文檔末尾結(jié)果外人根本撐不到那一節(jié)。這不是內(nèi)容不對(duì)是順序錯(cuò)了。還有一個(gè)容易被忽略的點(diǎn)README 的讀者里有很大一部分是搜索引擎和代碼托管平臺(tái)的推薦算法帶來的。別人搜到你的項(xiàng)目落地頁就是 README。這時(shí)候它承擔(dān)的其實(shí)是產(chǎn)品首頁的角色標(biāo)題、第一段、截圖、徽章全都在影響這個(gè)人的第一判斷。把 README 當(dāng)產(chǎn)品頁寫很多取舍就自然清晰了。1.2 文檔分層README 只該承擔(dān)入口那一層一個(gè)健康的項(xiàng)目文檔體系其實(shí)是分層的README 只是最上面那一層入口。我把常見文檔按職責(zé)拆成這么幾塊你可以對(duì)照自己的倉(cāng)庫(kù)看看是不是全都塞進(jìn) README 里了。README 負(fù)責(zé)這是什么、怎么最快跑起來、去哪兒找更多docs/目錄負(fù)責(zé)深入內(nèi)容比如設(shè)計(jì)文檔、部署手冊(cè)、性能報(bào)告代碼注釋負(fù)責(zé)實(shí)現(xiàn)細(xì)節(jié)和為什么這么寫CONTRIBUTING.md負(fù)責(zé)協(xié)作流程和提交規(guī)范CHANGELOG.md負(fù)責(zé)版本變更LICENSE負(fù)責(zé)授權(quán)條款配置示例文件負(fù)責(zé)字段說明。分層的好處在于README 可以保持短而有力不被細(xì)節(jié)拖累。我踩過的一個(gè)典型坑是早期把完整的接口文檔、所有配置項(xiàng)、整套部署流程全都塞進(jìn) README結(jié)果它膨脹到八百多行誰都不想讀改起來還容易漏。后來拆成 README 加docs/README 里只留一個(gè)指向文檔站的鏈接和一份最小配置示例維護(hù)成本立刻降下來。判斷某個(gè)內(nèi)容該不該放進(jìn) README我用的標(biāo)準(zhǔn)很簡(jiǎn)單如果一個(gè)剛接觸項(xiàng)目的人在決定要不要用和第一次跑通這兩個(gè)階段一定會(huì)需要就放 README如果只有深入使用或二次開發(fā)時(shí)才需要就放進(jìn)docs/README 里留個(gè)入口。這個(gè)標(biāo)準(zhǔn)執(zhí)行下來README 的長(zhǎng)度通常能控制在兩三屏之內(nèi)信息密度反而更高。1.3 三個(gè)最常見的認(rèn)知誤區(qū)第一個(gè)誤區(qū)是把 README 當(dāng)成項(xiàng)目竣工后才需要補(bǔ)的作業(yè)。實(shí)際上它應(yīng)該是和代碼同步生長(zhǎng)的東西。我的習(xí)慣是倉(cāng)庫(kù)初始化第一個(gè)提交里就有 README 骨架哪怕內(nèi)容只有項(xiàng)目名和一句話定位也比空白強(qiáng)因?yàn)樗鼤?huì)持續(xù)提醒你這個(gè)項(xiàng)目現(xiàn)在對(duì)外是什么狀態(tài)。第二個(gè)誤區(qū)是寫給自己看的備忘當(dāng)成了對(duì)外說明。這兩者的差別非常大備忘可以寫按上次那個(gè)方式跑就行對(duì)外說明必須把上次那個(gè)方式完整寫出來。我見過不少內(nèi)部項(xiàng)目的 README 里出現(xiàn)參考老版本配置同之前一樣新同事看了一臉茫然。任何指代都必須展開成可以獨(dú)立理解的句子這是硬要求。第三個(gè)誤區(qū)是認(rèn)為代碼即文檔覺得 README 寫多了會(huì)過期不如不寫。這個(gè)邏輯只在極端情況下成立——比如一個(gè)純個(gè)人實(shí)驗(yàn)倉(cāng)庫(kù)。只要項(xiàng)目有第二個(gè)使用者README 的價(jià)值就遠(yuǎn)超它的維護(hù)成本。真正的問題不是要不要寫而是怎么寫得不容易過期后面第三章我會(huì)專門講怎么把易變信息做成不易腐壞的形式比如用腳本代替手寫命令、用配置示例文件代替大段字段羅列。2. README 的骨架設(shè)計(jì)與信息排序2.1 黃金三屏讀者在不同屏上要看到什么我習(xí)慣把 README 的閱讀體驗(yàn)按屏幕切成三段每一段有明確的任務(wù)。第一屏是決策屏讀者要在這里得到三個(gè)答案這是什么、給誰用、現(xiàn)在處于什么狀態(tài)。所謂狀態(tài)指的是項(xiàng)目是活躍維護(hù)還是已歸檔是實(shí)驗(yàn)性質(zhì)還是生產(chǎn)可用這直接決定對(duì)方要不要繼續(xù)投入時(shí)間。很多人只寫功能不寫狀態(tài)結(jié)果用戶踩了一堆坑才發(fā)現(xiàn)這是個(gè)半成品。第二屏是上手屏要在最短距離內(nèi)讓人把東西跑起來。我通常把快速開始放在第一屏末尾或第二屏開頭不要讓人滾動(dòng)半天才找到。這一屏的核心指標(biāo)是命令條數(shù)我的目標(biāo)是三條命令以內(nèi)跑通默認(rèn)配置克隆、安裝、啟動(dòng)。如果確實(shí)做不到那就說明默認(rèn)配置設(shè)計(jì)得不夠友好這是代碼層面的問題靠 README 糊是糊不過去的。第三屏是深入屏把文檔、接口說明、常見問題、貢獻(xiàn)指南這些東西按索引方式排好。注意這里是索引不是全文。第三屏之后讀者基本已經(jīng)決定留下來他們要的是我遇到問題去哪兒查而不是你把所有內(nèi)容再貼一遍。這個(gè)三屏結(jié)構(gòu)最大的好處是讓寫作有了取舍標(biāo)準(zhǔn)一句話放在哪一屏直接決定它該有多長(zhǎng)、多詳細(xì)。我在實(shí)際改版中試過把一份六百行的 README 按這個(gè)結(jié)構(gòu)重組內(nèi)容一條沒刪只是重新排序和分層收到的反饋是順手多了。2.2 一份可直接復(fù)用的骨架下面這個(gè)骨架我用了很多版本基本能覆蓋大部分項(xiàng)目類型你可以直接抄下來改。順序本身就有信息量不要隨意打亂。項(xiàng)目名 一句話定位狀態(tài)徽章與關(guān)鍵鏈接文檔、示例、變更日志一段話說明它解決什么問題、適合誰核心特性列表最多五條每條一行快速開始環(huán)境要求、安裝、最小可運(yùn)行示例、預(yù)期輸出配置說明表格 示例配置文件目錄結(jié)構(gòu)說明常見問題貢獻(xiàn)方式與授權(quán)說明這里有幾個(gè)細(xì)節(jié)值得展開。特性列表控制在五條以內(nèi)是因?yàn)槌^五條讀者就不看了與其全列不如選最能體現(xiàn)差異化的。最小可運(yùn)行示例必須包含預(yù)期輸出這一條能省掉大量我跑完了但不知道對(duì)不對(duì)的追問。目錄結(jié)構(gòu)說明只講第一層和第二層深層的靠代碼注釋和文檔寫太細(xì)必然過期。至于授權(quán)說明哪怕你暫時(shí)不打算開源也建議寫清楚是否允許內(nèi)部復(fù)用是否允許二次分發(fā)這種信息晚寫不如早寫等到有糾紛再補(bǔ)就麻煩了。2.3 不同類型的項(xiàng)目README 的重心完全不一樣寫 README 最忌諱套模板不看場(chǎng)景。同樣一份結(jié)構(gòu)在不同項(xiàng)目里的重心差別很大。我整理了一張對(duì)照表是我自己維護(hù)項(xiàng)目時(shí)的判斷依據(jù)。項(xiàng)目類型第一優(yōu)先級(jí)次要內(nèi)容常見錯(cuò)誤庫(kù)或 SDK安裝命令、最小調(diào)用示例版本兼容矩陣、API 索引只寫概念不寫能跑的代碼應(yīng)用或服務(wù)依賴服務(wù)、啟動(dòng)命令、端口與訪問方式配置項(xiàng)、部署說明漏掉前置依賴導(dǎo)致啟動(dòng)失敗算法或研究代碼數(shù)據(jù)準(zhǔn)備、復(fù)現(xiàn)命令、結(jié)果對(duì)照參數(shù)含義、訓(xùn)練耗時(shí)不寫隨機(jī)種子與硬件環(huán)境內(nèi)部工具權(quán)限申請(qǐng)、接入步驟、值班聯(lián)系人常見故障處理假設(shè)大家都懂內(nèi)部黑話拿算法類項(xiàng)目舉例我見過最多的抱怨是論文里的數(shù)字復(fù)現(xiàn)不出來。這類 README 如果只寫運(yùn)行 train.py基本等于沒寫。至少要交代數(shù)據(jù)從哪兒來、預(yù)處理怎么做、用了幾張卡、訓(xùn)了多久、隨機(jī)種子設(shè)成多少最好附上一份小規(guī)模的可復(fù)現(xiàn)結(jié)果讓人能在幾分鐘內(nèi)驗(yàn)證流程是通的。內(nèi)部工具的 README 則是另一種思路它不需要解釋為什么要做這個(gè)但必須寫清楚誰能用、怎么申請(qǐng)、出問題找誰。我維護(hù)過一個(gè)內(nèi)部調(diào)度平臺(tái)最初 README 里全是架構(gòu)圖結(jié)果新同事最常問的是權(quán)限怎么開后來把權(quán)限申請(qǐng)流程提到最前面重復(fù)提問直接少了一大半。3. 逐塊拆解每一節(jié)到底該怎么寫3.1 項(xiàng)目名與一句話定位項(xiàng)目名之后緊跟的那句話是整份 README 里性價(jià)比最高的文字。它決定讀者要不要往下滾。我總結(jié)了一個(gè)簡(jiǎn)單的公式為誰提供什么能力讓他們能做成什么事。比如面向小團(tuán)隊(duì)的本地任務(wù)隊(duì)列用一條命令就能把異步任務(wù)跑起來比一個(gè)高性能的分布式任務(wù)調(diào)度系統(tǒng)要有效得多因?yàn)楹笳叱诵稳菰~什么都沒有。寫這句話時(shí)有兩個(gè)自我檢查。第一把形容詞全部刪掉看剩下的是不是還有信息量。高性能、輕量級(jí)、優(yōu)雅、現(xiàn)代化這些詞刪掉之后如果句子空了說明你沒說清楚它到底干什么。第二讓完全不懂這個(gè)領(lǐng)域的人讀一遍能不能說出哦這是用來干嘛的。我做過一個(gè)小實(shí)驗(yàn)把定位句發(fā)給非技術(shù)崗位的同事看能復(fù)述出來才算過關(guān)。另外要克制堆特性的沖動(dòng)。我見過開頭一句話里塞了七個(gè)功能點(diǎn)讀完什么印象都沒有。一句話只講一個(gè)最核心的價(jià)值主張其余的放到下面的特性列表和正文里去。3.2 徽章、截圖與演示素材的取舍徽章這塊爭(zhēng)議比較大。它的正面作用是快速傳遞狀態(tài)構(gòu)建是否通過、版本號(hào)、許可證類型、依賴更新情況。反面作用是視覺噪音尤其是那種一行掛七八個(gè)徽章的讀者眼睛會(huì)自動(dòng)跳過整行。我的做法是只保留三類構(gòu)建狀態(tài)、最新版本、許可證。其余全部刪掉需要詳細(xì)信息的人會(huì)去看倉(cāng)庫(kù)頁面本身。截圖和錄屏的價(jià)值遠(yuǎn)高于徽章但要注意時(shí)效性。截圖一定要標(biāo)注對(duì)應(yīng)的版本號(hào)否則三個(gè)月后界面改了新用戶按圖索驥找不到入口反而制造困惑。演示動(dòng)圖控制體積十幾秒足夠展示核心路徑不要錄三分鐘的全流程加載慢而且沒人看完。還有一個(gè)容易翻車的點(diǎn)不要放無法復(fù)現(xiàn)的演示鏈接。指向一個(gè)臨時(shí)環(huán)境的地址過兩周就失效了用戶點(diǎn)開是 404對(duì)信任度的打擊比不放鏈接更大。如果確實(shí)需要在線演示就把它做成可長(zhǎng)期維護(hù)的服務(wù)并且寫清楚它是演示環(huán)境、數(shù)據(jù)會(huì)被定期清理。3.3 快速開始把能跑起來壓縮到最短路徑快速開始是整份 README 里被閱讀次數(shù)最多、也最容易出問題的一節(jié)。我的寫法是嚴(yán)格分四步每一步都有明確的驗(yàn)證點(diǎn)。第一步環(huán)境要求寫清楚運(yùn)行時(shí)版本、必要的系統(tǒng)工具、需要提前啟動(dòng)的外部服務(wù)。版本號(hào)要具體到主版本比如運(yùn)行時(shí) 18 及以上不要寫最新版因?yàn)樽钚掳鏁?huì)隨時(shí)間漂移。第二步安裝命令要能直接復(fù)制粘貼執(zhí)行不要出現(xiàn)占位符混在命令里卻不說明怎么替換。第三步最小示例用最小的輸入展示核心能力。第四步預(yù)期輸出把成功時(shí)應(yīng)該看到的內(nèi)容原樣貼出來。這四步里第四步是最容易被省略、也最能省事的用戶看到輸出和文檔一致心里就踏實(shí)了。注意快速開始里的每條命令我都建議在一臺(tái)干凈環(huán)境或者全新容器里實(shí)測(cè)一遍而不是在自己已經(jīng)配置好的開發(fā)機(jī)上跑通就算數(shù)。這兩者的差別往往就是新人卡住的地方。我自己的習(xí)慣是維護(hù)一個(gè)scripts/quickstart.sh把快速開始里的命令原封不動(dòng)放進(jìn)去README 里既展示命令又提示可以一鍵執(zhí)行。這樣一來命令過期的問題在 CI 里就能被發(fā)現(xiàn)比靠人肉記憶靠譜得多。3.4 配置項(xiàng)、目錄結(jié)構(gòu)與接口說明怎么寫配置項(xiàng)最容易寫成流水賬。我的做法是統(tǒng)一用表格字段固定為名稱、類型、默認(rèn)值、是否必填、說明。必填項(xiàng)要顯著標(biāo)記因?yàn)樾氯俗畛R姷腻e(cuò)誤就是漏配必填項(xiàng)導(dǎo)致啟動(dòng)失敗。說明列寫清楚單位比如超時(shí)時(shí)間是秒還是毫秒這種細(xì)節(jié)不寫一定有人踩坑。字段名類型默認(rèn)值是否必填說明APP_PORT整數(shù)8080否服務(wù)監(jiān)聽端口需保證未被占用DB_URL字符串無是數(shù)據(jù)庫(kù)連接串格式見示例配置CACHE_TTL整數(shù)60否緩存過期時(shí)間單位秒LOG_LEVEL字符串info否取值 debug、info、warn、error表格之外再配一份config.example.yaml把典型配置寫全并加注釋。示例文件的好處是它可以被程序校驗(yàn)字段名寫錯(cuò)會(huì)直接報(bào)錯(cuò)而 README 里的文字不會(huì)。我自己維護(hù)的項(xiàng)目里示例配置文件和配置解析代碼放在一起改代碼時(shí)順手就改了文件不容易脫節(jié)。目錄結(jié)構(gòu)說明只寫到第二層用注釋說明每個(gè)目錄的職責(zé)。接口說明則遵循最小可用示例原則一個(gè)接口給一段能直接運(yùn)行的調(diào)用代碼勝過十段接口簽名羅列。3.5 常見問題與貢獻(xiàn)指南把重復(fù)回答沉淀下來常見問題這一節(jié)的價(jià)值取決于你有沒有真的去回收問題。我的做法是每周掃一遍收到的提問和討論凡是同一類問題出現(xiàn)兩次以上就寫進(jìn) README 的常見問題里并附上具體操作。寫的時(shí)候要用提問者的原話作為標(biāo)題比如啟動(dòng)時(shí)報(bào)端口被占用怎么辦因?yàn)槿藗兪怯米约旱谋硎鋈ニ阉鞯摹X暙I(xiàn)指南如果只是復(fù)制一份通用模板其實(shí)沒什么用。真正有價(jià)值的是項(xiàng)目特有的約定分支怎么命名、提交信息什么格式、哪些目錄不要?jiǎng)?、測(cè)試怎么跑、本地怎么驗(yàn)證。我見過一個(gè)項(xiàng)目明確寫了修改解析邏輯必須同步更新 fixtures 下的樣例文件否則評(píng)審不會(huì)通過這一句話省掉了無數(shù)輪溝通。4. 實(shí)操?gòu)牧惆岩粋€(gè) README 打磨到可發(fā)布4.1 環(huán)境準(zhǔn)備與倉(cāng)庫(kù)初始化從零開始的時(shí)候我建議先把骨架搭出來再補(bǔ)內(nèi)容不要一邊想結(jié)構(gòu)一邊填字。第一步是把倉(cāng)庫(kù)根目錄的基礎(chǔ)文件補(bǔ)齊包括 README、忽略規(guī)則文件、許可證、示例配置。目錄上我習(xí)慣把文檔放在docs/腳本放在scripts/示例配置放在倉(cāng)庫(kù)根目錄方便一眼看到。mkdir your-project cd your-project git init mkdir -p docs scripts touch README.md .gitignore LICENSE config.example.yaml git add . git commit -m chore: 初始化倉(cāng)庫(kù)結(jié)構(gòu)與文檔骨架這一步?jīng)]什么技術(shù)含量但它的意義在于讓文檔從第一天就參與版本管理。后面每一次改動(dòng)都能追溯誰在什么時(shí)候把哪條命令改錯(cuò)了一查提交記錄就知道。我經(jīng)歷過一次團(tuán)隊(duì)協(xié)作因?yàn)?README 是后期補(bǔ)的沒人知道某條部署命令是誰在什么背景下改的排查花了很久。.gitignore要提前寫尤其是會(huì)生成緩存、日志、本地?cái)?shù)據(jù)文件的場(chǎng)景否則提交歷史里會(huì)混進(jìn)一堆無用文件刪起來很痛苦。4.2 快速開始板塊的實(shí)測(cè)寫法寫快速開始的時(shí)候我習(xí)慣先把命令在一個(gè)全新環(huán)境里跑一遍邊跑邊記錄然后把記錄整理成文檔而不是先寫文檔再去驗(yàn)證。下面是我某次整理出來的寫法結(jié)構(gòu)可以直接套用。# 1. 獲取代碼 git clone repo-url cd your-project # 2. 準(zhǔn)備依賴建議使用虛擬環(huán)境或版本管理工具 python -m venv .venv source .venv/bin/activate pip install -r requirements.txt # 3. 準(zhǔn)備配置 cp config.example.yaml config.yaml # 4. 啟動(dòng) python -m app.main --config config.yaml啟動(dòng)之后要給出預(yù)期輸出比如日志里應(yīng)該出現(xiàn)監(jiān)聽端口和就緒標(biāo)志。這一步我一般這么寫當(dāng)終端輸出server listening on 0.0.0.0:8080時(shí)表示啟動(dòng)成功此時(shí)訪問http://localhost:8080/health應(yīng)返回{status:ok}。參數(shù)選擇上也有講究。端口為什么默認(rèn) 8080是因?yàn)檫@個(gè)端口在開發(fā)環(huán)境里沖突概率相對(duì)低而且大部分人熟悉。緩存時(shí)間為什么默認(rèn) 60 秒是因?yàn)樵谶@個(gè)量級(jí)的業(yè)務(wù)里60 秒既能擋住突發(fā)重復(fù)請(qǐng)求又不會(huì)讓數(shù)據(jù)太陳舊。這些理由不一定要全寫進(jìn) README但你心里得清楚因?yàn)橛脩舾呐渲脮r(shí)問起來答案就是文檔更新的素材。提示涉及版本號(hào)的地方盡量寫成區(qū)間或最低版本例如運(yùn)行時(shí) 18 及以上避免寫死一個(gè)精確版本否則下次升級(jí)就要改文檔改漏了就變成誤導(dǎo)。4.3 配置項(xiàng)與示例文件的具體寫法示例配置文件我通常這么組織按功能分組每組之間空一行每個(gè)字段上面一行注釋說明作用和單位。下面是一個(gè)簡(jiǎn)化版示例。# 服務(wù)配置 server: port: 8080 # 監(jiān)聽端口 workers: 4 # 工作進(jìn)程數(shù)建議不超過 CPU 核心數(shù) # 存儲(chǔ)配置 database: url: sqlite:///./data/app.db # 連接串生產(chǎn)環(huán)境請(qǐng)?zhí)鎿Q pool_size: 5 # 連接池大小 # 日志配置 log: level: info # 取值 debug、info、warn、error path: ./logs/app.log寫完示例文件后我會(huì)做一次反向校驗(yàn)打開配置解析代碼逐個(gè)字段對(duì)照看有沒有文檔里沒寫、代碼里卻會(huì)讀的字段。這種隱藏配置項(xiàng)是最坑人的用戶改了半天發(fā)現(xiàn)還有個(gè)沒寫進(jìn)文檔的必填字段。實(shí)測(cè)下來這種對(duì)照每做一次能提前消滅兩三個(gè)潛在提問。工作進(jìn)程數(shù)這類參數(shù)我會(huì)在注釋里給出經(jīng)驗(yàn)值比如建議不超過 CPU 核心數(shù)但不會(huì)寫死成固定數(shù)字。因?yàn)椴煌瑱C(jī)器的規(guī)格差異很大寫死反而會(huì)誤導(dǎo)。4.4 發(fā)布前自查清單文檔寫完到發(fā)布之間我會(huì)固定走一遍清單。這套動(dòng)作做熟了大概十分鐘能擋掉大部分低級(jí)問題。檢查項(xiàng)判斷標(biāo)準(zhǔn)不通過的典型表現(xiàn)命令可復(fù)制逐條粘貼到終端能直接執(zhí)行命令里混著未說明的占位符干凈環(huán)境可跑在全新環(huán)境按文檔走一遍能成功依賴本機(jī)已有配置才能跑預(yù)期輸出一致實(shí)際輸出與文檔描述一致輸出格式已改文檔未更新鏈接有效所有鏈接可訪問指向已刪除的文檔或頁面版本信息準(zhǔn)確運(yùn)行時(shí)版本、依賴版本與代碼一致文檔寫 16代碼要求 18配置字段齊全代碼讀取的字段都在文檔里存在未記錄的必填字段我最看重的是第二條和第六條。干凈環(huán)境能跑通說明文檔是自洽的配置字段齊全說明文檔和代碼沒有脫節(jié)。這兩條守住了其余問題基本都是小毛病。5. 常見問題與排查技巧實(shí)錄5.1 讀者跑不起來的幾類根因復(fù)盤我處理過的照著 README 跑不通的問題根因其實(shí)就那么幾類而且和文檔質(zhì)量高度相關(guān)。第一類是環(huán)境差異比如本地裝了多個(gè)運(yùn)行時(shí)版本README 沒寫清楚要求用戶用舊版本執(zhí)行就報(bào)語法錯(cuò)誤。第二類是隱式假設(shè)作者在自己機(jī)器上跑得好好的因?yàn)槟硞€(gè)目錄已經(jīng)存在、某個(gè)環(huán)境變量早就設(shè)好了文檔里完全沒提。第三類是缺前置服務(wù)比如項(xiàng)目依賴數(shù)據(jù)庫(kù)或消息隊(duì)列文檔只說啟動(dòng)服務(wù)沒說這兩個(gè)得先起來。第四類是外部資源缺失比如模型文件、樣例數(shù)據(jù)集、需要聯(lián)網(wǎng)下載的依賴文檔沒交代獲取方式。第五類是路徑問題命令里寫的是相對(duì)路徑用戶換個(gè)目錄執(zhí)行就找不到文件。這五類問題我在自己的項(xiàng)目里都能對(duì)應(yīng)到具體的修訂記錄而且它們幾乎都能通過在干凈環(huán)境實(shí)測(cè)一遍提前發(fā)現(xiàn)。我還想強(qiáng)調(diào)一點(diǎn)用戶報(bào)跑不起來時(shí)提供的往往不是根因。他說啟動(dòng)腳本報(bào)錯(cuò)實(shí)際可能是端口被占他說依賴裝不上實(shí)際可能是鏡像源配置問題。所以文檔里除了寫正確路徑也值得寫一句如果出現(xiàn)某類報(bào)錯(cuò)通常是某某原因把常見岔路標(biāo)出來。5.2 癥狀、原因與處理速查下面這張表是我這些年攢下來的放在這里你可以直接對(duì)照排查。癥狀常見原因處理方式提示找不到模塊依賴未安裝或虛擬環(huán)境未激活確認(rèn)環(huán)境已激活重新安裝依賴端口被占用本機(jī)已有服務(wù)監(jiān)聽同一端口換端口或停掉占用進(jìn)程配置文件報(bào)錯(cuò)缺少必填字段或格式錯(cuò)誤對(duì)照示例配置逐字段核對(duì)啟動(dòng)后立即退出日志級(jí)別過低看不到錯(cuò)誤調(diào)到 debug 級(jí)別重新啟動(dòng)數(shù)據(jù)為空未執(zhí)行初始化腳本按文檔執(zhí)行數(shù)據(jù)準(zhǔn)備步驟運(yùn)行結(jié)果與文檔不符版本不一致或參數(shù)不同核對(duì)版本號(hào)與參數(shù)配置這張表的用法是文檔里每個(gè)條目寫成癥狀加處理不要展開原理。原理可以在文檔站里單獨(dú)寫一篇README 里保持簡(jiǎn)短讓人一眼掃到自己的情況。我自己的經(jīng)驗(yàn)是把這張表放在常見問題開頭能顯著減少重復(fù)提問。有一次我把最常見的三條提到最前面兩周內(nèi)同類提問從十幾條降到兩三條投入產(chǎn)出比非常高。5.3 讓 README 不那么容易過期文檔過期是個(gè)必然趨勢(shì)能做的是讓它過期得慢一點(diǎn)、被發(fā)現(xiàn)得早一點(diǎn)。我用的辦法有三個(gè)。第一個(gè)是隨代碼改任何影響使用方式的改動(dòng)提交時(shí)順手改 README把這件事寫進(jìn)評(píng)審清單里靠流程而不是靠自覺。第二個(gè)是可執(zhí)行化把文檔里的命令搬進(jìn)腳本讓 CI 去跑命令一旦失效立刻暴露不依賴人工檢查。第三個(gè)是定期實(shí)測(cè)我一般每個(gè)版本發(fā)布前用干凈環(huán)境把快速開始走一遍把當(dāng)次發(fā)現(xiàn)的問題一并改掉。這個(gè)動(dòng)作看起來笨但它能覆蓋很多自動(dòng)化檢查抓不到的問題比如鏈接指向的頁面內(nèi)容已經(jīng)變了、截圖和實(shí)際界面不一致。還有一個(gè)經(jīng)驗(yàn)不要追求 README 覆蓋所有情況。它的目標(biāo)是讓絕大多數(shù)人順利開始而不是解答所有邊緣問題。把邊緣問題引流到文檔站或者討論區(qū)README 才能長(zhǎng)期保持精簡(jiǎn)。我見過試圖把 README 寫成百科的項(xiàng)目最后的結(jié)果是沒人維護(hù)、內(nèi)容全面過期反而傷害了信任度。6. 把 README 做得更耐讀的幾個(gè)工程化手段6.1 用輕量工具守住格式與鏈接格式和鏈接是 README 最容易出問題的地方好在都有現(xiàn)成的小工具可以幫忙。格式檢查方面可以用 markdownlint 這類工具在提交前跑一遍常見的標(biāo)題層級(jí)混亂、列表縮進(jìn)不一致、行尾多余空格都能自動(dòng)標(biāo)出來。鏈接檢查方面可以用 markdown-link-check 之類的工具掃描所有鏈接把失效的挑出來。# 以 Node 生態(tài)為例安裝后在提交前或 CI 里執(zhí)行 npx markdownlint-cli2 **/*.md npx markdown-link-check ./README.md這兩個(gè)檢查我建議放進(jìn)提交鉤子或者持續(xù)集成流程里因?yàn)槿搜酆茈y在幾百行文檔里發(fā)現(xiàn)一個(gè)失效鏈接。鏈接失效通常不是你的錯(cuò)但對(duì)讀者來說就是你的問題所以定期掃一遍很有必要。目錄導(dǎo)航也可以自動(dòng)化。文檔長(zhǎng)了之后手動(dòng)維護(hù)目錄既麻煩又容易漏用工具根據(jù)標(biāo)題層級(jí)生成目錄每次改完標(biāo)題重新生成一次就行。這類自動(dòng)化能省下的時(shí)間不算多但能避免目錄指向不存在的章節(jié)這種尷尬。6.2 把可執(zhí)行的步驟做成腳本前面提過把快速開始的命令做成腳本這里展開說一下怎么組織。我的做法是在scripts/下放三個(gè)腳本環(huán)境準(zhǔn)備、數(shù)據(jù)準(zhǔn)備、啟動(dòng)。README 里既寫出完整命令也提示可以用腳本一鍵執(zhí)行。# scripts/quickstart.sh 示意 set -euo pipefail python -m venv .venv source .venv/bin/activate pip install -r requirements.txt cp -n config.example.yaml config.yaml || true echo 環(huán)境準(zhǔn)備完成接下來執(zhí)行 scripts/run.sh 啟動(dòng)服務(wù)腳本比文檔有個(gè)天然優(yōu)勢(shì)它會(huì)真的被執(zhí)行壞掉就會(huì)報(bào)錯(cuò)。文檔不會(huì)報(bào)錯(cuò)只會(huì)安靜地誤導(dǎo)人。另外腳本里可以用set -euo pipefail讓任何一步失敗都立刻中斷用戶不用在滿屏日志里找哪一步出了問題。有一點(diǎn)要注意腳本不要做太多聰明的事比如自動(dòng)修改系統(tǒng)配置、自動(dòng)安裝系統(tǒng)級(jí)依賴。這種操作在別人機(jī)器上風(fēng)險(xiǎn)很高容易引發(fā)反感。腳本的定位是把手工步驟串起來而不是替用戶做決定。6.3 多語言版本與文檔站的關(guān)系項(xiàng)目面向的使用者如果跨語言README 的多語言版本就值得考慮。我傾向的做法是根目錄保留主語言版本其余語言放在docs/下并在 README 頂部放切換入口。這樣既能覆蓋不同讀者又不會(huì)讓根目錄堆滿一堆 README 變體。需要提醒的是多語言版本最大的風(fēng)險(xiǎn)是不同步。主版本更新了其他語言版本還停在半年前讀者看到的內(nèi)容自相矛盾。我自己的處理方式是只在項(xiàng)目趨于穩(wěn)定、確實(shí)有跨語言需求時(shí)才引入多語言并且在文件頭標(biāo)注最后同步時(shí)間和對(duì)應(yīng)的主版本方便讀者判斷新鮮度。至于文檔站它和 README 并不是替代關(guān)系。README 是入口和最短路徑文檔站是深入內(nèi)容的容器。兩者之間用鏈接互相指路即可千萬別想著把文檔站的內(nèi)容復(fù)制粘貼一份到 README 里那樣只會(huì)得到兩份都會(huì)過期的文檔。最后分享一點(diǎn)我自己的體會(huì)README 是我維護(hù)過的所有文檔里唯一一個(gè)會(huì)被反復(fù)打開、反復(fù)引用的東西。代碼可以重構(gòu)架構(gòu)可以推翻但 README 的每一句話都可能在某個(gè)深夜被一個(gè)著急的人讀到。我在實(shí)際項(xiàng)目里養(yǎng)成的習(xí)慣是每次收到這個(gè)怎么用的提問先不急著回答而是問自己一句這句話應(yīng)該出現(xiàn)在 README 的哪個(gè)位置?;卮鹜赀@個(gè)問題答案往往順手就寫進(jìn)文檔了下次同樣的提問也就不會(huì)再出現(xiàn)。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
人人操人人叉人人插人人| 97一本大道亚洲一区| 亚洲综合电影| 欧美综合777| 曰韩欧美国产传媒麻豆第一区| 久久伊人亚洲AV无码网站| 午夜啊啊| 日韩 欧美 国产 麻豆| 色色五月婷婷| 探花熟女,姿勢到位,體驗感也到位| 97在线观看视频| 91红杏| 综合久久欧美| 女人高潮抽搐喷水视频网站| 免费亚洲黄色视频在线观看| 欧美性爱第一页久久| 色色青青久久| 欧美 综合 亚洲| 亚洲青青青视频在线| 日韩操人| www.色操逼| 亚洲国产成人福利在线观看| 日韩强奸av| 凹凸精品熟女在线观看| 亚洲有码视频二区| 992大香蕉| 亚洲高清91| 久久人体一区二区| 屁股久久久久久久久久| 五月丁香六月综合缴清无码| 91人妻最真实刺激绿帽| 在线中文字幕极品av| 欧美色视频在线| 男人的天堂 在线一区| 97人人夜| 91免费看一区二区三区 | 午夜久久无码1000合集| 日韩人妻播放| 九九九九久久久| 91超碰人人操| 五月天综合网| 偷拍欧美激情| 东北老女人的激情视频| 天堂亚洲精品久久老牛| 国产精品久久久亚洲第一牛牛_在线观看| A啊啊在线观看| 男人久久精品| 一二三四区电影| 啊啊啊啊,啊啊好多水 | 天天拍天天操| 综合网,亚洲,欧美| 久久久亚洲精品电影免费看| 日韩人妻无码精品系列| 91久久精品美女高潮喷水| 91伊人久久在线| 成人精品水蜜桃久久久久久久| 久久99精品九九久久久婷婷| 色偷偷2020免费视频播放| 18精品一二区| 少妇高潮流水av免费| 日本黄色精品专区网站| A 天堂在线观看视频| WWW黄片COM| 欧美亚州色的图| 久久精品99久久久久久| 丝袜加勒比| 无马一区二区| 国产91精品福利在线| 日本片日本片祼观看网站在线看中文版网页在线看 | 九九九免费视频| 手机午夜电影神马久久| 久久免费精彩视频| 啊啊啊啊在线观看网址| 撸无码不卡免费视频| 亚洲图片91| 秋霞免费无码视频日韩A片| 在线中文字幕极品av| 亚洲男人的天堂亚洲| 天天弄欧美| 尤物AV免费网站| 天天澡天天爽日日AV| 欧美人人曰人人操人人射射| WWW美腿丝袜香蕉中文| 国产精品乱码久久久| 国产成人无码a| Julia在线播放亚洲久久| 91亚州欧美| 91精品久久久久久| 盗摄女人妻在线| 大香蕉在线视频15| 欧美黑人与女人91| 夜夜影视四色| 精品96久久| JuliaAnn丝袜熟女系列| 丁香五月激情啪啪| 91热色| .精品人妻一区二区三| 97人人干| 国产后入式在线观看| 亚洲欧美国产va在线播放频| 盗摄 精品 另类 一区| 久久久专区| 九九九九热| 色小视频蜜乳| 伊人96在线| 秋霞一级鲁丝片A片| 人人乐大香蕉| 久久久久久久唑| 日韩一级片在线看| 熟人人妻少妇精品久久| 五月婷婷色| 综合五月天| 不卡免费av在线播放| 亚洲色图综合网| 91伊人久| 国产第二页| 翔田千里爆乳巨臀无码| 熟妇人妻一区二区| 日本黄色精品专区网站| 黄色小说亚洲| 乱抡国产91| 激情图片伦理国产一区二区日韩| 女人天堂av在线播放| 久色网| 日韩电影中文字幕| 天天综合网国产| 91狠狠综合网| 国产午夜福利视频在线| 九色精品视频导航1| 国产av热热色| 亚洲精品 大香蕉| 欧美色九九| 婷婷五月天成人| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 亚洲女毛多水多21P| 中出在线视频| 婷婷色综合| 高清孕妇孕交 交| 2020中文字幕| 欧美激情欧美精品| 日本欧美亚洲高清在线看| 97精品一区| 亚洲精品视频在线播放| 亚洲色综合| 青青草视频导航官网| 一级毛片久久久久久久女人18| 白丝jkav| 久久香蕉国产传媒一区剧情天美| 亚洲日韩视频二区| 中出20p| 色性荡荡荡荡视频| 操逼操逼逼操操逼91| 亚洲自拍小说| 欧美大香蕉97| 成人av动漫在线观看| 日韩色香| 99精品高潮| 五月天偷拍| 亚洲欧洲无码bt精品合集| 爱妻综合网| 亚洲久热| 91在线超高颜值国产| 91蜜桃传媒精品久久久一区二区| 精精夜夜| 狼人久草| 中文字幕日韩人妻视频一区二区三区| 加勒比中文av| 性91| 亚洲乱熟女一区二区| 日韩97视频!在线| 激情四射熟女丝袜| 久久夜色一区二区| 婷婷五月av| 国产操逼视频在线观看| 日韩熟女操逼| 国产精品美女久久久久久网站| 中文字幕人乱码中文字的预防方法 | 亚洲国产综合久久天堂| 七久久久| 91五月天| 久热9| 自怕偷自怕亚洲精品| 日本三级精品| 日韩综合色网| 久久久91福利姬| 中文字幕超碰CAO| 黑丝内射一区二区三区| 激情五月激情综合网| 欧美精品99久久久**| 国产高清自拍视频| 中文字幕熟女人妻丝袜| 亚洲成人在线乱码色午夜| 欧美夜夜骑视频| 精品国产自在在线99| 92午夜免费福利视频| 樱花蜜乳av| 欧差乱伦二三| 色欲天天综合久久久无码网中文| 91岛国动作片| 91熟女丨老女人| 久久精品无码不卡| 欧美综合色| 国产熟女自拍| 熟女露脸激情自拍视频| 操老熟女AV| 欧美在线中M| 亚洲有码第一页| 国产丰满少妇久久久精品影院| 男人的天堂.com| 欧美色图片91| 精品国产国产AV| 伦在线97| 国产97综合| 97ai亚洲| 精品午夜福利导航| 无码 有码 国产18p| 乱伦AVxx| 婷婷五月综合激情| 偷拍 精品另类 凸凹了四区| 国产精品欧美激在线| 午夜性| 人人澡人人弄| 青青久日| 欧美日韩在线小说| 欧美成人免费在线观看| 99国产在线 精品 视频| 久草免费在线一区二区| 99综合网| 爱欲AV| 曰本熟女视频| 黄页网站成人免费| 狠狠爱综合网| 最新日产中文在线麻豆| 日本三级久| 亚洲不卡av在线| 日韩情色AV| 欧美黑人91| 蜜臀网 一区| 中文字幕美女91| 日本www操操操| 91oumei| 1204av韩国| 天堂av最新电影网| 在线视频97| 中国少妇XXXX做受| 大香蕉婷婷| 超碰在线人妻不卡| 三级色影综合网| 国产真乱mangent| 久久人人舔人人爽舔人人av片| 亚洲精品成人| 精品96久久| 99999久久精| A 在线网址| 人妻天天夜夜爽一区二区| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 蜜臀亚洲中文| 女生看匆91网站| 成人小说视频在线精品欧美| 少妇高潮99p| 97精品97久久| 2018天天干在线视频| 91久久久久久| 黄色无码高清黄色无码网站| 偷拍亚洲高清图片| 亚洲h片在线免费观看| 97精品综合久久| 亚洲熟妇图片| 国产精品另类| 日韩黄色一区二区三区| 四虎视频在线观看| 超碰午夜| 首页亚洲国产高跟丝袜诱惑视频| 日韩ab网| 牛牛操视频逼| 亚洲另类色图片| 日韩综合97p| 上海一级黄片| 福利天堂| 九月激情婷婷| 一区| 84YTCOM性无码| 国产毛片精品一区二区色欲黄A片| 免费看污网址| 成人小说视频在线精品欧美| 麻豆性爱视频在线播放| 天天干天天操天天操夜夜操天天操| 人人插人人搞人人操| 欧美猛交黑寡妇中文字幕| 密乳视频在线| 国产蜜臀精品一区免费尤物| 美女9118禁| 亚洲精品成人| 91丝袜人妻| 亚洲精品乱码久久久久久蜜桃麻豆| 日本999精品| 99久久精品无码一区二区毛片免费| 日本狠狠干| 密臀在线视频| 欧美美女自慰一区二区三区| 97av在线观看| 亚洲综合另类欧美久久久| 蜜臀久久99精品久久久电影| 人人色97| 国产精品懂色tv影视免费观看| 狠狠狠狠狠干| 久久97超碰| 超碰日本97美女人妻人人玩人人爱| 国产精品久久泡妞网站| 亚洲av在线免费观看| 大色综合| 99色日| 天天色综亚洲91污| 亚洲熟女诱惑| 美女黄页| 精品九九国产无码| 日韩亚洲97| 日本精品一区二区中文字幕| 久久婷婷成人综合色怡春院| 亚熟在线| 免费作爱一级视频| 欧美 亚洲| 99久久无色码| 欧美日韩国产中文精品字幕自在自线| 青青草一区二区三区四| 99九九久久| 全免费a敌肛交毛片免费| 另类图片五月天| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 蜜桃精品一区二区三区久在线| 久草视频在线视频在线视频在线观看| 欧美综合色图片| 日本久操视频| 日本性爱不卡视频| 日韩免费av片高清无码| 日日不卡av| yazhousetuoumei| 欧美日韩国产高清在线一二三区 | 日本 情色 1区2区3区| 五月丁香大香蕉| 国产拍偷精品网站| 国产青青综合伊人| 桃色人妻在线视频| 亚洲少妇喷视频看| 日日日日做夜夜夜夜无码| 人人妻人人色一区二区三区| 伊人久久亚洲中文字幕| 国产精品蜜乳AV| 久久国产在线一区二区| 97久久久网站| 超碰97久久国| 骚熟女吞| 亚洲精品一区二区三区新线路| 蜜乳性色无码专日粉嫩骚逼AV| 日本Suv精品一区二区| 国产精品久久久久久久久久久久久久久久| www.91色综合| 91精品无码人妻系列| 手机午夜电影神马久久| 国产精品久久久久久久久久久久久久吹 | 日韩国产欧美伦理在线| 无遮挡男女激烈动态图| 97亚洲在线| 亚洲,欧美,综合网| 午夜久久久| 亚州再线| 日本一二三高清| 天天天天操| 99精品成人免费看| 一级aaaaa欧美中文字幕录像片| 久久人| 亚洲欧洲日韩中文字幕一区| 欧美第一页| 欧美色图 人妻| 日韩一区二区熟女| 嗯啊不要啊啊在线观看视频| 日韩中字av一区| 五月婷视频| 日本岛国黄色网址| 97干在线视频| 天美传媒一二三区永久网站| 91在线综合网| 91色噜噜狠狠| 久久久精品中文字幕麻豆| 国产午夜视频| 91N综合网在线| 欧美在线色| 无码男人天堂| 欧美在线大香999| 黄页网站成人免费| 91丝袜在线播放| 蜜臀久久99精品久久久久久酒店| 三级色影综合网| 91精品人妻一区二区三区蜜桃| 九九九精品美女| 天天综合网~91| 啊啊啊好想要| 久久日韩精品一区二区| 午夜啪啪片| 久久久久久久国产a∨| 亚洲日韩美女中文字幕乱| 国产精品熟女丝袜一区二区| 97色色网| 噜噜噜亚洲精品| 亚洲精品不卡一二三区| 91N综合网| 9999久久久| 人人弄人人摸| 日韩av影片在线观看| 国产成人无码网站在线视频| 激情自拍 校园春色| 国产伊人自拍| 亚洲综人| 干我久操| 欧美特大黄一级片片免费| 99自拍视频在线| 狼人综合婷婷激情四射| 天天舔天天日天天射| 欧美图片色五月天| 欧美岛国精品在线观看| 亚洲最大网站av| 精品久久青青草| 亚洲淫色网中文| 婷婷20月天青娱乐| 日韩人妻一二三区视频| 天天干天天干天天干| 久久嫩草国产成人一区| 欧美成人贴图| 中文字幕AV乱伦| 综合网色| 97免费视频在线观看视频| 这里只有97精品| 国产家庭乱伦表演| 欧美A√综合网| 欧美丰满少妇交换91欧美精品| 日本成人在线不卡一区二区三区 | 在线 亚洲 网爆 自拍| 超碰午夜| 国产最火爆久久国产网站网站| 黄色欧美性爱视频| 亚洲第一色页夜| 天堂网亚洲区手机版| 日韩综合成人免费视频| 99这里都是精品| 日韩资源网| 国产精品香蕉| 99热18| 日本天天干天天日一区| a片偷拍视频| 亚洲人妻一区二区三区| 国产精品一区二区麻豆| 亚洲国产av中文字幕久久 | 亚洲高潮影院| 日本午夜久久电影| 天天操人人操骚逼网站| 无码直播久久久| 嗯啊免费视频| 中文字幕后石码四区五区| 欧美疯狂做爰xxxx| 久久久久921| 日本十八禁免费看污网站| 欧美综合自拍成人自拍第二十页| 天天碰久久入| 欧美人妻一区| 九久久精品| 性色av网站| 偷拍色图| 夜嗨影院| 久久久神马影院| 欧美性爱www免费版| 青娱乐大香蕉| 一级毛片久久久久久久女人18| 区一在线观看| 久久透逼视频| 加勒比伊人影院| 综合操逼| 亚洲欧美国产精品久久久久久久| 岛国成人av在线播放网址| 超碰97综合网| 中文字幕五区| 国产视频人人网| 懂色AV中文| 在线免费观看日韩一区| 欧美体内射精| 丝袜美腿欧美| 国产又黄又爽又刺激久久久久久| 青青草在线视频欧美| 国产三级在线现体验区| 久久是精品| 丁香六月综合激情| jizz啪啪| 射丝袜大香蕉| 国产又粗又又黄又猛| 97九色| 国产日韩人人| 久久精品性| 日日夜夜免费| 伊人亚洲综合| 亚洲色五月| 无码久久国产 | 欧美性爱精品七区| 蜜臀色乳| 综合色色网| 国产一级高清免费观看| 神马久久69| 啊啊啊啊啊好舒服视频| 99久久网站| 亚洲阿v天堂在线| 国产精品suv一区| 影音先锋国产精品| 黑人精品XXX一区一二区| 国产精彩女在线观看视频| 97色婷婷| 亚洲国产奇米影视久久| 日日摸天天爽夜夜欢| 久久超碰大香蕉| 超碰av在线| 欧美老妇曰批的视频| 78m啪啪啪| 成人十八禁日韩欧美一二三| 78综合网| 色播五月丁香| 国产午夜激片Av毛片不卡| 亚洲资源站| 肉丝无码中文高清| 久久久久久大| 色色亚洲| 无码少妇精品一区二区60岁老人| 爽极品影院| 操逼操2| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 亚洲青青草| 青青草视频在线观看一区二区| 激情四射五月天| 国产精品欧美日韩久久| 手机看片日韩人妻| 熟妇乱伦一区二区| 999精品久久久久久久| 91插B网站| 操曰本熟女| 96免费视频在线| 久久大香蕉手机高清视频| 一区二区三区视频| 爱做久久久久久| 日韩久久.一级黄色片| 欧美一区二区三区互相| 日韩激情电影中文字幕| 色姑娘综合网| 亚洲一区日韩精品中文字幕| 国产精品99999| 蜜臀99久久| 久久久久久久九九九九| 丁香六月啪| www网站黄| 亚洲码专区| 天天色播亚洲综合网站| 大香蕉黄色一区| av片在线观看免费播放| 亚洲午夜AV| 国产精品色色| 日韩97视频!在线| 日韩99神马视频播放片在线播放| 亚洲国产精品久久久久婷婷青年| 精品一区二区三区最新| 校园春色综合色| 好吊色一区| 精品二999| 国产精品高朝久久久久久久| 97在线观看视频| 九九九成人| 久 久无码人妻AV| 91综合在线| 性videos欧美熟妇hdx| 欧美日日操| 亚洲一区二区精品福利| 99色色网| 色婷婷成人综合| 性爱AV天堂| 欲综合网| 东京热一区二区中文字幕| 国产精品嫩草影院午夜两性| 中文字幕乱码人妻二区三区| 亚洲激情视频| 成 人 A V免费视频在线观看| 日韩免费三级黄片电影| 日本色色色色色视频| 日本一本道A级黄色毛片试看60分钟| 岛国精品视频在线观看| 久久乐| 欧洲乱码视频| 一区二区不卡免费| 精品国产乱码久久久| 国产一级舔足在线观看| 做爱A级亚欧| www久久久| 人人色人人射人人妻| 91天天爱| 日韩欧美麻豆| 国产又黄又粗又猛大片 | 久久国产99精品72福利| 手机在线免费看的av| 午夜精品久久久久久久久久蜜桃| 天天天天天干夜夜夜夜夜操| 野狼激情网| 四虎在线免费视频| 大香蕉99999| 国产多人在线观看视频| 日本色婷婷| 丝袜综合| 91精品91久久久久77777俄罗斯老妇姓x| 中文字幕在线观看网址| 欧美日韩人妻精品系列一区二区三区| 澳门黄片一香蕉视频| 人妻aa| 色盈盈影院| 9.1小视频| 超碰国产精品无码| 五月丁香综合啪啪| 久久免费精品96| 少妇久久久久久久| 亚洲操逼无码| 亚洲日韩欧美一区二区| 国产精品九九九| 久久久婷| 蜜臀av网址| 思思久热在线精品66| 99热官网| 啊啊啊啊在线播放| 久久夜黄色无码A级大片| 超碰97爽| 久久免费少妇| 99热这里是精品| 亚洲欧美在线综合| 国产精品亚洲一级av第二区| 人妻久热在线| 国产在线播放成人免费| 综合久久中文字幕综合日韩精品| 六月婷婷一区二区三区| 毛片久久| 午夜精品一区二区三区三上悠亚| 色噜噜日韩精品| www.99中文字幕| 久久久专区| 精品一区二区国产日韩| 很黄很污的免费网站| 999精品女人| 99操视频| 亚洲日韩资源| 日本αv| 日本美女性生活久久久久久久 | 婷婷色综合欧美日韩| 嗯嗯啊在线视频| 啊啊啊无码| 免费看污网站| 啪啪视频亚洲第一| 免费草草草草草视频| 国产树林里野战在线看| 天天天操天天天爱| 日人妻视频91| 国产精品69久久久久久久| 亚洲欧洲综合av在线| 国产丰满少妇久久久精品影院| 成人免费看吃奶视频网站| 91真人天天在线| 亚洲欧美在线观看2021| 97超级久久| 澳门成人网站久国产日韩| 天天日天天干天天操| 校园春色制服丝袜中文字亚洲| 99999久久精| 蜜桃成人1区2区3区| 翔田千里Av在线| 91久久久视| 免费的黄片wwwwww| 欧美日韩制服| 佐山爱中文字幕| 国产一级特黄大片处女| 麻豆色约约| 99无码| 狠狠爱夜夜| 综合激情97| 国产高清MV操逼视频| 少妇激情一区二区三区视频| 久7色| 丝袜剧情| 日本一级特级毛片视频| 9 9无尺码天堂网| 插入综合网| www.91逼逼.com| 精品久| 天堂涩涩| 人妻嗯啊啊在线播放| 国产精品久久久久久久AV大片| 久久久久久久久久久久九| 热九九精品| 91精品人妻偷情| 超碰 欧美| 欧美日日夜夜| 亚洲综合激情五月久久| 日韩一级欧美一级国产一级台湾 | Sekablack无码一区| 99re99在线视频| 亚洲熟女乱色| 日本三级日本三级99| 国产精品一二三区18| 看黑人AV不卡| 99视频精品| 久久久久久久久久va| 亚洲 在线| 久久久久密臀视频| 大香蕉AV丝袜| 97人人超| 日韩免费看黄片| 日本操逼无码| 春色综合网| 女人的天堂大香蕉网| 女人天堂AV五区在线| 国语av最新自产拍在线观看| 中文字幕第9页萱萱影音先锋| 91蜜桃传媒精品久久久一区二区| 97欧美日韩中文| 中文字幕一区 二区三四五 区日 日骚| 岛国在线一区二区三区| 日日超碰亚洲| 国产精品片| 少妇高潮喷水无套久久久久久| h在线看免费版在线看| 欧美精品自慰系列寂寞少妇| 伦激情人妻另类人妻| 亚洲欧美另类激情小说| 在线二区不卡| 一本大道青青| 亚州欧美综合| 九热超碰| 操淫穴亚洲五月丁香| 日本九九久久99| 一区,二区,三区网站| 激激五月| 亚洲日韩AV视色| 亚洲欧美激情另类色图| 国产精品老师| 婷婷激情四射| 欧美性爱另类综合| 久久久国产三级黄色片| 精品伊人久久久大香线蕉小说| 最新啪啪视频| 成人八戒网站| 伊人五月天| 青娱乐日韩无码| 五月综合激情网| 欧美黄片免费在线观看视频| 婷婷五月综合在线| 999岛国大片| 久久性爱精品一区| 亚洲无线码欧洲精品区别| 超碰国产精品无码| 自拍偷拍第26| 日韩精品人妻一| 熟女这里只有精品6| 在线播放一级无码视频| 亚洲成人在线高清| 99久久久er直播网址| 乱伦av.com| 五月天久久久| 婷婷五月花| 日韩天堂av电影在线观看| 熟女啪啪视频| 成人一区二区三区四区| 99只有精品| 91蜜桃传媒精品久久久一区二区| 女上位精品在线| 麻豆精品.欧美精品.日韩精品.| 97神马久久| 日韩熟女操逼| 亚洲av综合色区无码一| 99啪啪| 婷婷在线视频| 天美传媒AV国产在线| 天堂涩涩| 天美精品原创av片国产| 在线观看一级α片刺激高潮视频| 凹凸久久人人| 天天色播| 久草在| 加勒比色99999| 日本成人免费一区二区三区| 国产女人高潮嗷嗷嗷叫小说| 久久婷五月天| 国产精品一区二区三区在线密挑| 在线97在线| 一区二区视频你懂的| 9丨久久九九九| 激情婷婷综合久久| 中文字幕交换人妻| 欧洲天天在线| 成人久久久精品| 中文操逼字幕| 美女黄频a美女大全免费皮| 久久综合日韩亚洲欧美| 久草精品一区| 亚洲一二三四区| 色综合久久88色综合久久天天| 5278欧美一区二区三区| 91久青| 干B| 亚洲色图A| 熟女激情综合网| 国产成人久久久精品免费AV| 亚洲黑丝在线| 91爱欧美| 伊人一级免费黄片| 99综合网| 夫妻AV网站| 精品一区二区成人| 欧美中字二区| 五十路熟女人妻一区二区在线观看| 中国一区二区亚洲人妻| 殴美综合色88| 国产强奸乱伦无码视频| 高清国产av无码| 少妇精品久久久| 亚洲黄片免费在线播放| 91蜜臀熟女| 一区二区三区四区五区久久久久久| 欧美aa一级片| 国产天天骚| 欧美高清色| 欧亚免费视频| 亚洲色图加勒比| 野狼激情网| 久久女人| 久久9视频| 亚洲色欧| 欧美专区日本专区| 亚洲资源网| 国产精品久久99日日| 亚州久久9| 日日噜噜夜夜狠狠视频无| 嗯嗯嗯嗯啊啊啊好紧好大| 中文字幕国产| 国产精品久久久久久久久AV大片 | 天天操天天射青青草| 亚洲欧美校园| 激情抓乳插进去啪啪啪日韩 | 丰满人妻一区二区三区| 九色 蝌蚪 熟女自| 9久久精品| 青青草视频久久久久| 成人无码在线视频网站| 夜精品久无码| 亚洲伊人a线观看视频| 69综合网| caoni国产亚洲av| 加勒比性爱成人在线| 探花激情视频| 久久9久久| 久久精品亚洲婷婷| 欧美亚洲一级在线观看| 91丝袜激情在线| 乱伦3P视频| 91网站18+| 屌逼麻豆| 国产性爱强奸乱伦大全| 人人澡综合涩| 日本丝袜人妻内射| 91中出视频| 96爱综合| 日韩色欲久久一二三四区| 久久久一二三四区| 人人操AV| 久久中文字幕一区不卡| 日韩精品人妻中文字有码在线 | 成人在线永久| www.久久久久| 久草成人| 亚洲伊人久久精品影院| 欧美一级A片在线看视频性色| 精…码一二三区| 涩爱AV在线| 极品色www影院| 亚洲综合伊人无码久久| 18岁禁 茉莉成人久久| 熟女六十路| 91肉丝| 熟妇高潮二区三区| 亚洲色图大香| 特级丰满少妇一级AAAA爱毛片| 99久在线精品99re8蜜桃| 亚洲网自拍| AV电影在线播放| 91精品无码久久久久久久| 欧美丝袜美女电影一二三四区| A久久| 萌白酱自拍视频| 超碰99在线| 2017超碰| 亚洲人妻一区二区三区| 人妻一二三区| 91欧美大片| q2午夜理论片夜色av| 欧美狠狠操| 国产精品女生av| 人人操人人精品影片| 五月天成人综合| 人人摸.人人色| 亚洲国产蜜臀系列在线观看| 伊人婷婷五月天| 人妻一二三区| 97精品视频在线| 91丝袜美女| 色色婷婷五月| 懂色AV蜜臀无码精品APP| 在线视频免费观看午夜| 欧美姓爱综合网| 97少妇人妻中文字幕久久| 免費人妻夜夜爽天天爽爽一区| 九九香蕉网| 无码日韩人妻av一| 操操吧亚洲乱伦视频| 蜜臀99久| 91宗合网| 亚洲 日本 不卡| 色阁阁AV综合网| 亚洲97p| 欧美少妇大量自拍视频在线观看| 五月天激情婷婷| 国内毛片无码一级毛片| 日韩欧美大力操| 无遮挡一级毛片视频免费的| 欧美日韩久久精品爱爱| 巨乳特殊服务按摩| 亚洲中文字幕乱码无码一区二区| 欧美激情总合网| 95精品在线| 激情四射五月天| 日韩人妻无码专区| 国产日本久久免费精品| www.av在线观看| 爱做久久久久久| 日本激情免费大片| 天堂中文资源在线bt| 少妇无码av专区线| 无码高清操逼网址| 黄色免费一级在线毛片| 欧美亚洲| 天天看天天日天天操| 中文三一区| 亚洲综合20p| 亚洲成a人v欧美综合天堂下载| 夜夜躁狠狠躁日日躁av| 丰满人妻区一区二区三| 欧美97色| 97精品一区二区视频| 日本黄大片在线观看视频| 国产精品爆乳懂色蜜乳| 成人影 天天操 亚洲| 亚洲欧洲小说图片视频 | 高清不卡国产| 日本欧美成人片AAAA| 日韩在线视频1234| 67194无码不卡| 超碰1024久久| 嫩草 我啊~嗯~在线| 深喉吞精| 青青草福利视频| 成人无遮挡毛片免费看| 亚洲国产av中文字幕久久| 熟女色综合久久| 日韩啪啪啪啪啪| 色好看av| 中文字幕欧洲有码| 亚洲一区二区av| 一二三四视频中文字幕在线看| 亚洲av无线观看| 午夜精品视频777| 欧美最婬乱婬爆婬性视频 | 久久久夜夜夜| 人人操我人人干| 十八禁成人网站在线观看| 另类天堂| 日韩少妇丰满亚洲| 激情文学亚洲| 欧美组图日韩亚洲中文字幕| 日本人妻中文字幕精品| 亚洲精品成人激情在线| 极品粉嫩一区二区| 欧美日韩青操| 亚洲91色| 操操逼视频| 天天爽天天| 亚洲天天影视色综合| 久热这里| 欧美精品日韩久久久九| 天美av在线观看| 2017大香蕉国产精品久久| 老鸭窝成人免费毛片视频| 欧美日韩国产一区二区小黄片大全| 婷婷五月天激情网| 五月天色电影| 天天久久久久久| 少妇3P性爱自拍| 天天操女人| 超碰碰小说97| 亚洲色图尤物视频 | 日韩精品人妻中文字有码在线| 欧美亚洲涩涩| 欧美日韩国产一区二区小黄片大全| 2020国产精品| 欧美精品久久96人妻无码| 91观看 国产白丝| 国产尤物AV尤物在线观看不卡| 日韩人妻少妇中文字幕| 变态另类专区| 人人爱人人操人人性| 色嘟嘟人妻天堂网| 欧美热图99| 精品人妻av在线播放| 亚洲一二三四区机械| 欧美加勒比| 欧美亚洲中文字幕| 道久久五香丁月婷婷激情综合| 92性色国产午夜福利在线661| 伊人久久艹| 蜜臀久久99'精品久久久| 欧美日韩亚洲一区二区在线观看| 欧美午夜精品久久久久久3D| 日本 情色 1区| 亚洲AV无码黄色强奸| 精品一区二区三区四区外站 | 日韩精品高清资源在线| 亚洲色图一区二区三区| 五月大香蕉| 果冻传媒一区二区三区| 91操人| 男人天堂电影院| 2020中文字幕| 1240青青草一区二区三区视频天爱| 秋霞曰韩R级| 色777999综合| 亚洲欧美精品福利在线| 97精选久久| 日本人人操人人操| 一区超碰一区| 國產尤物AV尤物在線觀看| 国产精品乱码久久久久久久| 乱伦日本色图AⅤ| 国产精品熟妇一区二区三| 国产av强奸美女| 熟女精品一区二区在线观看| 在线岛| 东北操逼| 五月天色色色| 91无码人妻精品一区二区三区蜜桃| 性色av婷婷久久一区二区点复制| 婷婷丁香人妻 | 肉嘟嘟www视频在线观看高清| 日本熟妇色熟妇在线视频播放| 国产精品欧美日韩久久| 欧美91精彩| 操逼网免费无码视频| 国产日本顶级一区二区三区| 337p大胆噜噜噜噜噜91Av| 91天天综合日韩欧美| 欧洲天天在线| 日本操逼无码| 高潮综合网| 五月丁香六月综合缴清无码| jiujiujiujingpin| 精品一区二区亚洲国产| 欧美少妇高潮久久91| 色综合久| 亚洲综合欧美| 九九热免费国产视频婷婷伊人| 黄片qw| 怡红院网站在线视频| 亚洲欧美在线观看免费| 久久久无码精品人妻二区| 欧美成人9797| aV中亚| 爱妻综合网| 天天日老熟妇| 看黄片视频免费| 91成人精品| 一区| 这里有精品| 可以免费看黄片的视频| 91在线国产后入风骚翘臀美女素人| 蜜臀av在线播放一区二区三区| 日韩av在线精品观看| 无卡一区=区| 91女网站| 国产第25页在线观看| 亚洲欧美天堂| 久草线上视频免费看| 亚洲日本成人动漫| 东北丰满熟女国产一区| 欧美天天弄| 日本天天干天天搞一区| 亚洲性爱高潮影院| 偷拍自拍在线视频观看| 日本色日夜干| 久久久成人免费av电影| 91丝袜美女| 亚洲一卡2卡3卡4卡乱码网站 | 欧美很很操视频| 无码 黑人一区二区三区| 91狠狠狠| 国产精品一区二区后入| 久久色激情一区二区三区| 亚洲国产成人精品无码专区| 欧美成人性爱视频在线播放| 蜜臀久久99精品久久久久久成人小说| 日本女厕偷拍| 亚洲天堂男人在线| 国产情侣自拍在线播放| 国产精品白领在线观看| 人妻丝袜一区二区三区在线| 欧美性五月| 一本久久精品中文字| 综合日本女人伊人| 婷婷色网| 99操碰| 国产精品无码av| 亚洲?V无码专区在线电影| 黄色无码高清黄色无码网站| 欧美手机在线综合| 精品中文日韩字幕视频| 91熟女综合| 欧洲乱码视频| 国产精品老熟女一区二区| 操碰97| 五月天啪啪| 亚洲精品第一| 深夜国产一区二区三区在线看| 国产一区自拍欧美日韩| 久久久久久久唑| 九久久九九久视频| 国产精品农村妇女精品| 欧美九一精品久久久熟妇| 99国产精品免费| 欧美视频激情久久久久久| 天天日天天舔东京热| 手机看片1024你懂的国产| 国产成人免费观看在线视频| 国产AV无码AV| 在线性黄高清免费视频| 国产大学生口爆吞精合集| 激情网色| 蜜乳AV网址| 久久久精品无码亚免费| 激情干在线| 精品超碰国产| 操久久久久久| 久久婷婷亚洲| 人妻天堂综合网| 国产精品久久久久绯色| 中文字幕 码 自拍 视频 区| 野狼激情网| 欧美一区二区传媒| 高潮综合网|