精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何利用果蠅記憶成為一名高效程序員?

譯文
開發
可以一鍵搜索全部API文檔嗎?

作者 | Hynek Schlawack

譯者 | 李睿

審校 | 諾亞

在自然界中,果蠅可以根據圖形本身所具有的一些參數來完成對相應視覺圖形的識別并形成記憶,例如大小、顏色、高度和圖形朝向等參數。

多年的編程經歷

  Hynek Schlawack是一名經驗豐富的德國軟件工程師,他積極參與開源軟件的開發,如今已成為Python軟件基金會成員。他表示,與上世紀90年代中期開始使用Amiga BASIC時相比,如今的編程技術和方法變得更加多樣化。如果那時購買一本關于計算機編程書籍,這本書可能包含99%的內容,并且書中隨處都有注釋和專用標記,而學習者根據書中的描述邊學習邊操作。

  如今,有關前端Web框架的書籍可能比C64可執行文件程序員編寫完整的游戲所需的書籍還要厚。另一方面,了解編寫代碼所需的所有信息通常只需點擊鼠標搜索一下即可。

  現在很少有人為開發人員文檔付費,微軟和蘋果都在網絡上免費為所有人提供他們的文檔,更不用說免費的開源項目。

  在npm、PyPI和GitHub時代,很難解釋要求超出操作系統提供的任何東西,這曾經是一個有爭議的決定,必須明智地權衡。通常是將依賴項與產品一起交付。

  新的可用性很好,種類也很豐富,但這會導致生產所需信息的碎片化。

  例如,人們打開了幾十個標簽,上面有他們當前使用的軟件包文檔,并忙著在它們之間進行切換以找到合適的軟件包。而在某些場合,有成千上萬的人共享一個POP,但是只有在線文件才會成為一個問題,除非互聯網完全消失。尤其是互聯網不穩定的在線搜索功能比沒有搜索功能更糟糕。

  如果開發人員可以使用多種編程語言,每種語言都有巨大的子社區(即使在Python中,Flask+SQLAlchemy+Postgres與編寫基于異步的網絡服務器是完全不同的事情),記住使用的每種方法的參數是讓人頭疼的事情。

  Schlawack表示,這就是為什么2012年發現Dash對他來說是一件改變人生的大事的原因。

API文檔瀏覽器  

圖片

Dash搜索

  Dash讓開發人員擁有按下鍵盤按鍵就可以獲得所有相關API的超能力:

  •   按下“空格”鍵,彈出一個浮動窗口,上面有一個激活的搜索欄。
  •   開始輸入API或主題的大概名稱。
  •   從建議中選擇并登陸官方項目文檔中的符號。
  •   按下Esc鍵,浮動窗口消失,可以立即開始輸入代碼,因為編輯器再次成為焦點。
  •   如果忘記了剛剛閱讀的內容,再次按空格鍵,窗口會在同一位置彈出。

  這一切都快得令人難以置信,在2秒內完成一次這樣的往返。但它必須那么快,這樣開發人員才不會忘記在做什么。在這一點上,開發人員可以潛意識地做到。這是原生應用程序被遺忘的幸福。

  而按下按鍵獲得所有API文檔的能力是非常強大的。

  開發人員在記住函數參數或類的導入路徑上花費的精力越少,那么在思考正在解決的問題上的精力就越多。

  雖然Dash是一個訂閱費用為30美元的Mac應用程序(也可作為Setapp訂閱的一部分提供),但還有一個名為Zeal的免費Windows和Linux版本,以及一個名為Velocity的20美元的Windows應用程序。當然,還有一個Emacs包在做同樣的事情:helm-dash。

  以下只關注Dash,因為這就是Schlawack正在使用的程序,但除非另有說明,否則它適用于所有這些。它們的共同點是本地文檔的格式。

文檔集

  它們都使用Apple的文檔集捆綁包(docsets),這些文檔集是包含HTML文檔、基于XML的屬性列表中的元數據和SQLite數據庫中的搜索索引的目錄:

圖片

  如果在硬盤中有很多HTML文件,可以將其轉換為Dash可以使用的文檔集。它只是帶有元數據的HTML文件。由于它是硬盤上的HTML文件,因此所有這些都可以脫機運行。

  因此,文檔集可以替換已經保存在本地計算機上的文檔,以便更快訪問,而無需做任何特別的事情。只需將其打包成必要的目錄結構,添加一個空索引,并填寫簡單的元數據。

  現在可以通過一個按鍵來調用它們,然后用另一個按鍵來取消。

  Schlawack表示,他每天都在大量平臺上開發項目。而且在這里談論的不僅僅是編程API:Ansible角色、CSS類、HAProxy配置、Postgres(和SQL)特性……

圖片

已安裝的Dash文檔集

  雖然Python和Go核心文檔隨Dash一起提供,而Godoc文檔可以通過URL直接添加 ,無論Dash的功能多么強大:在現代軟件開發的碎片化世界中,它永遠無法提供所需要的一切。

圖片

  Sphinx

  Schlawack表示,對他來說最大的差距是基于Sphinx的文檔主導Python生態系統。

  Sphinx是一個與編程語言限制的文檔編寫框架。不僅僅是API文檔或敘述性文檔:所有這些具有豐富的相互鏈接。它曾經因將reStructuredText強加給用戶而臭名昭著,但現在越來越多的項目使用出色的MyST包在Markdown中執行這一操作。如果有人對Sphinx文檔的外觀有任何偏見,建議訪問Sphinx主題庫,可以看看其文檔有多漂亮。它是用Python編寫的,但被廣泛使用,包括Apple的Swift、LLVM(Clang!)項目或廣受歡迎的PHP項目。

  它提供了準確的缺失部分:API條目、部分、詞匯表術語、配置選項、命令行參數等的索引——所有這些都以開發人員喜歡的方式分布在文檔中,但始終可以相互鏈接。如果遵循像“Diátaxis”這樣的系統框架,那么會覺得這非常棒。

  從技術上說,實現這一點的關鍵組件只是一個擴展:interphinx。最初用于項目間鏈接(因此而得名),它提供了一個機器可讀索引供開發人員使用。該索引變得如此流行,現在得到了MkDocs擴展mkdocstrings和pydoctor的支持。可以通過索引文件objects.inv準確識別與intershinx兼容的文檔。

  這就是Schlawack在10年前開始采用doc2dash開發項目的原因。

圖片

  doc2dash

  doc2dash是一個命令行工具,可以從Homebrewtap中獲取,從其發布頁面下載適用于Linux、macOS和Windows的預構建二進制文件之一,或從PyPI安裝。

  然后,所要做的就是將它指向一個包含intersphinx兼容文檔的目錄,它將執行所有必要的操作,并提供一個文檔集。

圖片

doc2dash轉換

  需要注意,其名稱是doc2dash而不是sphinx2dash。它始終被用作編寫高質量轉換器的框架,第一個是Sphinx和pydoctor。遺憾的是,這種希望沒有實現,因為可以理解的是,每個社區都想使用自己的語言和工具。

  不過,這些工具通常是一次性的,所以Schlawack再次強調,愿意與其他人一起合作,為其他文檔格式添加支持。因此不要重新發明輪子,框架就在那里,而這只是一堆代碼。

  Dash和doc2dash已經存在了十多年,仍然看到打開的數不勝數的API文檔標簽頁。開發人員一直在向人們展示Dash的實際應用。

  雖然本文的果蠅部分到此結束,但將繼續為循序漸進的操作方法提供幫助。

如何轉換和提交文檔

  這一指南的目的是讓人們學會如何將與intersphinx兼容的文檔轉換為文檔集,以及如何將其提交到Dash的用戶生成的文檔集注冊表。

  假設用戶已經選擇并安裝了API瀏覽器。使用哪一個并不重要,但這個方法使用Dash。要在最后選擇性地提交文檔集還需要對GitHub及其拉取請求工作流程有基本的了解。

  Schlawack利用這個指南,先從structlog開始,最終開始發布其項目的文檔集。建議用戶選擇一個與intershinx兼容的項目,該項目并不受Dash支持,并且用戶經常訪問其文檔的選項卡。

  那么現在可以開始了。

圖片

  獲取doc2dash

  如果用戶已經在使用Homebrew,獲取doc2dash的最簡單方法是使用這個tap:

$ brew install hynek/tap/doc2dash

  在x86-64和Apple silicon上都有針對Linux x86-65和macOS的預構件,因此安裝速度應該非常快。

  除非熟悉Python打包方式,否則下一個最佳方式是從發布頁面預構建二進制文件。目前,它提供適用于Linux、Windows和macOS的二進制文件,這些全部基于x86-64。如果這被證明很受歡迎,希望將來能提供更多。

  最后,可以從PyPI中獲取它。建議使用pipx并且使用它運行doc2dash的最簡單方法是:

$ pipx run doc2dash --help

  注:如果知道PyPy是什么,如何使用它,并計劃轉換龐大的文檔樹:在PyPy上doc2dash的速度是在CPython上的兩倍多。

  如果對此一無所知,則可以忽略這些。

圖片

  構建文檔

  接下來是doc2dash的最大問題和頻繁功能請求的來源:需要一個完整的內置文檔。通常這意味著必須下載存儲庫,并在安裝doc2dath之前弄清楚如何構建文檔,因為大多數文檔站點都不提供整個文檔的下載。

  這里的建議是首先查找tox.ini或noxfile.py,并查看它是否構建了文檔。如果沒有,可以查找readthedocs.yml,即使這讓人失望,也會尋找名為docs-requirements.txt的文件或可選的安裝目標(如docs)。最后的希望是瀏覽YAML頁面并檢查CI配置。

  一旦設法安裝了所有依賴項,通常只需在文檔目錄中創建html即可。

  在弄清楚這一點后,應該有一個名為_build/html的目錄用于Sphinx或名為MkDocs的站點。

  需要注意MkDocs,如果項目不使用mkdocstrings擴展,就不會有objects.inv文件,因此沒有要使用的API數據。

  真的希望將來有更多基于MkDocs的項目添加對mkdocstrings的支持!與Sphinx一樣,它與語言無關。

圖片

  轉換

  最困難的一步也是最簡單的一步:將剛剛構建的文檔轉換為文檔集。

  所要做的就是將doc2dash指向帶有HTML文檔的目錄并等待:

$ doc2dash _build/html

  doc2dash知道如何從intersphinx索引中提取名稱,并默認使用它(可以使用--name覆蓋它)。應該能夠將這一文檔集添加到選擇的API瀏覽器中,并且一切正常。

  如果通過--add-to-dash或-a,最終的文檔集會在完成后自動添加到Dash。如果傳遞--add-to-global或-A,它會將完成的文檔集移動到全局目錄(~/Library/ApplicationSupport/doc2dash/DocSets)并從那里添加。在創建文檔集時,很少在沒有-A的情況下運行doc2dash。

圖片

  改進文檔集

  Dash的文檔有很多關于如何改進在上一步中構建的文檔集的建議。重要的是要注意以下五個步驟是嚴格可選的。

  但在這種情況下,可以將文檔集提交到Dash的用戶貢獻注冊表。

  設置主頁

  使用Dash,始終可以搜索所有已安裝的文檔集,但有時希望限制搜索范圍。例如,當鍵入p3:(冒號很重要)時,切換到僅搜索Python3文檔集。在開始輸入之前,它會在搜索框下方為提供一個菜單,其第一項是“主頁”。

  在轉換structlog文檔時,這個主頁是有用的索引,但通常不是想要的。當打開主頁時,通常瀏覽敘述文檔。

  設置主頁的doc2dash選項是--index-page或-I,并采用要使用的頁面的文件名,以對應文檔根目錄。

  令人困惑的是,索引的文件名是genindex.html,而主頁的文件名是HTML典型的index.html。因此,將--index-pageindex.html添加到命令行。

  添加圖標

  文檔集可以有圖標,這些圖標顯示在文檔集名稱和符號旁邊的虛線中。這很好,并且也有助于更快地識別文檔集,如果要跨多個文檔集進行搜索,其中有一個符號。

  structlog有一個可愛的海貍標志,所以使用ImageMagick將標志調整為16x16像素:

$ magick \
docs/_static/structlog_logo_transparent.png \
-resize 16x16 \
docs/_static/docset-icon.png

  現在可以使用--icondocset-icon.png選項將它添加到文檔集中。

  支持在線重定向

  離線文檔很棒,但有時跳轉到正在閱讀的文檔頁面的在線版本可能會很有用。一個常見的原因是仔細閱讀更新或舊版本。

  Dash有菜單項“OpenOnlinePage??B”,但它需要知道文檔的基本URL。可以使用--online-redirect-url或-u進行設置。

  對于Read the Docs上的Python包,可以在stable(最后一個VCS標記)或latest(當前主分支)之間進行選擇。

  Latest可能更有意義,如果離開離線文檔,因此將添加:

--online-redirect-url https://www.structlog.org/en/latest/

  將所有內容放在一起

  終于完成了!運行整個命令行,看看它在Dash中的樣子:

$ doc2dash \
--index-page index.html \
--icon docs/_static/docset-icon.png \
--online-redirect-url https://www.structlog.org/en/latest/ \
docs/_build/html
Converting intersphinx docs from '/Users/hynek/FOSS/structlog/docs/_build/html' to 'structlog.docset'.
Parsing documentation...
Added 238 index entries.
Patching for TOCs... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00

  這是一個精彩的主頁:

圖片

structlog的主頁

  注意搜索欄中的圖標,然后在帶有任何錨點的任何頁面上按??B,將帶到最新版本的在線文檔中的相同位置。

  自動化

  由于希望為每個新版本創建一個新版本的文檔集,因此需要自動化創建。structlog已經將GitHub Actions用作CI,因此也可以使用它來構建文檔集。

  對于本地測試,將利用doc2dash作為Python項目的優勢,并使用一個tox環境來重用在測試文檔本身時使用的依賴項。

  tox是make和基于ini文件格式的虛擬環境管理器的組合。它最初的目的是在多個Python版本上測試Python軟件,但現在已經變得更加強大。

  Makefile的最大優點是它更易于移植,并且支持內置的Python打包(無論如何這對于構建文檔都是必需的)。

  安裝structlog[docs],即具有可選文檔依賴項的包,加上doc2dash。然后它按順序運行命令:

[testenv:docset]
extras = docs
deps = doc2dash
allowlist_externals =
rm
cp
tar
commands =
rm -rf structlog.docset docs/_build
sphinx-build -n -T -W -b html -d {envtmpdir}/doctrees docs docs/_build/html
doc2dash --index-page index.html --icon docs/_static/docset-icon.png --online-redirect-url https://www.structlog.org/en/latest/ docs/_build/html
cp docs/_static/docset-icon@2x.png structlog.docset/icon@2x.png
tar --exclude='.DS_Store' -cvzf structlog.tgz structlog.docset

  現在可以通過調用tox-e文檔集來構建一個文檔集。在doc2dash支持高分辨率圖標之前,它還將32x32像素大的徽標版本直接復制到文檔集中。

  在CI中這樣做很簡單,但需要大量的樣板文件,所以只鏈接到工作流。注意最后的上傳工件操作,它允許從運行摘要下載構建的文檔集。

  此時,有了一個自動構建的很棒的文檔集。現在是對外分享的時候了!

  提交

  在最后一步中,會將文檔集提交到Dash的用戶貢獻的存儲庫,以便其他人可以從Dash的GUI輕松下載它。方便的是,Dash使用每個開源愛好者可能熟悉的整個過程的概念:GitHub拉取請求。

  第一步是檢查Docset Contribution Checklist。幸運的是,或者在某些情況下是doc2dash,已經處理好了一切。

  因此進行下一步,并進入https://github.com/Kapeli/Dash-User-Contributions存儲庫,并將其克隆的計算機上。

  首先,必須將Sample_Docset目錄復制到docsets,并在執行此操作時重命名它。因此,其命令行是:

$ cp -a Sample_Docset docsets/structlog

  使用cddocsets/structlog進入目錄并從那里進一步獲取它。

  主要步驟是添加文檔集本身,但要作為一個gzipped tar文件。貢獻指南甚至提供了創建它的模板。在這個例子中,命令行是:

$ tar --exclude='.DS_Store' -cvzf structlog.tgz structlog.docset

  可能已經注意到已經在tox文件中完成了tar-ing,所以只需要復制它:

$ cp ~/FOSS/structlog/structlog.tgz .

  它還希望將圖標添加到文檔集中的內容中,因此從它們的文檔集中復制:

$cp~/FOSS/structlog/structlog.docset/icon*。

  接下來,在docset.html文件中填寫元數據,這在例子中很簡單:

{
"name": "structlog",
"version": "22.1.0",
"archive": "structlog.tgz",
"author": {
"name": "Hynek Schlawack",
"link": "https://github.com/hynek"
},
"aliases": []
}

  最后,寫一些關于我們是誰以及如何構建文檔集的文檔。在查看了其他示例后,確定了以下內容:

# structlog
<https://www.structlog.org/>
Maintained by [Hynek Schlawack](https://github.com/hynek/).
## Building the Docset
### Requirements
- Python 3.10
- [*tox*](https://tox.wiki/)
### Building
1. Clone the [*structlog* repository](https://github.com/hynek/structlog).
2. Check out the tag you want to build.
3. `tox -e docset` will build the documentation and convert it into `structlog.docset` in one step.

  tox技巧正在得到回報——不必向任何人解釋Python打包!

  不要忘記從示例文檔集中刪除不使用的內容:

$ rm -r versions Sample_Docset.tgz

  終于完成了!檢查一下更改:

$ git checkout -b structlog
$ git add docsets/structlog
$ git commit -m "Add structlog docset"
[structlog 33478f9] Add structlog docset
5 files changed, 30 insertions(+)
create mode 100644 docsets/structlog/README.md
create mode 100644 docsets/structlog/docset.json
create mode 100644 docsets/structlog/icon.png
create mode 100644 docsets/structlog/icon@2x.png
create mode 100644 docsets/structlog/structlog.tgz
$ git push -u

這看起來不錯,那么現在是提出拉取請求的時候了!  

在幾個小時之后將出現這一圖像:

圖片

在Dash中貢獻的structlog文檔集

  終于獲得成功,現在每個人都可以下載structlog文檔集。

結束語

  Schlawack表示,希望本文既激發了用戶對API文檔瀏覽器的興趣,又揭開了創建自己文檔集的神秘面紗。而其目標是幫助在完成工作時必須牢記的所有軟件包的程序員。

  他希望這篇文章能激發人們向doc2dash添加更多格式,以便更多的程序員能夠享受觸手可及的API文檔的樂趣。

  在發表這篇文章后,Schlawack的另一個期望是Zeal重新煥發活力。根據行業媒體的報道,Zeal最后一次更新可以追溯到四年前,因為這是一個開源項目,如果能夠獲得新的客戶,就可能讓用戶在所有平臺上擁有良好的API瀏覽器。

  原文鏈接:

??  https://hynek.me/articles/productive-fruit-fly-programmer/??

責任編輯:張潔 來源: 51CTO技術棧
相關推薦

2011-11-09 13:52:04

程序員

2019-01-28 11:54:28

程序員技能溝通

2011-04-11 17:41:35

C++程序員

2015-05-15 10:39:44

Java 冠軍程序員?

2011-03-07 13:51:01

搜索程序員

2011-05-23 15:18:34

程序員

2012-12-12 09:52:18

程序員

2011-05-03 08:54:36

2017-09-21 09:44:00

編程程序員軟件開發

2021-02-21 13:49:48

Java程序員開發

2015-03-19 14:56:08

程序員專專家級的程序員

2015-11-30 11:01:07

程序員閱讀源代碼

2015-11-30 08:57:07

源代碼閱讀程序員

2021-03-12 16:17:37

程序員 女性主義兩性 價值觀

2021-02-05 14:56:39

YouTube編程程序員

2015-06-04 11:31:36

程序員12周內

2020-03-23 09:27:51

程序員技術設計

2012-05-28 09:31:04

2013-08-30 10:06:13

2014-02-26 13:01:01

程序員趣聞
點贊
收藏

51CTO技術棧公眾號

欧美午夜精品久久久久免费视 | 5278欧美一区二区三区| 51调教丨国产调教视频| 欧美大片1688网站| 亚洲精选免费视频| 乱色588欧美| 蜜臀久久99精品久久久酒店新书| 成人资源www网在线最新版| 综合在线一区| 亚洲韩国日本中文字幕| 免费黄色一级网站| 亚洲av毛片成人精品| 国产日韩欧美一区在线| 精品国内亚洲在观看18黄| 欧美双性人妖o0| 日韩美女在线| 色综合亚洲欧洲| 天堂а√在线中文在线| av资源种子在线观看| 成人性生交大片免费看中文| 国产精品男女猛烈高潮激情| 日本一二三区视频| 亚洲精彩视频| 中文字幕视频一区二区在线有码| 亚洲av成人精品一区二区三区| 精品久久福利| 色综合久久综合中文综合网| www.国产在线视频| 老司机在线视频二区| 国产日韩欧美不卡在线| 久久99精品久久久久久青青日本 | 欧美卡一卡二卡三| 日韩在线欧美| 亚洲视频一区二区| av无码一区二区三区| 中文字幕区一区二区三| 欧美精品一二三| 日韩一级片播放| xxxx视频在线| 亚洲一区在线看| 激情视频小说图片| 毛片网站在线免费观看| 欧美国产日本视频| 欧美日韩一区二区三区在线观看免| 亚洲欧美强伦一区二区| 国产精品99久久久久久似苏梦涵 | 91精品国产91| 国语对白一区二区| 亚洲一级高清| 久久久久久久久久久人体 | 91精品国产自产在线观看永久∴ | 日韩电影网1区2区| 日韩美女在线观看一区| 亚洲欧美偷拍一区| 爽好久久久欧美精品| 日产精品99久久久久久| 欧美一区二区三区网站| 日韩中文欧美在线| 国产精品久在线观看| 久久久久99精品成人片我成大片 | 国产成人免费av| 免费污污视频在线观看| 日韩av中文字幕一区二区| 国产精欧美一区二区三区| 日本成人一级片| 麻豆一区二区99久久久久| 国产日韩欧美另类| 国产麻豆91视频| 成人午夜在线免费| 欧美高清视频一区| 97视频在线观看网站| 久久国内精品自在自线400部| 国产精品丝袜久久久久久不卡| 国产又粗又猛视频| 国产成人av在线影院| 国产一区二区自拍| 男人的天堂在线视频| 国产精品素人视频| 超碰97在线看| 是的av在线| 欧美日韩一区久久| 国产精品无码av在线播放| xx欧美视频| 欧美日本一区二区在线观看| 成人免费在线网| 亚洲最大成人| 在线电影欧美成精品| 国产免费a级片| 色综合中文网| 久久精品中文字幕免费mv| 国产极品在线播放| 日本在线不卡一区| 国产精品传媒毛片三区| 久草在线网址| www国产亚洲精品久久麻豆| 欧美一区二区三区成人久久片| 日本三级在线播放完整版| 玉足女爽爽91| 中文字幕第36页| 成人另类视频| 自拍偷拍亚洲精品| 欧美亚洲天堂网| 九色|91porny| 欧美h视频在线| 色女人在线视频| 有码一区二区三区| 成人在线观看a| 香蕉成人app| 日韩一级片网站| 精品人妻一区二区三区香蕉 | 国产精品视频一区二区三区综合| 精品裸体舞一区二区三区| 东方伊人免费在线观看| 四虎884aa成人精品最新| 欧美www视频| 天堂在线中文视频| 日韩午夜电影| 18成人在线| 在线观看黄av| 日韩欧美国产一区二区| xxxx视频在线观看| 91视频精品| 久久久国产成人精品| 成年人av网站| 不卡一区在线观看| 欧美日韩中文字幕在线播放| 国产精品久久久久77777丨| 日韩精品久久久久| 日韩欧美大片在线观看| 国产精品老牛| 成人激情直播| av网址在线看| 国产精品久久久久影院老司| 国产极品尤物在线| 亚洲伊人影院| 九九视频直播综合网| 国产又爽又黄免费软件| 国产日韩视频一区二区三区| 欧美三级一级片| 久久97久久97精品免视看秋霞| 久久99久久99精品中文字幕| 97在线公开视频| 中文字幕在线一区二区三区| 色综合手机在线| 日韩av自拍| 国产精品自拍偷拍视频| 永久免费av在线| 欧美探花视频资源| 先锋资源在线视频| 国产精品videosex性欧美| 国产精品久久久久aaaa九色| 国产精品久久久久一区二区国产 | 欧美亚洲视频在线观看| 视频二区在线| 一本大道av一区二区在线播放| 国产吞精囗交久久久| 欧美亚洲专区| 成人信息集中地欧美| 日本在线视频观看| 91精品国产入口| 青娱乐在线视频免费观看| 国产不卡在线播放| 加勒比成人在线| 理论片一区二区在线| 欧美一区二区三区图| 猫咪在线永久网站| 欧美日韩国产首页| www日韩在线| 粉嫩欧美一区二区三区高清影视| 极品粉嫩国产18尤物| 日韩美女精品| 国产精品久久久久久亚洲调教| 在线激情小视频| 日韩一级免费观看| 国产精品久久久久久99| 国产欧美一区二区在线| 久久久久久久久久毛片| 激情综合网址| 日韩国产精品一区二区| 女人高潮被爽到呻吟在线观看| 精品视频久久久久久久| 在线不卡免费视频| 亚洲一区二区3| 18禁裸乳无遮挡啪啪无码免费| 免费精品视频在线| 亚洲熟妇无码av在线播放| 中文成人在线| 性色av一区二区三区在线观看| 欧美亚洲日本| 91麻豆精品国产91久久久久| 狠狠躁夜夜躁人人爽天天高潮| 日本一区二区三区视频视频| 日日夜夜精品视频免费观看| 午夜在线精品| 久久久久久久久网| 国产成人手机高清在线观看网站| 国内精品视频在线| 最近高清中文在线字幕在线观看| 日韩精品最新网址| 加勒比婷婷色综合久久| 91污片在线观看| 国产精品中文久久久久久| 新狼窝色av性久久久久久| 五月天男人天堂| 国产不卡av一区二区| av一区二区三区在线观看| 偷拍精品精品一区二区三区| 色综合男人天堂| 91这里只有精品| 国产偷亚洲偷欧美偷精品| 99热这里只有精品在线| 欧洲av一区二区嗯嗯嗯啊| xxxxxx国产| 亚洲欧洲制服丝袜| 五月婷婷婷婷婷| 男女性色大片免费观看一区二区| 精品少妇人欧美激情在线观看| 大胆日韩av| 免费成人av网站| 国产精品乱战久久久| 91最新国产视频| 欧美高清xxx| 国产精品高潮在线| 免费成人在线电影| 久久全球大尺度高清视频| 国产精品实拍| 日韩网站免费观看| 成人高清免费在线播放| 精品一区二区亚洲| 色窝窝无码一区二区三区| 欧美一级日韩不卡播放免费| 中文字幕有码无码人妻av蜜桃| 色偷偷久久一区二区三区| 日韩久久精品视频| 亚洲午夜激情网页| 久久久精品91| 亚洲午夜久久久| 久久精品视频6| 亚洲午夜精品在线| 日本免费一二三区| 午夜精品视频一区| 日本一区二区欧美| 亚洲成人免费看| 久久丫精品忘忧草西安产品| 久久国产精品99久久人人澡| www.超碰com| 日韩av网站在线观看| 色一情一乱一伦一区二区三区日本| 久久在线精品| 国产情侣av自拍| 男男视频亚洲欧美| 午夜剧场在线免费观看| 久久99国产精品尤物| 99日在线视频| 国产高清无密码一区二区三区| 欧美午夜精品理论片| 国产精品亚洲人在线观看| 性高潮久久久久久| 不卡的av在线| 女~淫辱の触手3d动漫| 久久精品欧美一区二区三区麻豆| 亚洲国产日韩一区无码精品久久久| 国产欧美日韩三区| 国产67194| 亚洲mv大片欧洲mv大片精品| 久久国产黄色片| 欧美日韩中文字幕一区二区| 国产色视频在线| 亚洲成人网在线观看| 黄色小视频在线免费观看| 色多多国产成人永久免费网站 | 国产成人午夜电影网| 久久久久久婷婷| 久久久午夜精品理论片中文字幕| 91成人在线免费视频| 国产精品免费久久久久| 久久久精品99| 欧美性猛交99久久久久99按摩| 中文字幕欧美人妻精品| 欧美一区二区观看视频| 秋霞av在线| 另类专区欧美制服同性| 182在线视频观看| 国产精品欧美在线| 伊人精品久久| 日韩伦理一区二区三区av在线| 一级毛片免费高清中文字幕久久网| 99热亚洲精品| 麻豆久久久久久久| 男男做爰猛烈叫床爽爽小说 | 亚洲欧洲一区二区| 国自产拍偷拍福利精品免费一| 久久精品99国产| 国产麻豆精品在线| 免费黄在线观看| 亚洲一区二区三区中文字幕在线| 四虎影院在线免费播放| 日韩精品一区二区三区老鸭窝| 国产精品毛片一区二区三区四区| 欧美黄色三级网站| 国产精品videossex撒尿| 国内成+人亚洲| 91精品啪在线观看国产81旧版| 欧美日韩在线视频一区二区三区| 国产一区二区女| 亚洲国产欧美91| 国产片一区二区三区| 日本一级黄色录像| 日韩一区二区视频| av黄色在线观看| 欧美专区第一页| 另类图片综合电影| 国产高清在线一区| 香蕉综合视频| 簧片在线免费看| 久久婷婷久久一区二区三区| 精品一区在线视频| 欧美一个色资源| 午夜伦全在线观看| 国产成人精品免费久久久久 | 国产精品一区久久久久| 少妇精品无码一区二区免费视频 | 播放灌醉水嫩大学生国内精品| 国产麻豆精品95视频| 91禁男男在线观看| 日本福利一区二区| 女人偷人在线视频| 欧美亚洲在线观看| 电影一区二区在线观看| 国产视频在线观看网站| 国产美女精品一区二区三区| 国产又粗又长又硬| 欧美日韩国产综合草草| yjizz视频网站在线播放| 日本免费在线精品| 在线日本制服中文欧美| 日韩a在线播放| 久久久久高清精品| 国产乱码77777777| 亚洲视频专区在线| 国产成人精品一区二三区在线观看| 欧美不卡在线一区二区三区| 夜夜嗨一区二区| 日韩网站在线播放| 日韩欧美精品在线观看| 欧洲亚洲精品视频| 国产精品国产三级国产aⅴ浪潮| 国语产色综合| 黄色三级视频片| 国产精品免费av| 国产乱码精品一区二区三区精东| 久久久国产精品免费| 欧美成人精品一级| 丁香婷婷综合激情| 99精品视频一区| 欧产日产国产69| 中文在线资源观看视频网站免费不卡| 青青草国产一区二区三区| 99亚洲精品视频| 成人午夜av影视| 狠狠人妻久久久久久| 国产一区二区三区在线观看视频 | 182在线观看视频| 日韩午夜在线播放| 国产乱码午夜在线视频| 欧美极品jizzhd欧美| 麻豆国产欧美一区二区三区| www.av成人| 亚洲精品久久久久久久久| 涩涩视频网站在线观看| 亚洲韩国在线| 国产电影一区二区三区| 毛片在线免费视频| 色av中文字幕一区| av成人app永久免费| 国产第一页视频| 亚洲丝袜另类动漫二区| 日韩一区二区三区不卡| 国产精品色悠悠| 亚洲无吗在线| 欧美 日韩 成人| 日韩欧美一区二区三区在线| 日本三级一区| 中文字幕欧美日韩一区二区三区| 成人一区二区三区视频在线观看 | 欧美黑人猛猛猛| 亚洲美女久久久| 电影一区中文字幕| 2022亚洲天堂| 亚洲女子a中天字幕| 日本一区二区三区在线观看视频| 成人a级免费视频| 国产美女一区| 欧美国产日韩在线观看成人| 亚洲精品一区二区在线| 日韩精品一区二区三区中文在线| 欧美精品第三页| 亚洲成人一二三| 好操啊在线观看免费视频| 欧美大陆一区二区|