精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

亚洲欧美网站| 老司机亚洲精品一区二区| av在线不卡免费看| 琪琪第一精品导航| 久久精品视频在线观看免费| av在线之家电影网站| 九九**精品视频免费播放| 久久91精品国产| 给我免费观看片在线电影的| 日本国产欧美| 一区二区日韩av| 成人激情视频免费在线| 欧美成人国产精品高潮| 少妇精品导航| 欧美高清视频在线高清观看mv色露露十八| 日韩电影免费观看高清完整| 国产熟女精品视频| 国产视频一区在线观看一区免费| 亚洲第一色中文字幕| 女性隐私黄www网站视频| 国产精品剧情| 久久精品视频免费观看| 91在线在线观看| 欧美精品99久久久| 国产精品网站在线看| 欧美中文字幕久久| 精品视频免费在线播放| 蜜芽在线免费观看| 久久久国产精品午夜一区ai换脸| 日韩免费中文字幕| 久久成人国产精品入口| 成人羞羞在线观看网站| 日韩精品中文字幕有码专区| 91欧美一区二区三区| 日本精品另类| 欧美性生交xxxxx久久久| 日本精品免费视频| 午夜国产福利在线| 久久久精品国产免费观看同学| 国产精品视频午夜| 国产又黄又粗又爽| 亚洲情侣在线| 亚洲日本中文字幕| 免费中文字幕av| 99精品在免费线中文字幕网站一区 | 成人污版视频| 色婷婷精品久久二区二区蜜臀av| 亚洲精品一区二区三区四区五区| 国产精品探花视频| 日韩av高清在线观看| 欧洲精品在线视频| 国产精品自拍99| 一本色道久久综合| www.日韩av.com| 第一次破处视频| 精品国产一区二区三区av片| 欧美一区二区三区视频| 日韩av片免费观看| 国产一区二区三区免费在线 | 精品无人乱码一区二区三区的优势 | 成人中文字幕在线播放| av手机免费在线观看| 亚洲一区二区三区在线播放| 免费成人进口网站| 菠萝菠萝蜜在线视频免费观看 | 成人精品视频久久久久| 中文字幕无码乱码人妻日韩精品| 伊人精品在线| 国外成人免费在线播放| 国产又黄又粗又爽| 视频在线观看91| 国产精品久久久久久久久久三级 | 97se亚洲| 欧美r级电影在线观看| 日本天堂在线播放| 青青草久久爱| 夜夜嗨av色一区二区不卡| 国内精品卡一卡二卡三| 久久五月天小说| 草民午夜欧美限制a级福利片| 国产三级av在线播放| 成人在线超碰| 精品呦交小u女在线| 久久精品无码一区| 久久亚洲在线| 欧美日韩xxxxx| 日韩av女优在线观看| 国产一区二区三区久久| 国产精品成人av性教育| 97人妻人人澡人人爽人人精品| 久久久xxx| 国产欧美va欧美va香蕉在线 | 欧美日韩亚洲综合| 久久久久亚洲av无码麻豆| 久久狠狠久久| 中文字幕av一区二区| 一级片视频免费看| 91精品国产麻豆国产在线观看| 一区二区福利视频| 欧美人禽zoz0强交| 翔田千里一区二区| 庆余年2免费日韩剧观看大牛| 久久久久99精品| 老妇喷水一区二区三区| 91欧美日韩一区| 无码精品人妻一区二区| 99精品偷自拍| 在线观看成人av| 人狥杂交一区欧美二区| 777精品伊人久久久久大香线蕉| 日本xxxx黄色| 精品视频高潮| 久久精品在线播放| 天天干天天色综合| 蜜桃视频一区二区三区| 久久久久久久久久久一区| 免费av不卡| 91精品办公室少妇高潮对白| 亚洲免费观看在线| 天天插综合网| 日韩美女激情视频| 蜜臀久久99精品久久久| 91婷婷韩国欧美一区二区| 在线观看日韩羞羞视频| 91麻豆一二三四在线| 亚洲一区二区视频在线| 亚洲综合欧美激情| 国产成人久久精品一区二区三区| 欧美成人艳星乳罩| 9.1成人看片| 欧美人成在线| 日韩av电影手机在线观看| 亚洲第一精品网站| 亚洲日本韩国一区| 成人亚洲精品777777大片| 日本妇女一区| 国模精品视频一区二区| 国产强伦人妻毛片| 亚洲欧洲日韩女同| 天天爽夜夜爽一区二区三区| 国产精品羞羞答答在线观看| 4p变态网欧美系列| 五月婷婷伊人网| 亚洲国产视频一区二区| a级大片免费看| 香蕉av一区二区| 国产视频福利一区| av电影在线网| 欧美日韩你懂得| 五月天精品在线| 毛片一区二区三区| 一区二区三区av| 精品国产黄a∨片高清在线| 国产亚洲免费的视频看| 波多野结衣视频免费观看| 久久久久久久av麻豆果冻| 亚洲国产精品久久久久婷蜜芽| 午夜不卡一区| 精品国产成人系列| 天堂资源在线播放| 成人av中文字幕| 成熟丰满熟妇高潮xxxxx视频| 成人免费观看49www在线观看| 日韩精品中文字| 中文字幕av免费在线观看| 久久激情中文| 神马影院一区二区三区| 久久亚洲国产精品尤物| 日韩亚洲欧美成人| 国产成a人亚洲精v品无码| 亚洲综合久久久久| 朝桐光av一区二区三区| 久久一日本道色综合久久| 色视频一区二区三区| 精品176极品一区| 亚洲欧美制服综合另类| 波多野结衣一本一道| 中文字幕在线视频一区| 久久午夜夜伦鲁鲁一区二区| 欧美肉体xxxx裸体137大胆| 国产精品一区二区三区免费视频| 蜜桃成人在线视频| 亚洲aⅴ怡春院| av中文字幕免费观看| 免费高清在线一区| 中文字幕一区二区三区有限公司| 亚洲第一会所| 欧美大片va欧美在线播放| 天天av天天翘| 亚洲成人资源在线| 最近中文字幕在线mv视频在线| 国产日韩欧美一区| 亚洲一区二区不卡视频| 91久久精品无嫩草影院| 欧美专区第一页| 国产精品扒开做爽爽爽的视频| 欧美乱妇23p| 久久精品国产亚洲av高清色欲| 国产美女精品人人做人人爽| 全黄性性激高免费视频| 日韩国产一区二区| 成人午夜电影在线播放| 亚洲www免费| 久久久爽爽爽美女图片| 蜜臀av免费在线观看| 欧美日韩一级片在线观看| 五月天综合在线| 国产精品丝袜一区| 不卡中文字幕在线观看| 日韩午夜激情| ijzzijzzij亚洲大全| 精品一区三区| 99久久精品免费看国产一区二区三区 | 日本老熟俱乐部h0930| 国产一区二区三区观看| 91精品91久久久中77777老牛| 自拍亚洲一区| 国产精品久久久久久久app | 国产一区二区精品在线观看| 日本免费在线视频观看| 神马久久av| 97视频资源在线观看| 黄色精品视频| 欧美性视频网站| av毛片午夜不卡高**水| 久久精品亚洲国产| 91精彩视频在线观看| 亚洲免费av片| 日本xxxxxwwwww| 日韩一区二区三区免费看| 伊人精品在线视频| 色婷婷久久久综合中文字幕| 久久午夜精品视频| 久久久夜色精品亚洲| 日韩aaaaa| 日韩不卡一区二区三区| 国产二区视频在线播放| 亚洲日本欧美| 精品国偷自产一区二区三区| 伊人久久大香线| 中文字幕一区二区三区四区五区六区 | 6080亚洲理论片在线观看| 成人网在线观看| 校园春色亚洲| 国内精品久久久久久久久| 国产香蕉在线| 亚洲人成网站999久久久综合| 国产人妖一区二区三区| 午夜精品福利久久久| av在线网站观看| 91视频观看视频| 黄色录像a级片| 91丨国产丨九色丨pron| 亚洲中文字幕无码av| 99精品久久99久久久久| avtt香蕉久久| 久久精品网站免费观看| 国产精品久久久久久久av| 久久久精品国产免费观看同学| 先锋资源在线视频| 国产98色在线|日韩| 国产一级免费片| 91日韩在线专区| 18禁裸乳无遮挡啪啪无码免费| 国产在线播放一区三区四| av7777777| 久久久精品性| 邪恶网站在线观看| 极品少妇一区二区三区精品视频| 精品久久久久久久免费人妻| 日韩中文字幕亚洲一区二区va在线| 日韩精品综合在线| 在线成人欧美| 日韩精品一区二区三区不卡| 免费观看在线综合色| 一级片免费在线观看视频| 成人一区二区视频| 9.1成人看片免费版| 国产精品美女久久久久高潮| 国产精品白丝喷水在线观看| 日本一二三四高清不卡| 三上悠亚作品在线观看| 亚洲影院免费观看| 综合网在线观看| 欧美剧情电影在线观看完整版免费励志电影 | 一本久道久久综合无码中文| 色哟哟精品一区| 日本系列第一页| 色久综合一二码| 国产一区二区在线不卡| 欧美日韩国产免费| 丰满人妻一区二区三区免费| 亚洲女同性videos| 国产最新在线| 26uuu亚洲伊人春色| 日本久久一区| 国产日韩二区| 91亚洲一区| 咪咪色在线视频| 一区二区三区国产在线| 五月激情五月婷婷| 99re这里只有精品首页| 日本精品在线免费观看| 高跟丝袜一区二区三区| 成人毛片18女人毛片| 欧美日韩国产一级二级| 亚州男人的天堂| 久久伊人精品天天| 你懂得影院夜精品a| 国产精品乱子乱xxxx| 国产精品成人a在线观看| 3d动漫一区二区三区| 国产精品99久久久久久久女警 | 日韩电影免费观看高清完整版在线观看| 国产精品video| 99re8这里有精品热视频免费| 狠狠色综合色区| 九九亚洲视频| 国产无限制自拍| 韩国女主播成人在线| b站大片免费直播| 亚洲va在线va天堂| 国产免费视频一区二区三区| 亚洲夜晚福利在线观看| 黄视频网站在线观看| 51成人做爰www免费看网站| 成人免费av| 午夜dv内射一区二区| 91蜜桃传媒精品久久久一区二区| 久久视频一区二区三区| 欧美日韩综合视频网址| 成人毛片在线免费观看| 另类天堂视频在线观看| 国产69精品久久| 亚洲中国色老太| 天天色综合色| 亚洲综合欧美在线| 欧美激情中文字幕| 无码一区二区三区在线观看| 精品无码久久久久久国产| 岛国大片在线观看| 欧美壮男野外gaytube| 久久1电影院| 国产精品裸体瑜伽视频| youjizz久久| 中文字幕一区二区三区手机版| 欧美综合久久久| av电影在线播放高清免费观看| 欧美高清激情视频| 日韩视频1区| 国产激情片在线观看| 国产成人在线视频网站| 妺妺窝人体色www聚色窝仙踪 | 韩国日本在线视频| 精品一区二区三区在线观看国产 | 在线一区av| 蜜桃传媒视频麻豆一区| 欧美在线黄色| 99久久综合网| 亚洲18色成人| 亚洲av成人精品毛片| 欧洲亚洲妇女av| 精品高清在线| 激情五月俺来也| 亚洲欧美日韩国产综合| 亚洲国产av一区二区三区| 亚洲天堂av在线免费观看| 成人国产网站| 秋霞在线一区二区| 国产精品一区二区视频| 国产稀缺真实呦乱在线| 亚洲欧美制服丝袜| 亚洲日日夜夜| 免费网站永久免费观看| 99精品视频中文字幕| caoporn国产| 亚洲精品福利视频| 欧亚一区二区| 另类视频在线观看+1080p| 日韩福利视频导航| 国产传媒第一页| 欧美亚洲综合色| www.欧美日本韩国| 激情五月综合色婷婷一区二区 | 99热成人精品热久久66| 欧美国产日本韩| 国内老熟妇对白xxxxhd| 欧美一区二三区| 日韩aaa久久蜜桃av| 亚洲成人福利在线观看| 久久精品免费在线观看| 国产精品女人久久久| 韩国美女主播一区| 噜噜噜天天躁狠狠躁夜夜精品| 日本一本中文字幕| 国产91精品在线观看| 国产伦精品一区二区三区视频我| 亚洲精品丝袜日韩| 国产精品白丝久久av网站| 日本黄色a视频|