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

干了10年軟件工程師,我學到10個教訓

新聞 前端
作為一名年輕工程師,我在科技行業和硅谷打拼了十年。這十年,我一直在高速增長的創業公司工作,經歷了與此相關的所有起起落落。從構建 nextgen 電子郵件客戶端,到在全球范圍內推廣電動汽車,再到網上購物結賬,我學到很多。

 [[318816]]

“三人行必有我師焉,擇其善者而從之,其不善者而改之。”這句話出自論語,卻同樣可應用到我們的職業生涯中。在職業道路中,你應該學會向那些成功人士請教,詢問他們做了什么、為何這樣做和具體實踐。在本文中,我將分享我在職業生涯中所學到的全棧工程師經驗。

作為一名年輕工程師,我在科技行業和硅谷打拼了十年。這十年,我一直在高速增長的創業公司工作,經歷了與此相關的所有起起落落。從構建 nextgen 電子郵件客戶端,到在全球范圍內推廣電動汽車,再到網上購物結賬,我學到很多。

當回想過往,我覺得有些錯誤完全可以避免。在本文中,我將分享我在職業生涯中所學到的全棧工程師經驗。從中,我總結了十大經驗教訓。我相信,這些經驗教訓值得起時間考驗,并在未來幾年里依然適用。

這份列表從前端開始,然后是后端 API 和數據庫,最后是工程最佳實踐 / 流程。

經驗總結

  1. CSS Specificity
  2. 組件層次結構中的設計狀態
  3. 后端編程中的面條式代碼、千層餅式代碼和餛飩式代碼
  4. 生產中的 Postgres
  5. 欲速則不達
  6. 投資自動化
  7. 掌握你的工具
  8. 最小可行性產品(Minimum Viable Product,MVP)
  9. 研究支持開發
  10. 科學調試

1. CSS Specificity

錯誤:我的 CSS 不適用。我要用 !important。

教訓:應該為特殊情況保留使用 !important,因為它們破壞了整個 CSS 層次結構,并強制使用特定樣式。所以,你有必要了解 CSS Specificity。

CSS specificity 是瀏覽器應用的一組規則,用來確定哪個 CSS 樣式更 specific。你可以將其視為基于點的系統,它決定哪種 CSS 樣式獲得優先權,并最終應用于 DOM 元素。

如果你想知道,為什么你的 CSS 沒有被應用,這與 CSS specificity 有關。在大型項目中,這是一個很常見的問題,在這類項目中,像 SCSS 這樣的預處理程序與復雜的 CSS 層次結構一起使用。了解 CSS specificity 將有助于你保留使用 !important,僅在極罕見的覆蓋情況下使用,例如,當你想要覆蓋 CSS 庫或讓 iframe 覆蓋主機站點樣式時。

干了10年软件工程师,我学到10个教训

干了10年软件工程师,我学到10个教训

本質上,優先順序是這樣:ID selectors > Class selectors > Type selectors。!important 和內聯 style 屬性會覆蓋所有的 CSS。

對于應用于元素的每個 CSS,你都可以輕松確定哪種樣式將生效。例如,如果你加載上面的 HTML 代碼:

干了10年软件工程师,我学到10个教训

在本例中,ID selector 優先級高于 type selector。如果沖突的 CSS 選擇器具有相同的優先級,那么將選擇 CSS 文件中的最后一個。

最后,Chrome DevTools 將會顯示如上圖所示的 specificity 順序。如果你無法使用 CSS,請查看 Chrome 使用的 specificity 順序,然后添加一個更具體的選擇器(如 ID 選擇器、類選擇器、類型選擇器),讓你的 CSS 更特定,并指示瀏覽器選擇它。

如果你不想這么做,請看看這個 specificity 計算器

鏈接:https://specificity.keegan.st/

2. 組件層次結構的設計狀態

錯誤:我需要添加這個新狀態。我只需要將它放到這個 reducer 中,但不確定為什么這個 reducer 還有這么多其他狀態?

教訓:管理不當的 redux 狀態會在開發人員中造成混亂,并導致 bug。如果用 react 和 redux 來構建前端應用程序,那么你可以考慮使用這種可視化技術,從用戶界面組件層次結構中構建狀態和 reducer 層次結構。從零到統一的組件狀態層次結構有三個步驟:

  • 在線框圖(wireframe)將用戶界面進行可視化
  • 將狀態層次結構進行可視化以反映用戶界面
  • 構建 reducer 層次結構以反映狀態層次結構

讓我們來看一個例子。在這個例子中,我們構建一個博客網站,它有兩個頁面,一個頁面用于博客列表,另一個頁面用于個人博客:

第一步:在線框圖中將用戶界面進行可視化

干了10年软件工程师,我学到10个教训

干了10年软件工程师,我学到10个教训

主頁和個人博客頁面

第二步:將狀態層次結構進行可視化以反映用戶界面

相應的狀態層次結構圖如下所示:

干了10年软件工程师,我学到10个教训

狀態層次結構

請注意,公共 Header 狀態是如何被拉到根狀態的。類似的,任何共享狀態都可以在層次結構中“冒泡”,因此很明顯,子組件共享該狀態。

第三步:構建 reducer 層次結構以反映狀態層次結構

干了10年软件工程师,我学到10个教训

reducer 層次結構

這是一個簡單而強大的例子,展示了如何構造狀態和 reducer 層次結構來匹配用戶界面。這一過程可以輕松擴展到復雜的應用程序和大型團隊。最后,你可以在這個結構上構建操作和表示層。

3. 后端編程中的面條式代碼、千層餅式代碼和餛飩式代碼

錯誤:這個代碼庫是如何組織的?也許我可以在這里添加這個文件,就像所有其他倉庫代碼一樣。

教訓:我寫過三種“意大利面條式代碼”。說實話,我覺得在“餛飩式代碼”里放上“迷你千層餅式代碼”也許是個好辦法。組織和培訓所有開發人員以這種方式構建代碼庫,可以保持代碼的可維護性、可測試性,最重要的是能保持敏捷性。你能在不影響其他功能的情況下,輕松修改特定的“餛飩式代碼”(也就是功能)的實現細節。

“千層餅式代碼”是:

  • 分層架構
  • 架構整潔
  • 外層是 I/O,內層是純數據結構
  • 依賴關系向內注入
  • 內層不依賴于外層
  • 優先考慮組合,而非繼承

“餛飩式代碼”是:

  • Screaming architecture
  • 切片與分層
  • 文件夾和文件的空間位置
  • 可以是微服務形式

將它們放在一起,就能得到一個可擴展、可維護的代碼庫。如果你可以想出一種方法,通過特征名來組織文件夾,并且在每個特征中實現整潔結構,這將讓你使用很長時間。

4. 生產中的 Postgres

錯誤:為什么這個查詢速度這么慢?我認為是因為 Postgres 很慢的緣故。我需要切片,或者我認為這是 ORM,或者,我需要一個不同的數據庫,Postgres 并不適合我。

教訓:如果你在生產環境中運行 Postgres,那么你將會遇到查詢緩慢、表鎖、無限等待遷移和錯誤的問題。如果不是這樣,那么對你有好處,你又是怎么做到的?這并不意味著 Postgres 不再是正確工具,而是意味著你需要揭開帷幕,看看下面發生了什么。

截至目前,我發現的最好工具是 pgbadger。你可以用它解決幾乎所有的 Postgres 問題。

鏈接:https://github.com/darold/pgbadger

這是一個 Perl 命令行工具,它將 Postgres(如果你使用 AWS 的話,就是 RDS)日志作為輸入,并輸出報告。該報告的好壞取決于你在 Postgres 上啟用的日志。因此,在第一步時你可能需要啟用這些日志:

  1. log_checkpoints = on 
  2. log_connections = on 
  3. log_disconnections = on 
  4. log_lock_waits = on 
  5. log_temp_files = 0 
  6. log_autovacuum_min_duration = 0 
  7. log_error_verbosity = default 
  8. log_min_duration_statement = 1s 

此外,你可能還需要啟用 pg_stat_statements 語句來實時分析查詢,并啟用 auto_explain 來自動解釋日志中運行緩慢的查詢。

運行報告:

干了10年软件工程师,我学到10个教训

  1. pgbadger --prefix '%m %u@%d %p %r %a : ' /pglog/postgresql.log 

干了10年软件工程师,我学到10个教训

該報告將匯總數據,并提供有關 Postgres 所做工作的大量信息。你可以找到關于錯誤、最慢查詢、等待最長查詢、獲取的鎖類型、臨時文件是否用于排序、檢查點運行的頻率、真空運行的頻率以及其他類似信息。有了這些數據,你就可以識別和修復運行緩慢的查詢,并通過調優提高 Postgres 的性能。

你可以持續運行此報告(CLI 支持增量模式),從而隨時掌握新問題。

另外,如果你想理解解釋輸出,可以用這款工具。

鏈接:https://tatiyants.com/pev/#/plans/new

該工具將解釋 JSON 和原始查詢作為輸入,并將在如下所示的可視化樹形圖中對解釋輸出進行解釋:

干了10年软件工程师,我学到10个教训

正如你所見,節點將有最大、最慢、最貴等標簽。這將幫助你根據 Postgres 的執行方式來優化查詢。

最后,如果在 Postgres 中建立能力不可行,我建議你問問像 Percona 這樣的數據庫咨詢公司。

鏈接:https://www.percona.com/

5. 欲速則不達

錯誤:看起來不錯嘛,讓我們交付吧!

教訓:

干了10年软件工程师,我学到10个教训

在這個快速行動、打破常規的時代,這似乎不是最受歡迎的建議,但是“慢慢來”會有回報的。與其快速發布糟糕的代碼,還不如有條不紊地來,發布幾乎沒有生產 bug 的代碼。

優秀工程師會考慮到軟件系統的所有問題。

鏈接:https://codesqueeze.com/the-7-software-ilities-you-need-to-know/

他們不僅關心代碼覆蓋率,還關心可能破壞相同代碼路徑的奇怪輸入。通過分層架構,它們可以實現模擬層,并只測試所考慮的層。他們不僅實現單元測試,而且還實現了集成和功能測試。如果你的團隊還有 QA 工程師,就與他們一起測試這些用例。

子曰:“無欲速,無見小利。欲速則不達,見小利則大事不成。”

6. 在自動化上投資

錯誤:我們手動部署到 staging 和沙箱,是臨時的。生產也是手工部署,但每天執行一次。

教訓:擁有一個 CI/CD 系統管理部署意味著更可預測的結果。軟件以促銷策略在 pipeline 中移動,而臨時部署則被降級到特殊情況下。這可以確保你正交付軟件的穩定性和可靠性,這是工程團隊的主要責任。

投資:

  • 培訓團隊成員學習如何進行代碼審查。你的團隊成員可能有各種各樣的技能,但不是每個人都知道如何進行更好的 code review。因此,你應在學習和教授 code review 的最佳實踐上進行投資。
  • 使用像 peril 和 hound 這樣的自動化 code review 系統。Peril 可以檢查代碼更改,并根據預先配置的設置,標記警告和構建失敗。例如,如果數據庫遷移文件缺少 statement_timeout 或包含不必要的 DEFAULT NULL,則 pull request 可能失敗。你可以編寫許多這樣的檢查和特定于團隊的規則,并讓 Peril 成為更改的“看門人”。HoundCI 可以做類似的事情,而且規則是完全可配置的。

干了10年软件工程师,我学到10个教训

  • 使用 CircleCI 之類的工具,通過自動推廣策略設置 CI/CD pipeline。隨著時間推移,優化構建和部署管道。

鏈接:https://circleci.com/

7. 掌握你的工具

錯誤:我需要找到這個實現接口,先搜索一下。我記得它以前就在這個文件夾里,現在卻不見了?在那個文件夾里找找,我還是問問別人吧!

教訓:不知道如何使用你的工具,這會讓你效率變低。你能想象一個邋遢的裁縫使用縫紉機的樣子嗎?這不僅關系到代碼結果,還關系到構建軟件的效率。

干了10年软件工程师,我学到10个教训

了解你的工具,掌握捷徑。代碼編輯器可能是你要掌握的第一個工具。你應該知道如何設置選項卡的排序、打開最后的編輯文件、顯示調用圖等。如果你使用基于文本的編輯器,而不是圖形用戶界面,這也可行。類似 Vim 這樣的編輯器,有很多實用技巧。

請注意手動執行的常見操作,并學習如何通過快捷鍵來執行這些操作。要做到這點,一個簡單的方法是先記住 5 條捷徑,并熟練掌握它們,然后再記住 5 個捷徑。

全棧工程師每天接觸的其他常用工具有終端、docker、tableplus/pgadmin/ 一些其他數據庫客戶端用戶界面、Chrome 開發工具等。

8. 最小可行性產品(MVP)

錯誤:我覺得這個功能會很有用。我要使用分布式容錯復制高可用數據存儲。我還要構建一個基于插件的架構,使這個軟件具有超強的可擴展性。

教訓:在構建某個東西前,請確保它是你要構建的正確的東西。這就是 MVP 的用武之地。

理想的最小可行性產品(Minimum Viable Product,MVP)應該盡可能少地觸及所有層面,而不僅僅是一個層。這是降低風險的一種做法。最好是最低限度地構建所有層,而不是完善單個層。最小可行性產品并不意味著技術債、糟糕的代碼或缺乏測試。它不是拋棄型代碼(throw-away code)。

如果最小可行性產品花的時間太長(在某種程度上),那么它就有可能是錯誤的方案,并且可能有更簡單的解決方案。

奧卡姆剃刀:在其他一切同等的情況下,較簡單的解釋普遍比較復雜的好。

9. 研究支持開發

錯誤:我(工程師)認為這是我們應該構建的。

教訓:在開發前,應該先進行大量的研究以佐證。與其跟隨你的直覺,不如進行一項用戶研究。要了解用戶需求,可以親自或者通過視頻采訪,進行調查、查看日志等。這將幫助你更好地了解用戶。然后,你可以提出一個假設并進行實驗。當形成一個假設時,請使用反演來駁斥自己的主張。

鏈接:https://fs.blog/2013/10/inversion/

在一個 A/B 測試框架上投資,可以讓你進行實驗。

時間寶貴,要明智使用。最聰明的工程師會嘗試優化一些不應該存在的東西。盡早提出正確問題非常重要。

10. 科學的調試

錯誤:有一個 bug。我想是因為代碼改變所致。讓我看看這個文件。沒準也許是內存問題所致。或者這兩個原因都有可能。

教訓:作為一名工程師,無論是作為事件一部分,還是在本地環境中,你都將調試軟件中的問題。如果不是通過結構化推理來完成的話,調試可能會非常痛苦、緩慢。

我們如何系統找出程序失敗的原因?如果沒有“直覺”、“敏銳思維”等模糊的概念,我們又該怎樣才能做到這一點?我們想要找到一種查找失敗原因的方法——這種方法:

  • 不需要先驗知識
  • 是有系統的
  • 我們可以確定找到根本原因,并隨意復制

將科學方法應用于調試問題,是發展失敗理論的公正方法。科學調試的步驟如下:

  1. 重現錯誤(通常是一些時間、數據、用戶、操作系統、調試器的組合)
  2. 觀察事實(徹底讀取日志、錯誤跟蹤等)
  3. 在日志中明確地陳述假設,而不是在心里做假設
  4. 如果你發現程序中的某部分存在錯誤,使用結構化方法來縮小錯誤范圍,如二分搜索
  5. 測試假設:使用日志、斷點、斷言
  6. 如果通過驗證,應用修復并確保沒有新錯誤
  7. 如果無效,請重復步驟 3 到步驟 6

對簡單的調試情況來說,這可能看起來有點過頭。但是,對于涉及多個團隊的復雜分布式系統而言,一個系統科學的調試過程為消除模糊性提供必要的結構。

11. 額外福利

(1)分享知識,服務他人

優秀的行為是幫助他人成長。當你需要用別人能理解的方式來解釋某事時,你對事情的理解會更清晰。

每天在 Slack 上分享有思想的鏈接,進行演示、稱贊他人的積極行為,挑戰不明確的決定,并在你希望與某人或某項決定有著不同的方向時,給予建設性的反饋。你可以使用“感謝 ABC……希望 XYZ”的句式表達你的反饋。

通過這樣做,你可以為自己打造個人品牌,從而獲得職業資本。研究表明,那些擁有強大個人品牌、網絡形象和幫助他人的記錄的人,會取得成功,更重要的是,還會擁有令人滿意的職業生涯。

(2)塑造自己的世界

你無需接受這一現實世界。你可以通過坐在駕駛座上,塑造你所感知的世界。

這可能意味著在設計討論和 code reviews 期間發表意見,或者修復關鍵的不穩定的測試(flaky test)。很多人會告訴你要多發言,提高知名度,以便在公司內部發展,但他們卻從來不告訴你怎樣才能做到這一點。要做到這一點,最好的方法是擁有堅定的觀點和信心,將人們拉向你的方向。不要畏懼組建小型團隊來構建 / 改進事物。不要屈服于你的恐懼。要大聲說出來,只要不是無禮的,你都可以說出來。

負面情緒是改變的巨大動力。如果有問題讓你感到困擾,你要捫心自問,并想出該如何進行改變。如果你將每一天都當作成長的途徑,那么生活就會成為一種鍛煉。

(3)結識朋友

如果你像我一樣,想弄清楚什么對你真正重要,那就去結識許多朋友吧,尤其是那些讓你感興趣的人。這可能意味著去參加會議、參加在線社區或者在黑客松活動和項目上進行合作。這種接觸會幫你弄清楚你想要做什么。這樣,你就可以對那些無關緊要的事說“No”,并抓住對你來說重要的那些機會。

許多成功人士感到幸運,宣稱只是因為他們在一個正確的時間和正確的地點做了正確的事情而已,從而知道自己想從什么開始。這讓他們能隨機應變,抓住機會,減少遺憾。遇到聰明人時,不要輕易拒絕。

通過這樣做,我發現我更喜歡的是廣度而不是深度,更看重創造力和自由,喜歡多樣化和非正式的關系。我不適合從事結構化的重復性工作、例行公事、穩定和安全的事情。

如果你知道你想要什么,世界會給你所需的信息。

全棧編程充滿樂趣。這是一個不斷發展的領域,有一片學習沖浪的海洋。不要把自己或錯誤看得太重。分享它們,不斷成長。 

 

責任編輯:張燕妮 來源: 架構頭條
相關推薦

2024-03-11 13:36:53

2019-10-08 11:17:20

開發者技能工具

2011-07-08 16:37:20

2014-09-05 13:37:29

程序員

2019-09-02 22:34:48

2009-07-02 14:05:55

2020-06-07 15:47:35

工程師技術程序員

2022-01-16 07:12:30

軟件工程師吵架開發

2009-02-11 13:15:54

軟件工程師女工程師google

2019-02-20 09:35:05

爬蟲工程師開發工具

2023-06-05 10:07:13

軟件工程平臺工程師

2012-08-27 09:40:07

2019-11-18 09:56:48

谷歌Go語言開發者

2017-11-09 14:12:44

大數據軟件工程師算法工程師

2022-04-18 10:13:32

軟件開發寫作

2022-07-29 09:12:44

軟件硬件開發

2009-11-04 10:57:35

2022-09-16 08:00:00

軟件工程師求職薪酬

2014-08-20 10:24:11

軟件工程師

2010-08-10 13:29:58

軟件工程師
點贊
收藏

51CTO技術棧公眾號

欧美一区二区精品| 97精品视频在线观看自产线路二| 色老头一区二区三区| 中文字幕剧情在线观看| 国产又色又爽又黄刺激在线视频| 99久久伊人网影院| 国产精品入口夜色视频大尺度| 四虎永久免费地址| 欧美爱爱网站| 欧美美女直播网站| 久久久久久久中文| 猫咪在线永久网站| 激情五月播播久久久精品| 午夜精品久久久久久久久久久久| 日本xxxxxxxxx18| 婷婷视频一区二区三区| 91成人免费在线视频| 日韩一二区视频| 成人三级黄色免费网站| 成人性生交大片| 国产在线精品播放| 中文字幕在线天堂| 亚洲精品一级| 久久色精品视频| 亚洲成人黄色av| 久久久久97| 欧美一区在线视频| 99视频在线免费| 1024在线看片你懂得| 国产精品成人免费| 日本免费高清一区二区| 丁香花免费高清完整在线播放 | 中文字幕精品综合| 精品国产区在线| 性生活黄色大片| 精品一区二区成人精品| 国产成人综合亚洲| 91在线视频在线观看| 偷偷www综合久久久久久久| 亚洲少妇激情视频| 久久久久久久久久久国产精品| 秋霞影院一区| 日韩一区二区中文字幕| 超碰人人草人人| 成人自拍视频网| 色一情一乱一乱一91av| 欧美啪啪免费视频| 丁香高清在线观看完整电影视频 | 国产伦精一区二区三区| 成人深夜直播免费观看| 91国内精品视频| 老司机精品视频导航| 国产精品劲爆视频| 免费黄色一级大片| 蜜臀精品久久久久久蜜臀| 日韩av成人在线| 中文字幕在线欧美| 久久精品91| 国产成人亚洲综合青青| 无码人妻av一区二区三区波多野| 日韩一级在线| 欧美最猛性xxxx| 国产伦精品一区二区三区视频网站 | 亚洲电影免费观看高清完整版在线观看 | 亚洲乱码国产一区三区| 唐人社导航福利精品| 在线精品视频一区二区| 校园春色 亚洲色图| 亚洲福利影视| 欧美v日韩v国产v| 国产精品第七页| 亚洲黄色录像| 在线日韩欧美视频| 日韩欧美综合视频| 国产精品国码视频| 久久久久久中文字幕| 日韩特黄一级片| 日韩影院精彩在线| 国产精品精品一区二区三区午夜版| 免费黄色小视频在线观看| 美国av一区二区| 97se视频在线观看| 先锋av资源站| 中文字幕中文字幕在线一区 | 久久国产剧场电影| 99re视频| 久久综合九色综合久| 亚洲欧洲国产日韩| 国产素人在线观看| 国内精品伊人| 亚洲第一中文字幕| 欧美美女性生活视频| 亚洲国产高清视频| 国产欧美日韩精品在线观看 | 亚洲成人第一网站| 国产在线精品免费| 久久资源av| 久久日韩视频| 一本一道久久a久久精品| 女人高潮一级片| 欧美一区二区三区久久| 色偷偷偷亚洲综合网另类| 国产午夜精品一区二区理论影院| 日一区二区三区| 成人情视频高清免费观看电影| 精彩国产在线| 亚洲一区二区在线播放相泽| 日本va中文字幕| 黑人久久a级毛片免费观看| 中文字幕久久亚洲| 偷偷操不一样的久久| 韩国欧美国产1区| 日本在线视频一区| 7777kkk亚洲综合欧美网站| 欧美午夜电影在线播放| 你懂的在线观看网站| 天天综合网91| 国产精品久久久久免费a∨| 你懂的网站在线| 亚洲欧美另类小说视频| 福利在线一区二区三区| 欧美自拍视频| 久久久欧美一区二区| 国产精品久久久久久免费| 国产欧美一二三区| 亚洲国产精品久久久久爰色欲| 日韩三级av高清片| 中文字幕日韩综合av| 国产精品人人人人| av一区二区三区四区| 欧美一区二区视频在线播放| 亚洲男女网站| 亚洲免费人成在线视频观看| 国产精品9191| 丁香另类激情小说| 欧美日韩午夜爽爽| 精品国产18久久久久久二百| zzijzzij亚洲日本成熟少妇| 少妇无套内谢久久久久| 久久精品免费在线观看| 黄色免费观看视频网站| 欧美日韩直播| 欧美亚洲在线视频| 日本一区视频| 日韩欧美一区二区三区| 精品人妻一区二区三区视频| 国产人成精品一区二区三| 国产精品一区二区三区不卡| 成人福利电影| 亚洲第一天堂av| 国产成人精品网| 久久在线免费观看| 成人在线免费播放视频| 欧美激情极品| 国产91九色视频| 国产黄色片在线播放| 欧美三级电影网| 天天做夜夜爱爱爱| 国产另类ts人妖一区二区| 超碰超碰超碰超碰超碰| 国产66精品| 3344国产精品免费看| 欧美777四色影视在线| 一本高清dvd不卡在线观看 | 亚洲综合精品自拍| 理论片大全免费理伦片| 免费中文字幕日韩欧美| 色女人综合av| 精品国产亚洲日本| 久久久久久久香蕉网| 免费观看成年在线视频网站| 欧美性感一类影片在线播放| 麻豆网址在线观看| 成人一道本在线| 国产成人久久婷婷精品流白浆| 少妇精品久久久一区二区| 国产精品一区二区在线| 羞羞视频在线免费国产| 日韩精品中文字幕有码专区| 中文字幕av免费观看| 亚洲精品老司机| 天天插天天射天天干| 日本不卡123| 蜜臀av性久久久久蜜臀av| 美女一区二区在线观看| 国产精品毛片a∨一区二区三区|国| wwwav在线| 日韩精品在线影院| 国产麻豆精品一区| 大桥未久av一区二区三区| 女人裸体性做爰全过| 成人国产一区二区三区精品| 99久久国产宗和精品1上映| 综合久久亚洲| 欧美日韩综合精品| 日本成人精品| 国产精品www| 不卡av免费观看| 社区色欧美激情 | 亚洲色图21p| 欧美一区二区在线免费观看| 四虎成人在线观看| 亚洲综合一区二区精品导航| 精品无码国产一区二区三区51安| 视频一区欧美日韩| 91免费黄视频| 99精品电影| 欧美日韩在线播放一区二区| 亚洲福利合集| 国产精品综合不卡av| 欧美日韩国产观看视频| 久久精品久久久久久| 九色在线视频| 亚洲高清色综合| 国产高清免费观看| 欧美日韩一级片网站| 中文字幕精品三级久久久| 亚洲激情中文1区| 农村老熟妇乱子伦视频| 久久久亚洲高清| 国产激情视频网站| 国产69精品一区二区亚洲孕妇 | 成人免费视频视频| 亚洲欧美日韩网站| 久久国产欧美日韩精品| 九色porny91| 亚洲国产高清一区二区三区| 国产精品视频一二三四区| 91久久夜色精品国产按摩| 欧美在线日韩精品| 亚洲专区视频| 久久婷婷开心| 丝袜美腿综合| 精品一区二区视频| 美日韩黄色大片| 精品综合在线| 欧美午夜18电影| 久久精品综合一区| 伊人久久大香线蕉无限次| 精品欧美日韩| 亚州国产精品| 欧美日韩国产精品一区二区| 香蕉久久精品| 欧美大香线蕉线伊人久久国产精品| 国产亚洲精品美女久久| 国产伦精品一区| 精品综合久久88少妇激情| 国产乱码一区| 美女精品一区最新中文字幕一区二区三区| 国产午夜精品在线| 日韩欧美四区| 日本一区二区三区视频在线观看| 欧美极品在线观看| 亚洲欧美日本国产有色| 日韩欧美精品综合| 国产又大又长又粗又黄| 亚洲精品成人| 成人免费在线网| 美女网站久久| 超碰在线人人爱| 国产一区日韩二区欧美三区| 欧美人与性动交α欧美精品| 成人一级片在线观看| 欧美bbbbb性bbbbb视频| 国产日韩三级在线| 亚洲人做受高潮| 一区二区免费看| 日本高清www免费视频| 色狠狠一区二区三区香蕉| 在线免费观看视频网站| 欧美一区二区视频观看视频 | 一区二区成人av| 日本不卡不卡| 欧美精品国产精品日韩精品| 性国裸体高清亚洲| 国产日韩精品在线观看| 91成人精品在线| 日产精品一线二线三线芒果| 亚洲成人最新网站| 男人日女人下面视频| 久久精品国产久精国产爱| 不许穿内裤随时挨c调教h苏绵| 99久久777色| 国产精品视频一区二区在线观看| 亚洲第一搞黄网站| 真实新婚偷拍xxxxx| 精品国内二区三区| 成人在线二区| 国内精品国产三级国产在线专| 春暖花开亚洲一区二区三区| 亚洲自拍偷拍第一页| 久久av中文| 经典三级在线视频| 久久亚洲风情| 亚洲黄色小说在线观看| 日本一区二区久久| 日韩人妻无码一区二区三区99| 欧美三级日本三级少妇99| 色婷婷av一区二区三区之红樱桃| 中文字幕在线观看亚洲| av免费不卡国产观看| 91九色综合久久| 你微笑时很美电视剧整集高清不卡 | 毛片免费在线观看| 久久久久久久999精品视频| 国产情侣一区二区三区| 久久狠狠久久综合桃花| 欧美日韩免费| 天堂中文av在线| 久久精品人人爽人人爽| 日韩激情一区二区三区| 欧美电影一区二区三区| av在线中文| 人体精品一二三区| 久久精品色综合| 欧美 亚洲 视频| 久久99久久99小草精品免视看| 醉酒壮男gay强迫野外xx| 亚洲一区二区中文在线| 99精品人妻无码专区在线视频区| 国产一区二区成人| 樱花草涩涩www在线播放| 国产欧美精品一区二区三区| 欧美在线三区| www.午夜av| 亚洲欧美视频在线观看视频| 最近中文字幕在线观看视频| 亚洲日本aⅴ片在线观看香蕉| 国产777精品精品热热热一区二区| 91久久在线播放| 希岛爱理一区二区三区| 国产一二三区av| 国产精品久久久久毛片软件| 国产99免费视频| 亚洲男人天堂九九视频| 成人动漫一区| 久久久久久草| 久久精品国语| 亚洲av成人无码久久精品| 色婷婷激情综合| 国产视频网站在线| 国产精品久久久久秋霞鲁丝| 精品国产一区二区三区香蕉沈先生 | 亚洲精品国产拍免费91在线| 动漫一区二区| 久草精品电影| 久久精品五月| b站大片免费直播| 在线精品视频免费播放| 亚洲欧美视频一区二区| 成人春色激情网| 伊人久久大香线蕉精品组织观看| 一级片黄色免费| 亚洲精品国产第一综合99久久| 国产免费黄色网址| 欧美精品福利在线| 亚洲v天堂v手机在线| 日本成人在线免费视频| 中文字幕精品一区| 国产精品久久久国产盗摄| 欧美成人合集magnet| 精品国产导航| 免费国产成人av| 中文字幕一区二区在线观看| 国产成人a人亚洲精品无码| 欧美精品xxx| 国产一区二区三区不卡视频网站| 在线免费视频a| 樱花影视一区二区| 亚洲欧美日韩免费| 国产精品video| 午夜性色一区二区三区免费视频| 国产免费一区二区三区最新6| 狠狠躁夜夜躁人人躁婷婷91| yiren22综合网成人| 147欧美人体大胆444| 国产欧美在线| 永久免费未视频| 精品sm捆绑视频| 69堂免费精品视频在线播放| 少妇高潮大叫好爽喷水| 91在线视频播放| 一区二区三区免费观看视频| 欧美激情亚洲精品| 精品久久久久中文字幕小说| 久久综合桃花网| 色婷婷久久一区二区三区麻豆| 久草免费在线| 欧美另类视频在线| 国产乱码字幕精品高清av| 欧美日韩一二三四区| 久久久精品国产亚洲| 妖精视频一区二区三区| 日本精品一区在线| 精品久久中文字幕久久av| 人人干在线视频| 你懂的网址一区二区三区| 国产精品一区二区久激情瑜伽 | 2020国产在线| 爱爱爱视频网站|