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

ARTICLE DETAIL

資訊詳情

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

計(jì)算機(jī)學(xué)習(xí)網(wǎng)站開(kāi)發(fā)全流程:從需求分析到上線部署實(shí)戰(zhàn)

計(jì)算機(jī)學(xué)習(xí)網(wǎng)站開(kāi)發(fā)全流程:從需求分析到上線部署實(shí)戰(zhàn) 每年這時(shí)候都有不少朋友來(lái)問(wèn)畢設(shè)選題尤其是計(jì)算機(jī)科學(xué)與技術(shù)方向十個(gè)里有六七個(gè)想做學(xué)習(xí)類(lèi)網(wǎng)站。這個(gè)方向確實(shí)討巧需求清晰、技術(shù)棧通用、演示效果直觀但正因?yàn)樽龅娜硕喾炊菀鬃龀梢欢压δ芏哑龅恼n程列表頁(yè)。我前段時(shí)間剛完成一個(gè)編號(hào)為m248的項(xiàng)目——計(jì)算機(jī)科學(xué)與技術(shù)學(xué)習(xí)網(wǎng)站的設(shè)計(jì)與開(kāi)發(fā)從需求分析到部署上線完整走了一遍有些經(jīng)驗(yàn)值得拿出來(lái)聊聊。這個(gè)網(wǎng)站的核心定位不是做一個(gè)放視頻的課件站而是把課程檢索、學(xué)習(xí)路線、在線練習(xí)、個(gè)人筆記幾個(gè)環(huán)節(jié)串起來(lái)讓一個(gè)剛接觸計(jì)算機(jī)的新手或者想系統(tǒng)補(bǔ)基礎(chǔ)的同學(xué)能沿著一條明確路徑往前走。整個(gè)開(kāi)發(fā)周期大約六周技術(shù)棧選了Spring Boot加Vue的前后端分離方案數(shù)據(jù)庫(kù)用的MySQL另外用Redis做緩存和會(huì)話管理。這篇文章會(huì)把設(shè)計(jì)思路、模塊實(shí)現(xiàn)、踩過(guò)的坑、以及上線后的運(yùn)營(yíng)細(xì)節(jié)都攤開(kāi)講適合正在做類(lèi)似畢設(shè)、或者想自己搭一個(gè)學(xué)習(xí)站點(diǎn)的同學(xué)參考。1. 這個(gè)學(xué)習(xí)網(wǎng)站到底解決什么問(wèn)題從用戶痛點(diǎn)倒推需求動(dòng)手寫(xiě)第一行代碼之前最該想清楚的是網(wǎng)站給誰(shuí)用、解決什么具體問(wèn)題。我見(jiàn)過(guò)太多同類(lèi)項(xiàng)目一上來(lái)就堆課程分類(lèi)、視頻播放、論壇討論最后界面長(zhǎng)得像低配版慕課網(wǎng)但用戶根本不知道從哪里開(kāi)始學(xué)。做學(xué)習(xí)網(wǎng)站最核心的價(jià)值不是提供資源而是提供路徑。1.1 目標(biāo)用戶畫(huà)像與核心痛點(diǎn)我做需求分析時(shí)把目標(biāo)用戶分成三類(lèi)各自的痛點(diǎn)非常不一樣計(jì)算機(jī)專(zhuān)業(yè)低年級(jí)本科生大一、大二剛接觸編程學(xué)校課程按學(xué)期推進(jìn)但很多人在數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)這類(lèi)核心課上跟不上需要課外補(bǔ)充學(xué)習(xí)資料。他們的痛點(diǎn)是資料太多、不知道按什么順序看。轉(zhuǎn)碼自學(xué)者非科班出身想通過(guò)自學(xué)進(jìn)入開(kāi)發(fā)行業(yè)。這類(lèi)人往往不缺學(xué)習(xí)資源和教程缺的是系統(tǒng)性的路線圖和能檢驗(yàn)學(xué)習(xí)效果的練習(xí)題。課程設(shè)計(jì)/期末復(fù)習(xí)人群需要快速查找特定知識(shí)點(diǎn)比如二叉樹(shù)遍歷HTTP狀態(tài)碼希望有精準(zhǔn)的搜索結(jié)果和精簡(jiǎn)的總結(jié)。三類(lèi)人群交集明顯都需要結(jié)構(gòu)化內(nèi)容 可驗(yàn)證的學(xué)習(xí)成果。所以我把網(wǎng)站定位為學(xué)習(xí)路徑 內(nèi)容檢索 在線練習(xí)三位一體的工具型站點(diǎn)而不是又一個(gè)視頻點(diǎn)播平臺(tái)。1.2 功能需求收斂砍掉哪些、留住哪些初期我列了十多個(gè)功能點(diǎn)包括視頻彈幕、論壇、積分商城、在線聊天后來(lái)全部砍掉。保留下來(lái)并且最終做出來(lái)的只有五個(gè)模塊模塊解決的問(wèn)題關(guān)鍵功能課程中心知識(shí)獲取課程分類(lèi)、關(guān)鍵詞檢索、章節(jié)內(nèi)容瀏覽學(xué)習(xí)路線學(xué)習(xí)路徑按階段展示路線節(jié)點(diǎn)、節(jié)點(diǎn)進(jìn)度標(biāo)記在線評(píng)測(cè)學(xué)習(xí)效果驗(yàn)證精選練習(xí)題目、代碼提交、自動(dòng)判題學(xué)習(xí)筆記知識(shí)沉淀個(gè)人筆記寫(xiě)、改、刪、按課程歸類(lèi)后臺(tái)管理內(nèi)容維護(hù)課程/題目/路線圖的增刪改查、用戶管理砍功能的原則很簡(jiǎn)單每一項(xiàng)功能必須能回答用戶使用它的頻率有多高和沒(méi)有它會(huì)不會(huì)影響核心體驗(yàn)。視頻彈幕這種功能做出來(lái)熱鬧但和學(xué)習(xí)效率這個(gè)核心價(jià)值沒(méi)有強(qiáng)關(guān)聯(lián)反而是在線評(píng)測(cè)這種看起來(lái)不顯眼的功能對(duì)學(xué)習(xí)效果的提升是實(shí)打?qū)嵉?。事?shí)證明最后演示的時(shí)候評(píng)委最感興趣的也是自動(dòng)判題這個(gè)模塊。2. 技術(shù)選型的取舍邏輯一個(gè)人開(kāi)發(fā)也要考慮未來(lái)有人維護(hù)技術(shù)選型是這類(lèi)項(xiàng)目最容易糾結(jié)的環(huán)節(jié)。選太熱門(mén)的怕?tīng)€大街選太冷門(mén)的怕出問(wèn)題沒(méi)人幫忙。我的結(jié)論是在成熟生態(tài)里挑一套自己最熟悉的組合比追求技術(shù)新穎更重要。2.1 前后端方案對(duì)比與最終選擇主選方案是Spring Boot 3 Vue 3 MySQL 8備選方案是Python Flask/Django Vue SQLite/MySQL。兩者的取舍我做了個(gè)簡(jiǎn)單對(duì)比對(duì)比維度Java Spring Boot方案Python方案上手成本中高需要理解Bean、依賴注入等概念低Flask幾十行能跑起服務(wù)生態(tài)成熟度高企業(yè)級(jí)應(yīng)用廣泛遇到問(wèn)題容易搜到答案高但偏腳本場(chǎng)景重型業(yè)務(wù)少代碼執(zhí)行/判題支持多語(yǔ)言編譯執(zhí)行方便javac/gcc等進(jìn)程管理成熟執(zhí)行子進(jìn)程也方便但并發(fā)和資源隔離要小心答辯友好度高評(píng)審普遍認(rèn)可Spring全家桶中視評(píng)審老師偏好而定部署成本稍高要裝JDK、打jar包低pip依賴裝完就能跑最終選了Spring Boot主要是因?yàn)楫呍O(shè)場(chǎng)景下可預(yù)測(cè)性優(yōu)先。Java的生態(tài)太龐大了遇到前端跨域、Redis連接、文件上傳這類(lèi)問(wèn)題網(wǎng)上隨便一搜就是完整的解決方案不太會(huì)在環(huán)境層面卡住。另外在線評(píng)測(cè)模塊需要調(diào)用外部編譯器比如javac、gcc、pythonJava在管理子進(jìn)程、限制資源占用比如超時(shí)、內(nèi)存上限方面的做法更成熟這一點(diǎn)在后面的開(kāi)發(fā)中確實(shí)省了很多事。2.2 關(guān)鍵依賴組件清單除了主框架我還選了幾個(gè)配套組件這里列一下選型和理由Redis 6.x做登錄會(huì)話緩存、課程點(diǎn)擊量緩存。邏輯上Session原來(lái)可以放服務(wù)器內(nèi)存但考慮到將來(lái)可能部署到多實(shí)例用Redis屬于現(xiàn)在麻煩一點(diǎn)、以后少改架構(gòu)的決策。MySQL 8 Nginx數(shù)據(jù)持久化和靜態(tài)資源/CDN入口。MySQL的全文索引ngram parser在搜索功能里幫了大忙這個(gè)后面細(xì)說(shuō)。MyBatis-Plus數(shù)據(jù)訪問(wèn)層。比純MyBatis少寫(xiě)很多CRUD樣板代碼尤其在后臺(tái)管理的增刪改查上效率提升明顯。前端用Vite構(gòu)建 Element Plus組件庫(kù)Element Plus的后臺(tái)表格、表單、樹(shù)形控件都是現(xiàn)成的能保住開(kāi)發(fā)進(jìn)度。提示選型階段一定要寫(xiě)一個(gè)簡(jiǎn)單的技術(shù)選型說(shuō)明文檔把每個(gè)組件用來(lái)解決什么問(wèn)題寫(xiě)清楚。答辯的時(shí)候老師幾乎必問(wèn)為什么用Redis為什么不用MongoDB提前準(zhǔn)備好理由比到時(shí)候現(xiàn)想強(qiáng)得多。3. 核心功能模塊設(shè)計(jì)與實(shí)現(xiàn)順序先做骨架再填血肉功能實(shí)現(xiàn)順序我建議按用戶主路徑來(lái)排先讓他能瀏覽課程內(nèi)容再給他路線圖和練習(xí)最后才是個(gè)人筆記和后臺(tái)管理。這樣每一步做完都能跑起來(lái)看到效果不會(huì)出現(xiàn)開(kāi)發(fā)兩個(gè)月、聯(lián)調(diào)才崩的窘境。3.1 數(shù)據(jù)庫(kù)設(shè)計(jì)五張核心表一張路線表數(shù)據(jù)庫(kù)設(shè)計(jì)是這類(lèi)項(xiàng)目的地基。我建的核心表如下字段設(shè)計(jì)考慮了擴(kuò)展性表名核心字段作用usersid, username, password_hash, role用戶認(rèn)證與權(quán)限區(qū)分categoriesid, name, parent_id, sort_order課程分類(lèi)樹(shù)coursesid, category_id, title, summary, cover_url課程基本信息course_chaptersid, course_id, title, content_html, sort_order章節(jié)內(nèi)容problemsid, title, description, input_desc, output_desc, difficulty練習(xí)題目描述learning_path_nodesid, title, description, order_index, link_type, link_id學(xué)習(xí)路線節(jié)點(diǎn)judge_recordsid, user_id, problem_id, code, language, status, execute_time提交與判題記錄notesid, user_id, course_id, title, content_markdown個(gè)人學(xué)習(xí)筆記這里想特別說(shuō)一下learning_path_nodes這張表的設(shè)計(jì)。學(xué)習(xí)路線本質(zhì)上是一個(gè)有向無(wú)環(huán)圖節(jié)點(diǎn)之間有依賴關(guān)系比如學(xué)完數(shù)據(jù)結(jié)構(gòu)再學(xué)算法。我最初想用鄰接表存節(jié)點(diǎn)關(guān)系后來(lái)發(fā)現(xiàn)對(duì)學(xué)習(xí)路線來(lái)說(shuō)線性序列 階段分組就夠用了。每個(gè)節(jié)點(diǎn)存一個(gè)order_index前端按這個(gè)排序渲染時(shí)間線后臺(tái)調(diào)整順序只需要改這個(gè)字段。真要做復(fù)雜的課程依賴判斷比如必須先修完課程A才能解鎖課程B再用單獨(dú)的依賴表也不遲前期不做過(guò)度設(shè)計(jì)。3.2 課程中心搜索是門(mén)面分類(lèi)樹(shù)是骨架課程中心是整個(gè)網(wǎng)站訪問(wèn)量最大的頁(yè)面實(shí)現(xiàn)上分兩部分分類(lèi)瀏覽和關(guān)鍵詞搜索。分類(lèi)瀏覽用兩級(jí)分類(lèi)就夠了一級(jí)是編程語(yǔ)言數(shù)據(jù)結(jié)構(gòu)操作系統(tǒng)計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)這樣的大類(lèi)二級(jí)是具體課程或?qū)n}。前端渲染分類(lèi)樹(shù)用遞歸組件數(shù)據(jù)一次從后端取完不搞懶加載減少請(qǐng)求次數(shù)。搜索是重點(diǎn)也是坑點(diǎn)。剛開(kāi)始我用的是 MySQL 的LIKE %關(guān)鍵詞%課程少的時(shí)候沒(méi)問(wèn)題但數(shù)據(jù)量上來(lái)之后有兩個(gè)問(wèn)題一是性能差不能走索引全表掃描二是匹配不聰明搜二分查找匹配不到標(biāo)題為Binary Search 算法詳解的課程。后來(lái)改成 MySQL 全文索引配合 ngram 解析器ALTER TABLE courses ADD FULLTEXT INDEX ft_course_title (title) WITH PARSER ngram;查詢時(shí)用MATCH(title) AGAINST(二分查找 IN NATURAL LANGUAGE MODE)中英文混合的內(nèi)容也能正確匹配。課程數(shù)量級(jí)在幾萬(wàn)條以內(nèi)MySQL全文索引完全夠用沒(méi)必要上Elasticsearch運(yùn)維成本高不少。課程詳情頁(yè)除了展示章節(jié)內(nèi)容我還加了一個(gè)相關(guān)課程推薦的邏輯按同一分類(lèi)下點(diǎn)擊量排序取前五條。這個(gè)功能雖然簡(jiǎn)單但對(duì)用戶體驗(yàn)的提升很明顯讓用戶在看完一節(jié)課之后有地方可以去而不是關(guān)掉頁(yè)面。3.3 在線評(píng)測(cè)最費(fèi)心也是最有亮點(diǎn)的一塊在線評(píng)測(cè)模塊是整個(gè)網(wǎng)站技術(shù)含量最高的部分也是答辯時(shí)老師問(wèn)得最多的地方。核心流程是用戶提交代碼 → 后端調(diào)用相應(yīng)語(yǔ)言的編譯器/解釋器 → 在受控環(huán)境中運(yùn)行 → 比對(duì)輸出 → 返回結(jié)果。整個(gè)流程我簡(jiǎn)化成四個(gè)環(huán)節(jié)第一代碼執(zhí)行。后端接收入?yún)⒑蟀汛a寫(xiě)入臨時(shí)文件調(diào)用javac、gcc、python等命令編譯執(zhí)行。判題用例放在受限目錄運(yùn)行時(shí)把用戶程序的輸出重定向到臨時(shí)文件然后和答案文件比對(duì)。第二資源限制。這是必須做的否則一個(gè)惡意死循環(huán)就能把服務(wù)器拖垮。我用了兩層防護(hù)外層在調(diào)用層設(shè)置超時(shí)一般單用例 3 秒內(nèi)層用操作系統(tǒng)的資源限制功能限制進(jìn)程 CPU 時(shí)間和內(nèi)存subprocess.run( [command, code_file, input_file], capture_outputTrue, timeout10, preexec_fnlimit_resources )Java端也有對(duì)應(yīng)的方案用ProcessBuilder起子進(jìn)程配合destroyForcibly()做超時(shí)兜底。第三安全隔離。說(shuō)實(shí)話讓用戶提交任意代碼在服務(wù)器上執(zhí)行還是有風(fēng)險(xiǎn)的。演示環(huán)境里我用 Docker 容器做隔離每個(gè)判題請(qǐng)求起一個(gè)臨時(shí)容器跑完直接銷(xiāo)毀。雖然資源開(kāi)銷(xiāo)大但安全性能保證。如果實(shí)在不想引入Docker至少要做到禁止用戶提交Shell腳本、限制可執(zhí)行文件路徑白名單、以低權(quán)限用戶運(yùn)行判題進(jìn)程。第四結(jié)果反饋。判題結(jié)果不只是通過(guò)/不通過(guò)我會(huì)給用戶展示編譯錯(cuò)誤信息、運(yùn)行超時(shí)提示、第一個(gè)不匹配的用例的期望輸出和實(shí)際輸出。這一步對(duì)學(xué)習(xí)體驗(yàn)很重要——用戶看到具體的失敗原因才知道怎么改代碼。3.4 學(xué)習(xí)路線圖用JSON配置而非硬編碼學(xué)習(xí)路線圖我最初想在前端寫(xiě)死節(jié)點(diǎn)后來(lái)發(fā)現(xiàn)每次調(diào)整路線都要改前端代碼、重新打包發(fā)布太麻煩了。改成運(yùn)行時(shí)可配置的方案路線圖數(shù)據(jù)存數(shù)據(jù)庫(kù)前端從接口拉取按階段和時(shí)間線渲染。簡(jiǎn)化版的路線JSON結(jié)構(gòu)類(lèi)似{ 階段1: [編程語(yǔ)言入門(mén), 計(jì)算機(jī)基礎(chǔ)], 階段2: [數(shù)據(jù)結(jié)構(gòu), 算法設(shè)計(jì)], 階段3: [操作系統(tǒng), 計(jì)算機(jī)網(wǎng)絡(luò), 數(shù)據(jù)庫(kù)原理], 階段4: [實(shí)踐項(xiàng)目, 專(zhuān)項(xiàng)進(jìn)階] }前端對(duì)每個(gè)節(jié)點(diǎn)渲染卡片用戶點(diǎn)擊某個(gè)節(jié)點(diǎn)可以跳轉(zhuǎn)到對(duì)應(yīng)的課程或練習(xí)。學(xué)習(xí)進(jìn)度標(biāo)記就存user_id node_id is_finished邏輯簡(jiǎn)單但很實(shí)用。線路圖的數(shù)據(jù)內(nèi)容我花了不少心思。參考了幾所高校的教學(xué)計(jì)劃把CS核心課程按照依賴關(guān)系排了一遍高等數(shù)學(xué)、離散數(shù)學(xué)作為前置基礎(chǔ)然后才是數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)組成原理再往后是操作系統(tǒng)、編譯原理、計(jì)算機(jī)網(wǎng)絡(luò)。這個(gè)依賴關(guān)系雖然不是絕對(duì)正確但對(duì)新手來(lái)說(shuō)是一個(gè)非常友好的引導(dǎo)。4. 踩坑實(shí)錄開(kāi)發(fā)途中真正浪費(fèi)時(shí)間的五個(gè)問(wèn)題這個(gè)項(xiàng)目前后踩了不少坑挑五個(gè)最典型的寫(xiě)出來(lái)每一個(gè)都是在搜索引擎上繞了很久才搞定的希望后來(lái)的同學(xué)少走彎路。4.1 富文本編輯器的XSS注入問(wèn)題學(xué)習(xí)筆記模塊一開(kāi)始我用的是富文本編輯器用戶可以輸入任意HTML。結(jié)果測(cè)試時(shí)發(fā)現(xiàn)一個(gè)大問(wèn)題用戶可以在筆記里插入script標(biāo)簽或者惡意事件屬性比如img srcx onerroralert(1)。如果不做處理別人瀏覽到這篇筆記時(shí)就會(huì)執(zhí)行這段腳本典型的存儲(chǔ)型XSS漏洞。解決思路是前端渲染前過(guò)濾 后端入庫(kù)前直接拒絕危險(xiǎn)內(nèi)容。后端用Jsoup框架做白名單過(guò)濾只允許正常的p、a、img、code、pre等標(biāo)簽所有on*屬性和script標(biāo)簽一律清除。筆記內(nèi)容從Markdown源文本保存渲染成HTML時(shí)才過(guò)濾雙保險(xiǎn)。4.2 課程搜索搜不到和搜不準(zhǔn)并存沒(méi)上全文索引之前搜索有兩個(gè)毛病。搜動(dòng)態(tài)規(guī)劃能出結(jié)果但搜dp就匹配不到任何內(nèi)容因?yàn)闃?biāo)題里寫(xiě)的是中文全稱(chēng)反過(guò)來(lái)搜Java會(huì)把JavaScript的課程也搜出來(lái)因?yàn)長(zhǎng)IKE %Java%子串匹配的粒度太粗了。后來(lái)用了ngram全文索引情況好了很多但還有一個(gè)細(xì)節(jié)要處理全文索引默認(rèn)按相關(guān)性排序相關(guān)性評(píng)分受詞頻影響課程標(biāo)題字段短、關(guān)鍵詞密度高評(píng)分反而合理。另外我在搜索接口上加了一個(gè)簡(jiǎn)單的中文分詞步驟把用戶輸入的查詢短語(yǔ)按常規(guī)分隔符空格、逗號(hào)拆開(kāi)再拼接成MATCH ... AGAINST的布爾模式SELECT * FROM courses WHERE MATCH(title) AGAINST(Java 并發(fā) IN BOOLEAN MODE)這樣Java 并發(fā)可以被精確匹配而不是被當(dāng)成一個(gè)完整長(zhǎng)詞匹配效果肉眼可見(jiàn)地變好。4.3 Vue Router History模式部署后刷新404前端用的History路由模式本地開(kāi)發(fā)一切正常打包部署到Nginx之后訪問(wèn)首頁(yè)沒(méi)問(wèn)題但在/courses/12這樣的詳情頁(yè)按F5刷新直接404。原因很簡(jiǎn)單Nginx默認(rèn)在找不到對(duì)應(yīng)文件時(shí)才走不到前端路由因?yàn)樯a(chǎn)環(huán)境沒(méi)有/courses/12這個(gè)真實(shí)路徑。解決辦法是在Nginx配置里加一個(gè)回退邏輯location / { try_files $uri $uri/ /index.html; }所有非靜態(tài)文件的請(qǐng)求都回退到index.html由前端路由接管。這個(gè)坑我記得特別清楚因?yàn)榕挪闀r(shí)一度懷疑是Vue Router版本問(wèn)題調(diào)了很久最后發(fā)現(xiàn)就是一行Nginx配置的事。4.4 在線評(píng)測(cè)的隱藏扣分項(xiàng)運(yùn)行時(shí)錯(cuò)誤信息不完整判題模塊在測(cè)試時(shí)發(fā)現(xiàn)用戶代碼如果出現(xiàn)數(shù)組越界、空指針、除以零這類(lèi)異常只能看到一個(gè)籠統(tǒng)的運(yùn)行時(shí)錯(cuò)誤具體哪一行出錯(cuò)、錯(cuò)誤信息是什么完全看不到。對(duì)學(xué)習(xí)者來(lái)說(shuō)這種反饋基本等于沒(méi)有。后來(lái)改成了捕獲并記錄異常堆棧在Java判題場(chǎng)景里用戶代碼的異常信息會(huì)打印到標(biāo)準(zhǔn)錯(cuò)誤輸出流判題進(jìn)程把stderr的內(nèi)容捕獲下來(lái)如果判題結(jié)果是RERuntime Error就把堆棧的前幾行返回給前端展示。注意這里要做好信息截?cái)嘀伙@示異常類(lèi)型和行號(hào)不暴露服務(wù)器內(nèi)部路徑和敏感信息。4.5 跨域問(wèn)題差點(diǎn)讓前端聯(lián)調(diào)崩掉前后端分離開(kāi)發(fā)時(shí)前端跑在localhost:5173后端跑在localhost:8080必然會(huì)遇到跨域問(wèn)題。一開(kāi)始我在后端加了CrossOrigin注解能解決一部分GET請(qǐng)求但帶自定義Header的POST請(qǐng)求依然報(bào)跨域錯(cuò)誤。正確的做法是在后端寫(xiě)一個(gè)全局的CORS配置類(lèi)允許指定的前端來(lái)源、請(qǐng)求方法、請(qǐng)求頭和攜帶憑證registry.addMapping(/**) .allowedOrigins(http://localhost:5173) .allowedMethods(GET, POST, PUT, DELETE, OPTIONS) .allowedHeaders(*) .allowCredentials(true);這里有一個(gè)小坑allowedOrigins(*)和allowCredentials(true)不能同時(shí)使用瀏覽器會(huì)直接拒絕必須寫(xiě)明確的前端域名。聯(lián)調(diào)階段這個(gè)配置幫我省了一整天的排查時(shí)間。5. 數(shù)據(jù)從哪來(lái)種子內(nèi)容準(zhǔn)備與內(nèi)容安全底線網(wǎng)站功能寫(xiě)完只是第一步更費(fèi)時(shí)間的是讓網(wǎng)站看起來(lái)有內(nèi)容。一個(gè)空蕩蕩的學(xué)習(xí)網(wǎng)站再好的功能也沒(méi)人愿意用。我給自己定了一個(gè)目標(biāo)上線時(shí)至少要有一套完整的課程內(nèi)容和100道可判題的練習(xí)。5.1 種子數(shù)據(jù)的來(lái)源與版權(quán)處理課程內(nèi)容這塊我的做法是引用公開(kāi)資料 整理原創(chuàng)講義而不是直接搬運(yùn)別人的課程視頻或文檔。具體來(lái)源包括公開(kāi)課程大綱參考國(guó)內(nèi)外知名高校公開(kāi)的課程頁(yè)面吸收他們的知識(shí)點(diǎn)組織方式自己重新編寫(xiě)摘要和章節(jié)結(jié)構(gòu)。經(jīng)典教材目錄比如數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)這類(lèi)經(jīng)典教材的章節(jié)順序本身就是很好的知識(shí)組織框架據(jù)此設(shè)計(jì)課程分類(lèi)。網(wǎng)絡(luò)公開(kāi)的OJ題目很多OJ平臺(tái)有開(kāi)放題目集自己重新改寫(xiě)題目描述和測(cè)試用例標(biāo)注題目來(lái)源不能原樣復(fù)制。這里要特別提醒一句畢設(shè)源碼和內(nèi)容都要注意版權(quán)邊界。直接從慕課網(wǎng)、B站把別人的視頻嵌進(jìn)來(lái)雖然演示時(shí)方便但存在侵權(quán)風(fēng)險(xiǎn)。我的方案是以圖文講義和代碼示例為主視頻只是補(bǔ)充版權(quán)上穩(wěn)妥得多。5.2 在線題目的打磨測(cè)試用例比描述更重要練習(xí)題準(zhǔn)備中我最大的體會(huì)是一道題值的不是題目描述而是測(cè)試用例。一道判斷回文數(shù)的題目測(cè)試用例至少要包含正例1211221、負(fù)例12310、邊界值0負(fù)數(shù)、溢出情況。原本我以為寫(xiě)完題目描述就完事了后來(lái)測(cè)試時(shí)發(fā)現(xiàn)用戶提交的代碼五花八門(mén)邊界用例不充分判題結(jié)果非常不穩(wěn)定。后面我每道題至少配8到10個(gè)用例3個(gè)公開(kāi)示例用例前端顯示 5個(gè)以上隱藏用例判題時(shí)使用。隱藏用例的意義在于用戶就算看到了示例也不能只針對(duì)示例寫(xiě)死答案必須真正理解算法。5.3 內(nèi)容安全底線UGC內(nèi)容不能裸奔學(xué)習(xí)筆記和用戶昵稱(chēng)是用戶生成內(nèi)容UGC這部分必須有審核機(jī)制。我的做法是三層過(guò)濾第一層前端輸入限制。昵稱(chēng)長(zhǎng)度、筆記字?jǐn)?shù)、圖片上傳格式先在前端攔住。第二層后端內(nèi)容過(guò)濾。引入敏感詞庫(kù)做關(guān)鍵詞匹配命中直接拒絕提交或者把內(nèi)容標(biāo)記為待審核狀態(tài)。第三層運(yùn)營(yíng)后臺(tái)審核。后臺(tái)管理列表里加一個(gè)筆記審核頁(yè)簽管理員可以查最近一周產(chǎn)生的筆記一鍵下架違規(guī)內(nèi)容。這個(gè)設(shè)計(jì)在答辯時(shí)很加分因?yàn)槟荏w現(xiàn)安全意識(shí)和隱私保護(hù)意識(shí)而很多同類(lèi)項(xiàng)目完全沒(méi)考慮這些問(wèn)題。6. 部署上線與運(yùn)營(yíng)細(xì)節(jié)從畢設(shè)到真正可使用的學(xué)習(xí)站點(diǎn)功能開(kāi)發(fā)完成后我部署在一臺(tái)輕量云服務(wù)器上2核4G配置系統(tǒng)用的Ubuntu 22.04環(huán)境是Nginx MySQL Redis Spring Boot jar包。整個(gè)部署過(guò)程比較標(biāo)準(zhǔn)說(shuō)幾個(gè)值得注意的細(xì)節(jié)。6.1 前后端分開(kāi)部署與Nginx配置前端打包后的靜態(tài)文件放在/var/www/html后端jar包用systemd管理服務(wù)設(shè)置開(kāi)機(jī)自啟和崩潰自動(dòng)重啟。Nginx這里配置一個(gè)反向代理把/api/前綴的請(qǐng)求轉(zhuǎn)發(fā)到后端服務(wù)server { listen 80; server_name your-domain.com; root /var/www/html; index index.html; location /api/ { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location / { try_files $uri $uri/ /index.html; } }如果服務(wù)器帶寬不高建議Nginx開(kāi)啟壓縮圖片資源做一下瘦身網(wǎng)頁(yè)首屏加載速度會(huì)有顯著提升。為了省流量我的封面圖統(tǒng)一用了WebP格式比JPG大概小30%左右。6.2 用HTTPS保護(hù)用戶會(huì)話登錄功能上線后HTTP明文傳輸用戶的賬號(hào)密碼肯定不行。我申請(qǐng)了免費(fèi)的HTTPS證書(shū)在Nginx里配置443端口和證書(shū)路徑同時(shí)把80端口請(qǐng)求301重定向到HTTPS。這一步看起來(lái)不起眼但它保證了登錄會(huì)話的安全性也避免部分瀏覽器對(duì)非HTTPS頁(yè)面的不安全警告勸退用戶。6.3 冷啟動(dòng)讓網(wǎng)站真正被用起來(lái)網(wǎng)站上線后最尷尬的是沒(méi)有用戶。冷啟動(dòng)階段我做了三件事拉身邊人試用找了十來(lái)位同學(xué)、朋友注冊(cè)體驗(yàn)收集了一輪真實(shí)反饋。印象最深的是有人反饋學(xué)習(xí)路線圖很清晰但點(diǎn)擊節(jié)點(diǎn)跳轉(zhuǎn)后不知道該怎么回來(lái)于是我在路線圖頁(yè)面加了面包屑導(dǎo)航。SEO基礎(chǔ)配置給每個(gè)課程頁(yè)面配置合理的title和meta description提交搜索引擎收錄。雖然學(xué)習(xí)網(wǎng)站不是靠搜索流量起家的但別讓搜索引擎完全抓不到。定期更新題目上線后每周更新5到10道新題保持在線評(píng)測(cè)模塊的活躍度。網(wǎng)站不怕小怕的是放著不管。6.4 備份最后的保命手段數(shù)據(jù)備份是最容易被忽略的環(huán)節(jié)。我配置了一個(gè)簡(jiǎn)單的定時(shí)任務(wù)每天凌晨用mysqldump備份數(shù)據(jù)庫(kù)保留最近七天的備份文件。另外用戶上傳的圖片和筆記附件單獨(dú)打包備份到對(duì)象存儲(chǔ)。畢設(shè)答辯結(jié)束、網(wǎng)站不維護(hù)了數(shù)據(jù)備份依然有價(jià)值——至少交出去的時(shí)候還能恢復(fù)給下一屆同學(xué)或者作為代碼倉(cāng)庫(kù)的一部分。最后說(shuō)點(diǎn)實(shí)在的做這個(gè)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)習(xí)網(wǎng)站我最深的感受是寫(xiě)代碼的時(shí)間只占三分之一剩下三分之二是需求梳理、數(shù)據(jù)準(zhǔn)備和排坑。尤其是學(xué)習(xí)路線和在線評(píng)測(cè)這兩個(gè)模塊前者要理解教學(xué)邏輯后者要保證判題安全都是純CRUD頁(yè)面體現(xiàn)不了的能力。如果讓我重做一次我會(huì)把在線評(píng)測(cè)的沙箱方案從Docker改成更輕量級(jí)的多進(jìn)程隔離減少每次判題的資源開(kāi)銷(xiāo)提高并發(fā)能力。另外后臺(tái)管理界面我會(huì)提前兩周開(kāi)始做別拖到最后通宵趕工——后臺(tái)的CRUD頁(yè)面雖然邏輯不復(fù)雜但表單字段多、列表篩選條件多工作量比想象中大不少。最后分享一個(gè)小技巧把學(xué)習(xí)路線圖的配置數(shù)據(jù)單獨(dú)抽成一個(gè)JSON文件放在前端資源目錄里開(kāi)發(fā)時(shí)先不用接數(shù)據(jù)庫(kù)直接讀JSON渲染頁(yè)面等UI確定了再切換到后端接口。這樣前端開(kāi)發(fā)和后端開(kāi)發(fā)在路線圖模塊上完全解耦是這次項(xiàng)目里節(jié)奏最順的一個(gè)模塊。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
飘花国产午夜精品不卡| 91久久久久久| 亚洲自拍天堂| 国产精品亚洲四五区在线观看| 中文字幕人乱码中文字的预防方法| 亚洲色图欧美色图另类图片| 九九色婷婷| 久草婷婷| 在线观看免费视频国产| 夜夜夜久久| 密臀国产在线| 婷婷精品视频| 一二三区视频在线观看| 国产自偷自拍一区| 97人人夜| 大香蕉乱伦视频网| 国产精品免费视频人成| 亚洲网污污污污| 国产91av在线播放| 泰国AV在线观看| 老熟女91视频| 麻豆天美电影一区二区| 少妇久久久久久| 国产一级αv免费看片| 欧美日动态视频| 日本在线观看网址| 久久天天摸| 国产在线播放成人免费| 黄页大片在线观看| 成人国产视频在线观看| 美女露胸露尿口| 人妻精品一区二区三区| 可以免费观看的AV| 亚洲天天操| 亚洲色图激情小说| 欧美日韩另类在线播放| 色亚州人久干视频在线观看免费版| 中文字幕国产| 一本大道久| 96久久精品一二三区色欲| 日韩欧美丝袜诱惑| 91在线无码精品秘 软件| 伊人久久大香大香线蕉中文| 亚洲欧美激情小说| 吻戏激情性巴克| 大香蕉一级黄色片久久| 欧美日韩另类激情图片| 欧洲免费一区二| 久久久久成人蜜桃精品| 婷婷中文字幕| 人妻久热在线| 美女97超碰| av天天在线| 亚洲av国产av综合av卡| 日日AAvv| 物尤视频一区二区| 日韩色欲久久一二三四区| 欧亚揄拍偷拍精品视频 | 牛牛aV| 视频二区熟女人妻| 亚洲色图久久成人| 国产综合在线视频网站| 青青草狠狠撸| 三级片大波波| 婷婷在线视频在线观看| 久久精品人妻一区二区三区| 色情婷婷| 色色色日本| 天堂精品| 欧美|91色综合| 青木玲在线不卡| 欧美性爱系列| 亚洲国产一级黄色视频| 综合大香蕉美。| 欧美在线视频99| 中文一区二区三区影院| 亚洲综合射| 殴美牲| 久久久久亚洲?V片无码V| 男人的天堂成人的社区| 玖玖玖玖精品国产剧情| 超碰97久久| 精品综合久久久久久97| 性爱AV天堂| 五月天婷婷基地| 男人天堂欧美| 国产9熟妇视频网站| 激情图片亚洲色图| 亚洲骚女一区二区三区| 日本日皮视频逼| 日韩无码视频黄色| 综合97| 国产三级中文字幕粉嫩| 98福利在线视频| 欧美后进式| 九色精品视频导航1| 91热热色| 久久久夜夜嗨免费视频| 大香蕉综合| 巨爆乳一区二区爆乳区| 国产白丝精品在线观看| 人人澡人人澡人人| 玖玖综合视频| 国模91| 91色伦综合| 天美传媒国产原创中文字幕亚洲欧美另类 | 人人操人人摸人 | 夜夜嗨一区| 精品999日本| 97久久久久久久精| 国产人妻精品久久久一区二区三区| 亚洲综合中文字幕有码| 天天天天天天天天天天干美女| 丝袜美腿av女优在线| 久久禁| 99国内熟女露脸视频| 嗯……啊…嗯嗯…啊…好舒服| 五月激情综合网| 夜夜嗨TV| 99在线精品观看视频中文| 久噜噜| 歐美一級亂黃99在綫精品| 久久久久13| 在线 制服丝袜中出 人妻| 欧亚乱色熟女一区二区| 国产精品一区二区 尿失禁| 无套内射人妻在线播放| av在线一区二区三区| 超碰无码加勒比| 欧美精品二区视频在线| 91精品无码久久久久久久 | 爱射综合| 国产日本熟女顶级一区二区三区视频| 999久久久久久久精| 蜜桃精品一区二区三区ww | 强奸乱伦免费网站| 日韩性爱免费观看视频| 污污汅18禁网站在线永久免费观看| 老子午夜伦不卡影院| 日本高清免费一本视频在线观看| 在线综合 亚洲 欧美中文字幕| a片久久久久久久久久久久| 操国产逼| 亚洲人妻中文高清| 国产成人自拍视频在线| 啊啊啊 在线观看| 台湾佬激情综合| 北京美女一区二区| 熟女高潮合集-永久久久-成人AV | 91超碰人人操| 男人的天堂2010| 国产精品第一区第一页| 神马久久久久久伦理片| 无码国产精品久久久久| 欧美成人一级免费电影| 久久久激情| 射丝袜高跟鞋99| 欧美久久婷婷| 欧美丰满少妇交换91欧美精品| 少好三P| 精品人妻少妇| 成人精品无码| 欧美十八禁在线看| 热天堂一区二区| 欧美少妇性乱| 大香蕉中文201| 青春草莓视频在线观看网址| 中文字幕aⅴ在线视频| www.色五月| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 无码精品蜜桃一区二区三区ww| 亚洲蜜桃V妇女| 亚洲黑丝在线| 青娱乐91| www.91理论| 91肉丝| 久久久久亚洲AV无码专区少妇| av资源在线观看少妇| 亚洲 中文 女同| 亚洲综合贴图91| 久久久久久久91| 国产精品久久久久久高清无码免费看 | 久艹99| 性无码专区2020| 最近的最新的中文字幕视频| 男人天堂免费| 黄色激情电影在线观看| 天美国产精品| 亚洲精品蜜桃久久久| 100啪啪视频大全| 成人看片网站| 91蜜桃传媒精品久久久一区二区| 无码高清少妇久久| 97国产超湿| 欧美桃色网| 国内偷自视频区视频综合| 婷婷在线视频| 久久久久9999精品九九九| 久久产精品一区二区三区电影| 日韩情色一区二区| 去干网最新版| 在线观看视频91| 亚洲av噜噜噜噜噜噜| 91丨九色丨43老版熟女| 白嫩妹子国产骚| 夜夜操青青草| 国产精品。| 女人与公拘交酡2020视频| 国产在线76页| 麻豆AV一区二区天美传媒| 蜜臀AV网站| 操淫穴亚洲五月丁香| 69av一区二区三区| 爱爱动态试试看6 0秒| 亚洲精品电影| 久热超碰| 777超碰| 亚洲成av人片色午夜乱码| 中出后入| 69精品久久久久中文字幕| 热天堂一区二区| 日躁天天爽爽| 亚洲美乱| 国产9 9在线 | 亚洲| 欧美熟妇人体| 97超碰色屌| 国产主播福利| 好舒服视频| 国产主播福利| 夜夜操夜夜高潮夜夜爽国产精品区| 在线观看不卡一区二区三区| 久久久精品九| 五月丁香啪啪啪| 黄页av| 天美国产精品| 69XX一中文字幕人妻91| 欧美日韩亚洲高清不卡一区二区三区| 黄色片A级一区二区三区| 午夜福利区| 亚洲色欲天天天堂色欲网女| 熟女露脸激情自拍视频| 国产精品色色| 欧洲特黄毛片免费看欧洲毛片| 精品无吗久久| 久久久久久国产精品免费网站| av72网| 亚洲综合精品国产一区| 精品人妻一区二区三区四区不卡在| 亚洲日韩肥臀视频在线观看| 欧美黄片欧美黄片xxx| WWW美腿丝袜香蕉中文| 大奶啊啊好爽| 亚洲精品毛片在线观看| 久久免费少妇| 夜夜 中文视频rt| 青青操轻轻| 97国产精选| 日韩三级久久久| 亚洲一区二区三区播放在线| 国产精品99久久久www| 色逼综合| 欧亚揄拍偷拍精品视频 | 日韩欧美加勒比| 亚州色图狠狠干| 午夜福利免费精品视频| 日本操逼视频免费| 国产一| 日韩美脚一区二区网站| 熟女字幕| 91色人妻| 天堂性色| 精品无码一区二区人妻久久蜜桃| 久久国产精品91| 国产小黄片在线免费观看| 超碰97人妻在线| 9精品在线| 99热精品在线| 亚洲 欧美日韩 另类| 欧美,日韩,中文,另类| 亚洲五区熟女| 大香蕉操久久| 亚洲欧美精品91| 最新中文字幕在线亚洲| 日本高清视频xxxx| 操逼操逼操| 青青草原av| 91久久久久久久| 欧美人体性爱互联网第一页婷婷日本| 欧美极品色| 麻豆性爱视频在线播放| 超碰久久性爱| 久久久久久性爱片| 超碰 97国产熟女| 九九热AV| 亚洲九区| 美女刺激久久国产欧美| 人人摸人人叼| 又大又长又粗又爽又黄| 精品无码久久久久久久杏吧| 97综合| 东京太热男人的天堂久久久| 九色 蝌蚪 熟女自| 竹菊一区二区三区AV线| 超碰97导航| 久久人妻少妇| 久啪视频| 久久噜噜噜精品国产亚洲综合| 五月婷婷hd| 大香蕉在线视频15| 啊啊啊啊啊啊好湿好爽视频| 天美国产三级传媒| 熟妇人妻精品一区二区视频色欲| 天天影视色香色欲| 大香蕉亚洲中文| 婷婷五月天小说| 亚州男人天堂| 亚洲丝袜综合| 99999精品| 国产97在线视频| 亚洲97在线| 91亚洲影视| 男人天堂资源| 欧美成人四级在线播放| 91GD.COM| 东北黄色电影| 国产污视频麻豆传媒一区二区 | 最新av中文字幕高清| ji熟女.com| 亚洲综合另类小说色区亚洲成av人片在www| 日本成a人v网站在线观看| 亚洲精品国产精品成人| 中文字幕一区电影在线观看| 黄aaaaaaaaaaaaaaaaaa色网站| 丝袜剧情| 久久婷婷五月天| 操人91| 天天爱天天韩国日本牛牛牛牛 | 色九九九九九九| 欧美日韩亚洲天堂| 欧美日韩午夜精品一区二区三区| 日韩A优精品在线观看| 成人 日本A片无码8888| 人妻少妇精品一区二区三区| 亚洲乱色熟女一区| 婷婷导航| 欧美性暴力猛交XXXX | 97久久精品亚洲| 日本伦理一区二区| 风月影院男女十八禁| 色九久| 亚洲伊人久久综合97| 国产午夜激片Av毛片不卡| 婷婷五月天AV| 日本不卡二三区| 久久久久久久9最新免费视频观看| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 99在线无码精品秘 入口黑人 | 蜜乳中文字幕a在线| 亚洲精品无码久久AV| 亚欧韩av| 黑丝日韩av丝袜av| 日韩综合无码一区久久92| 黄视频免费| 婷婷av在线中文字幕| 激情综合网五月婷婷五月天| 大香蕉淫人网| 高潮毛片无遮挡高清免费| 国产成人bd在线观看| 强奸乱伦资源| 男人的天堂2018.| 99蜜月精品久久| 97超碰欧美| 久久久久久精品免费看A级| 婷婷伊人一区| 色色97爱| 深夜激情无码| 中文字幕精品久久久久人妻红杏ⅰ | 婷婷10月天青娱乐| 91强热人妻| 日韩在线人妻网站| 亚洲资源站| 精品中文字幕一区二区l - 百度| 亚洲AO在线| 大香蕉2017| 亚洲精品一区二区精品| 色性综合| 熟女91网站| 国产综合网站在线播放 | 日本精品人妻少妇一区二区| 少妇大屁屁| 特级毛片特黄久久免费看 | 黄片qw| www.一本大99| 中英熟女操女| 99re6久热只有精品6在线直播| 蜜汁欧美| 免费看日本操逼视频| 日韩丝袜高跟制服在线观看| 色色色日本| 黄色大片一区二区密桃丝袜| 清纯唯美亚洲| 男人的天堂亚洲| 婷婷探花久久精品一区| 人妻丰满熟妇一区二区三| 看看小穴| 国产又粗又大硬免费色网视频| 国产九月婷婷| 久艹日日日| 人妻熟女一区在| 欧美亚洲系列| 亚洲第一页色| 免费试看60秒| 人人手机欧洲亚洲国产人妻| 人人做天天爱| 青青草无码视频| yellow网站免费观看日韩高清无码| 无码视频一区二区| 免费观看的黄色的网站| 日本熟妇自慰性高潮一区二区三区| 人妻 中文 日韩| 亚洲有码第一页| 国产Aα| 国产吹潮女在线观看| 人人干人人搞人人摸| 婷婷探花久久精品一区| 天天爽天天爽| a片 xxxx受爽视频| yiren97| 国产精品午夜福利亚洲综合网| 综合久欧洲| 亚欧成人综合影院| 麻豆色约约| 亚洲天堂男人在线| 国产高清无码一区三区二区| 96精品久久久| 夜夜夜久久| 十八禁av无码免费网站APP| 91九九九吃| 久9视频| 日韩一级欧美一级国产一级台湾| 国产久久日| 国产无码一二三区| 九九热九九| 日韩啪啪啪视频| 日本日皮视频逼| 97在线看| 丰满人妻一区| 国产黄a三级三级三级av在线看| 97在线视频观看网站| 久久有码视频| 久久偷拍人| 成年女人18级毛片毛片免费观看| 人妻色偷色噜| 欧洲色综合| 日韩在线人妻网站| 六月婷婷综合| 亚洲国产欧美另类自拍| 人妻丝袜日本| 九九九九一级| AV一二区| 五月丁香啪| www.av在线视频| 日韩大香蕉AV影片| 狠色婷婷久久一区二区三区_| 婷婷五月天丁香| 999亚洲国产视频| 久热一区二区| 日韩精品资源| 色爽——AV| 色噜噜人妻av 中文字幕| 日本视频一区二区三区| 搡老熟女免费视频| 国产三级片在线观看| 日本不卡一区二区三区| 国产农村妇女精品一| 一块操欧美| 一起草日韩| 欧美色干| 欧美日韩亚洲少妇寂寞影院正在播放| 日本一天色道久久久精品视频| 伊人五月天| 婷婷亚洲五月***久久| 国产亚洲精品久久久久小| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 国产1727欧美| 丁香激情网| 国模少妇一区二区三区| 无码操逼网| 久久精品国产AV一区二区三区| 精品视频久久| 亚洲综合有码| 在线二区不卡| 欧美啪啪啪91| 日日躁天天躁狠狠躁| 青青草久久在线| 欧美情色贴图| 热热热热日日漂亮永久永久国产日| 91久久久久久久久久久| 蜜桃久久久久久久| 91人妻丝袜无码| 97视频网站在线观看| 91校园春色长篇| 日本人人操人人操| 小情侣高清国产在线视频| 欧美日本中字另类在线| 老熟女乱子伦中文字幕一区二区| 17c嫩草51久久91嫩草| 97欧美| 亚洲天堂精品日韩电影| 伊人影院日本| 一本色道综合久久欧美| 精品国产Av无码久久久伦古装| 加勒比伊人| 波多野结衣之双飞调教在线播放| 精品美女久久久久| 温婉少妇玩3p| 天天插天天射| 青青草日本无码| 免费农村成人少妇人妻Aa一区二区视频 | 啪啪自拍九九综合| 美女诱惑一区| 91啦人妻| 亚洲成人性爱在线观看| 噜噜噜狠狠色综合| 特级大荫道BBwBBwBBW| 一区麻豆 高清中文字幕| 九九亚洲精品| 青青草原成人| 蜜臀无码一区二区| 91综合中文字幕| 2017av无码免费无线播| 亚洲AV操| 中亚av| caopeng97人妻| 人妻内射一区二区在线视频| 91久久久久| 一本久道久久综合狠狠爱一密臀精 | 国产又爽又黄| 97人人中文网| 超碰综合97在线| 美欧色综合| 免费看黄片现成| 亚洲欧美在线观看免费| 99精品无码| 97中文字幕色| 60秒不遮不挡| 国产不卡免费在线视频| 狠狠色婷婷7777久| 日韩久久艹| 99热精品在线观看| 日本一区视频在线观看| 色激情五月天| 啊啊啊啊啊啊啊啊啊在线观看| 97综合激情| 亚洲国产欧美一区二区潘金莲| 搡老熟女老女人老熟妇免费视频| 又大又长又爽| 亚洲色欧| 中文字幕一区二区在线日韩精品| 日韩人妻资源在线看| 青青草大香蕉在线视频| 天堂性色| 日韩乱插| 国产精品久久久九九九| 国产久久久久久| 人妻日日干| 性色高清在线| 一区二区不卡视| 97在线观看播放视频| 射 色综合| 韩国嫰模上门援交视频| 免费人成在线观看网站品爱网| 99精品视频在线观看| 男人的天堂久久狠| 伊人网青青| 内射白嫩美女| 色欲久久99国产精品久久久久久| 亚洲av淫乱| 亚洲色香| ji熟女.com| 色呦呦、国产精品| 欧美激情专区| 五月天激情婷婷| 色婷婷一区二区三区久久午夜成人不| 天天草夜夜草高潮片| 人人澡人人爽人人精品| 97亚洲在线| 国产亚洲色婷婷久久99精品91| 一区二区三区色综合| 亚洲精品99999| 久99热| 97操在线| 久久av一级av少妇av高潮| 国产白领连续中出在线观看| 91性色| 校园春色 男人天堂 | 欧美曰韩国产精品| 国产二区三区免费视频| 中文字幕丝袜美腿| 亚洲国产成人精品999| 四虎AV无码| 亚欧色图在线激情| 欧美在线官网| 久久婷婷电影网| 人妻久热在线| 人人做天天爱| 91日产欧美| 日本国产高清色www视频在线| 大香蕉在线视频重口味毛片在线| 国产日韩精品无码去免费专区国产| 一色网男人的天堂| 欧美色97| 九九热九九热| 国产精品盗摄 偷窥盗摄| 99九九久久| 亚洲精品国产熟女久久久久久| 亚洲 另类 丝袜 自拍 动漫| 日本色色色色色视频| 亚洲风情综合网| 五月婷丁香| 精品人妻一二三| 10000部十八禁看电影| 中文字幕中文字幕一区二区| 毛片99-全集电影手机免费观看完整-B029AV | 久久精品国产精品| 9久热| 日韩性爱小视频| 亚洲欧洲美腿丝袜| av天堂天堂av日韩| 色噜噜人妻av中文字幕| 中文字幕国产精品1区| 最新日日夜夜天天干干| 精久久久| 射丝袜高跟鞋99| 凹凸久久人人| 天天影视亚洲| 欧美 熟女 日韩| 日本天天色| 亚欧毛片基地国产毛片基地| 影音资源男人日韩| 欧美另类色| 91色人妻| www.91视频网| 亚洲欧洲日产国产综合网| 色官网在线| 十八禁啪啪视频| 操B久久| 99热精品在线观看| 艹精品| 国产精品熟女一区二区三区| 99热日| 国产视频一区二区在线| 久久精品毛片免费不卡| 欧美综合91| 97视频在线视频| 小少妇| 精品一区二区综合熟妇| 国产精品久久| 亚洲好色人妻| 美女啪欧美一区| 激情五月综合网| 少妇第一页| sss视频华人在线| 免费看日产一区二区三区| 欧美日韩另类在线播放| 97超碰日韩| 国产精品97超碰| 老熟妇综合| 91 亚洲 欧洲| 亚洲黄色影视| 日本高清_区二区三区| 国产无码三级视频在线观看| 欧美宗合网| 欧美综合自拍亚洲综合图| 一本一首道人妻少妇免费久久| 天天色综合图片| 欧美亚洲日本视频久久久| 被窝影院午夜看片无码| 综合网天天| 亚洲Av诱惑| av2014 日韩在线中文字幕| 日韩美女高潮喷水视频| 欧美一区二区三区大综合| 五月丁香婷婷综合网| 一级人妻性爱视频| 日韩兔费看黄片| 中文字幕AV中出| 啊啊啊啊啊啊啊在线| 精品96久久| 插老姨肥穴| 97香蕉人人乳| 国产农村妇女精品一| 插入综合网| 屌逼传媒| 97国伦国色| 操九九九九九九| 97久精品| 婷婷伊人一区| 五月婷婷激情网| 蜜桃久久综合视频| 97久精品| 啊啊啊操一区| 天综合中文| 亚洲精品久| 97午夜剧场日韩| 高清不卡视频| 97天天综合网| 一本正道久久熟女| 国产极品久久久| 久久久久亚洲一区女同性恋中文字幕| 精品二999| 91丝袜人妻| 日韩免费在线观看不卡| 国产亚洲精品av一区| 综合色图区| 一个人在线看的黄色电影网站| 亚洲国产精品久久久男人的天堂| 五月天综合网| 成人热久久精品| 色眯眯av| 夜夜嗨一区二区三区直播内容| 熟女人妻一区二区三区| 网站A V在线| 午夜一区二区三区国产| 一区二区三区精品视频| 五月婷婷丁香六月| 99久久com免费视频′| 中文字幕视频2区| 日韩一级二级三级免费看完整版国语版| 亚洲熟妇综合久久久久久| 少妇第一页| 人妻熟妇一区二区三区| 91免费看一区二区三区| 中国大陆国产高清AⅤ毛片| 美女尤物人人操| 亚洲中文字幕精品久久久久久直播| 精品久久視頻在线| 吉田爱美AV在线| 熟女露脸激情自拍视频| 99re98| 精品无码久久久久久国产浪潮| 黄色高清无码无码破解免费暗网| 成人女人国产| 欧美性暴力猛交| 亚洲无码一二三区| 久久亚洲不卡一区二区三区| 3P丝袜熟女 色综合| 国产精品久久久久久久毛片1| 麻豆亚洲Av成人无码一区精品| 欧美极品少妇| 欧美1区二区三区公司| 翔田千里av一区二区三区| 78久久久| 中文字幕三四五区| 一级aaaaa欧美中文字幕录像片| 日本99热| 日本孕妇孕交| 亚洲av性爱电影| 狠日操| 欧美激情亚洲色图| 3级毛片一二| 日本三级A片网站com| 91精品综合久久久久久五月丁香| 国产精品视频电影| 亚洲欧美97√| 郑州宾馆老熟女露脸啪啪| 800zy一区二区| 9久久久久久| 久久91精品国产9丨久久分亭| 精品区9| 91亚洲黄色网| 蜜乳AV一区二区三区四| 天天舔九色婷婷| 超碰97亚洲| 中文字幕在线日亚州9| 欧美色图下一页| 久久国产AⅤ| 欧美日韩第一页| 丝袜天堂网| a一区二区三区乱码在线| 亚洲熟妇自偷自拍另欧美| 大香蕉手机在线| 围产精品一区二区三区视频播放| 夜夜騷av、一區二區| 色悠久| 黄页18禁| 少妇高潮一区二区三区在线| 国产中文字幕曰本毛片| 99精品人人爽| 国产成人无码啪| 久久欧美1卡2卡3| 啪啪啪亚欧美视频| 人人乐大香蕉| 色欧洲| 爱爱动态120秒| 99在线精品观看视频中文| 国产男人又猛又粗又爽| 国产一| 无码乱人伦中文视频| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 淫淫综合网| 久久精品欧美一区蜜桃| 麻豆国产97在线| 欧美精品偷拍| 日本一区二区三区四区免费观看| 999九九九九国产动| 91超级碰| a片久久久久久久久久久久 | 欧美色宗合| 女人一区| 久精品无码av一区二免费国产在线观看 | 亚洲欧美精品久| 大屁股xxxxx| 大JI巴好深好爽又大又粗视频| 在线97在线| 日本理论在线| 超碰97人妻在线| 成人天天看站长推荐| 亚洲欧美日韩精品久| 亚洲资源站| 欧美在线啊啊啊| 一块操欧美性爱| 超碰精品日韩欧美国产| 麻豆区久久久久亚| www.四虎在线| 国产尤物AV尤物在线观看不卡| 亚洲无码一区成人免费午夜| 大香蕉天天看妹子| 国内精品久久久久影院亚洲| 秋霞网无码| 在线色资源| 中文字幕在线观看AV| 久久精品国产亚洲AV无码电影| 精品78| 超碰这里有精品| 中文字幕视频2区| 亚洲日韩成人性爱视频| 国产一级舔足在线观看| 91大香蕉伊人| 新97国产超碰| 男人的天堂2018东京热啪啪啪| 口爆吞精在线观看| 亚洲婷婷综合网| 男人的天堂Va| 青青草玖玖爱| 国产一区二区在线播放量| 狠狠色五月亚洲91| 丝袜美女诱惑 91 视频| 久久免费中文字幕在线观看| 人人操人人狠狠操| 中国国产精品一区视频| 三上悠亚在线毛片91| 9久9久9久9久视频网站| 91精品国久久久久久无码| 午夜天天碰综合视频| 国产精品久久久鸭无码的功能| 成人自拍三级在线观看| 97超碰久久| 国产区在线| 麻豆a'v电影| 久久m| 闷骚老熟女15P| 神马久久久久眼| 午夜免费视频1000| 国产成人无码网站在线视频| 国产精品69人妻无码久久久| A片A5445444| AAAA级日本片免费视频| 日本久久超碰| 精品人妻一区二区免费看| 欧美草草| 亚洲国产精品久久久久婷婷老年| 97欧美色资源| 啊啊啊啊啊好大好舒服想要| 91暧暧| 亚洲熟妇丝袜在线观看| 麻豆天美电影一区二区| 91粉芽高清在线一区二区| 国产日韩欧美三级片| 日本亚洲熟女视频| 国产av美女被艹的乱叫| 日韩人妻中文视频| 秋霞免费AV| 精品v日韩欧美国产| 色成人Www精品永久观看| 国产精品麻豆视频网站| 欧美日韩不卡a片| 欧美日日操| 天天草夜夜草高潮片| 天堂俺去俺来也www久久婷婷| www.91人妻.com| 岛国激情视频在线观看| 国产一区二区三区视频在线看| 亚洲密乳AV| av天堂天堂av日韩| 搡老人老9丨女老熟人| 在线观看AV片| 久久久久久AⅤ无码免费肉站 | 六十路日本| 黑丝少妇| 熟妇人妻一区二区 | 亚洲色图久久成人| 蜜臀av中字字幕网站| 大香蕉欧美伊| 91nbbbbbb| 日韩欧美久久婷婷网站| 欧美性爱一区二区三区| 日本天堂网| 干b在线性社区| 91操人| 久久精品28| 久久的免费性爱视频| 精品国产91内射久久| 日本欧美一区二区三区免费| 国产亚洲精品第一最新| 婷婷中文字幕| 欧美三级免费伊人| 久久人妻少妇| 天堂性色| 眼镜人妻101.com| 色牛牛AV| 久久久不能久久久久| 裸体1区| 色亚洲欧美| 美日韩男女操屄视频| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 中文字幕av片| 色99999| 日韩精品 视频一区二区| 丁香五月性| 天美一二三在线观看Av| 久久后入制服| V A在线| 国产成人www免费人成看片| 精品国产一区二区三区av在线资源| 欧美一二三区四五区| 精品无码一区二区三区| 午夜舔阴达高潮视频免费看| 91在线精品| 色狠狠综合噜一二三区| 超碰综合97在线| 国产精品直播在线观看直播| 国产亚州高清国产拍精| 久久精品视频久久久| 搡老熟女国产1000部| 极品白嫩美少妇在地板上位骑射淫水泛滥| 激情无码日韩| 91xingse| 欧美九一精品久久久熟妇| 国产久久久久久| 久久久久成人亚洲国产| av天堂天堂av日韩| 亚洲图片 91| 黑人粗大V S日韩女优视频| 国产综合色精品在线观看| 多乙久久久久久| 一区中文字幕二区日韩| 午夜欧美精品久久久| 亚洲AV噜噜狠狠网址蜜桃动漫| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 亚洲污污网站| 91老熟妇| 久久久久久久唑| 成人性爱美曰韩| 99xav| 中文字幕精品探花视频| 大香蕉伊人久久| 欧美在线|亚洲| 乱伦1色页| 日本精品国产视频| 亚州欧美色图| 色播五月丁香| 精品无人区麻豆乱码1区2区图片| 国产精品探花色| 中文字幕丝袜美腿| 999综合网| 床上啊啊啊一区二区三区| 91精品国| 精品性爱无码在线播放| 国产丸一视频| 国产 热久久久久国产精品| 欧美熟妇操操视频| 一级性爱视频免费观看| 1024亚洲中文字幕久在线看片你懂的| 日本欧美不卡| 99免费在线视频| 伊人九九| 丁香五月激情网| 欧美美女视频| 91狠婷| 色婷婷国产精品一区在线观看| 国内91熟女人妻丝袜天天精品视频在线| 国产美女91| 午夜一区| 91观看 国产白丝| 五月婷婷综合在线| 一区二区影视| 欧美不卡在线美女| 国产呦精品系列在线观看| 老女人爆菊| 久久成年片色大黄全免费网站| 亚洲 中文 女同| 亚洲熟伦熟妇AV无码春色| 冬京热男人的天堂| 成人26uuu| 情色五月天网| 在线精品福利免费播放| 亚洲亚洲亚洲天堂天堂| 日本精品一区二区中文字幕| 天美av在线| 中文高清一区二区的| 亚洲精品久久久久毛片A片拉屎| 欧美一区二区情色| 国产一级特黄大片处女| 中文日韩欧美熟| www.99在线| 欧美一级A一级a爱片久久| 日韩成人午夜精品久久高潮| 无码国产Av| 97在线播放| 特污免视频| 大香蕉黄色一级片免费看| 美女丝袜激情小说| 99操99| 97精品一区二区视频| 试看福利| 亚洲色欲天天人妻无码系列专区| 亚洲综合20p| 久久伊人青青草| 日日碰狠狠添天天爽超| 天天亚洲| 久久色一区二区| 欧美在线播放aaaa| 中文字幕蜜乳av| 国产精品不卡一区二区三区| 91GD.COM| 欧美传媒| 99热这里只有精品1| 色噜噜人妻av 中文字幕| 欧美成人四级在线播放| 欧美成人精品一区| 黄呦呦在线| www.夜夜| 密乳无码| 试看60秒 爽| 色欧洲97| 国产精品久久9| 被体育老师抱着c到高潮| 激情综合网激情综合| 97超碰免费生活| 99热色这里只有精品| 333kkkk·亚洲com久久| 欧美日本成人一区二区| 亚洲国产蜜臀系列在线观看| 天天综合91在线| 久久国内| 家庭乱伦国产精品| 久久久久女教师免费一区 | 色www精品视频在线观看| 97色色网| 大香蕉免费乱伦视频| 亚洲一区日韩精品中文字幕| av日韩中文字幕| 啊啊啊啊啊啊好湿好爽视频| 五月婷婷无码| 你想操日本小逼吗| 国内毛片欧美香蕉精品| 欧美色图20P| 亚洲综合 欧美| 日han少妇无码| 偷拍伦理视频| 精品性爱无码在线播放| 欧美性生活免费网| 探花精品 一区二区| 日本一卡二区在线| 狠色婷婷久久一区二区三区_| 日本人妻一区二区| 九九这里只有精品| 在线观看黄色电话| 偷拍亚洲熟女视频播放| 中日韩免费看男女操逼大全| 欧美宗合网| 日本在线15p| 懂色av中文字幕一区二区三区天美 | 国产92麻豆天美精品色欲5| 日韩簧片免费看| 天天看天天日| 屁股久久久久久久久久| 亚洲情色 自拍| 激情内射| 安微少妇操BBB| 久久久久斤小| 91天射| 超碰在线97国产| 97干天天| 夜夜嗷嗷一区二区| 97国产亚洲中文在线| 淫色网综合| 国产怡红院| 中文字幕一区二区三区蜜臀| 麻豆天美国美国产AV| 亚洲中文字幕97久久精品少妇| 久久激情视频| 欧美色婷婷| 婷婷色综合| 五月丁香色婷婷| 大香樵伊人网| 色综合98| 一区二区首页| 啊操爽品善一区二区三区| 大香蕉宅男伊人| 亚洲 另类 丝袜 自拍 动漫| 噜噜噜久久亚洲精品色情| 欧亚日韩三区| 香蕉色网| 欧美偷| 干B网| 日韩三级伊人| 思思视频免费看网站| 天天躁日日躁AAAAXXXX国产| 亚洲aV无码成人在线观看| 清纯唯美激情四射| 日韩天堂av电影在线观看| 国产suv精品一区二区四区999 | 无码操逼网| 久久av成人无码免费| 乱伦系列一区二区| 99爱爱| 天天欧美色| 国产性刺激| 亚洲综合性网址| 极品一区二区三区免费| 午夜操一视频一区| 欧亚日韩一区在线| 欧美性爱精品七区| 偷拍亚洲熟女视频播放| 中文字幕123| 狠狠操狠狠插| 福利风月五月天影院| 91丝袜熟女| 欧美亚洲天天| AV乱伦国产| 久久久久久国产无码精品| 操99| 午夜福利久久久噜久噜久久综合 | 欧美日本天堂| 国产精品一二三| 日本一区二区中文字幕久久| 成人a级高清视频在线观看| 亚洲偷拍自拍在线视频| 特污免视频| 久久久国产精品亚洲精品| 久久久久久十| 三级日本一区二区三区| 亚洲av无线观看| 97爱免费插| 东北操逼| 婷婷久久五月综合激情| 91爆操视频| 操穴国产|