国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

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

t3code:模型驅(qū)動(dòng)的T3 Stack代碼生成器,解決CRUD重復(fù)勞動(dòng)

t3code:模型驅(qū)動(dòng)的T3 Stack代碼生成器,解決CRUD重復(fù)勞動(dòng) 一直用 T3 Stack 做全棧項(xiàng)目的人應(yīng)該都有這種體驗(yàn)Next.js 加 TypeScript 加 Tailwind CSS 加 tRPC 這套組合的上手體驗(yàn)確實(shí)順滑但一旦業(yè)務(wù)開(kāi)始變多路由、輸入校驗(yàn)、RPC handler、前端調(diào)用 hook每一層都是大量重復(fù)勞動(dòng)。t3code 就是為解決這個(gè)痛點(diǎn)出現(xiàn)的——它不是傳統(tǒng)意義上跑一次就扔的腳手架而是一個(gè)能跟著項(xiàng)目長(zhǎng)期迭代的代碼生成器。你只要維護(hù)一份描述業(yè)務(wù)模型的 schema它就能把 tRPC 路由、Zod 校驗(yàn)、Prisma 查詢、前端類(lèi)型的整套鏈路補(bǔ)齊。這篇文章我打算把 t3code 的核心機(jī)制、完整使用流程、以及我在這幾個(gè)項(xiàng)目中踩過(guò)的坑一起聊透給正在用 T3 Stack、或者打算嘗試這類(lèi)模型驅(qū)動(dòng)開(kāi)發(fā)思路的讀者一個(gè)真實(shí)的參考。1. 從手搓CRUD到一鍵生成t3code想解決的真實(shí)痛點(diǎn)1.1 T3 Stack看著很美寫(xiě)起來(lái)卻全是重復(fù)勞動(dòng)T3 Stack 最吸引人的地方在于端到端類(lèi)型安全。tRPC 把服務(wù)端 router 的類(lèi)型直接暴露給前端調(diào)用一個(gè) API 就像調(diào)用本地函數(shù)一樣參數(shù)和返回值都有完整類(lèi)型提示。但這里有個(gè)微妙的問(wèn)題類(lèi)型安全解決的是前后端類(lèi)型不一致的隱患它并沒(méi)有解決每次新增一個(gè)業(yè)務(wù)模塊你要在不同文件里寫(xiě)四遍相似代碼的體力活。拿一個(gè)最普通的后臺(tái)菜單模塊舉例。我得先打開(kāi)schema.prisma定義 MenuModel加上關(guān)聯(lián)關(guān)系然后去api/routers/menu.ts寫(xiě) CRUD 的 tRPC router再在api/schemas/menu.ts里用 Zod 定義輸入校驗(yàn)接著回組件里寫(xiě) useQuery、useMutation 的調(diào)用最后還要手動(dòng)維護(hù) router 的根注冊(cè)表。這還只是單個(gè)模塊如果涉及分頁(yè)、篩選、排序、軟刪除代碼量直接翻倍。最難受的不是寫(xiě)這些代碼本身而是它們之間的隱式關(guān)聯(lián)。Prisma 字段改名了Zod schema 層可能漏改tRPC procedure 增加了一個(gè) query 參數(shù)前端調(diào)用地方的類(lèi)型也會(huì)跟著報(bào)錯(cuò)——雖然報(bào)錯(cuò)也算提醒但一個(gè)幾百個(gè)文件的項(xiàng)目里這種聯(lián)動(dòng)錯(cuò)誤往往是分散的、延遲出現(xiàn)的修起來(lái)特別考驗(yàn)?zāi)托摹?.2 t3code的定位不是腳手架是維護(hù)型代碼生成器我第一次用 t3code 時(shí)本來(lái)以為它和市面上那些create-t3-app或代碼片段插件差不多生成完 CRUD 模板就算完事。實(shí)際跑完一個(gè)模塊后我才發(fā)現(xiàn)它真正下功夫的地方在增量維護(hù)。普通的腳手架工具是一次性生成生成完之后你修改文件、維護(hù)代碼它就不管你了。t3code 的做法不太一樣它在生成的文件里保留特定標(biāo)記區(qū)域marker當(dāng)你修改了 schema 描述再次執(zhí)行生成命令時(shí)它只更新標(biāo)記區(qū)域內(nèi)的代碼頁(yè)面里手寫(xiě)的業(yè)務(wù)邏輯會(huì)原樣保留。這就意味著你可以把 t3code 當(dāng)作一個(gè)常態(tài)化的開(kāi)發(fā)輔助工具而不是只在項(xiàng)目初始化時(shí)用一次。所以它適合的人群也比較明確一是業(yè)務(wù)有大量標(biāo)準(zhǔn)化 CRUD 場(chǎng)景的團(tuán)隊(duì)二是想把類(lèi)型安全做到極致、希望所有前后端契約都從一個(gè) schema 自動(dòng)推導(dǎo)出來(lái)的項(xiàng)目三是團(tuán)隊(duì)里有規(guī)范強(qiáng)迫癥、希望路由命名和參數(shù)結(jié)構(gòu)保持一致的同學(xué)。反過(guò)來(lái)如果你的項(xiàng)目以復(fù)雜定制查詢?yōu)橹?、表單結(jié)構(gòu)千奇百怪那 t3code 能幫你省的時(shí)間會(huì)打折扣但仍可以作為基礎(chǔ)鏈路的加速器。2. 核心機(jī)制拆解模板引擎、類(lèi)型推演與RPC代碼生成2.1 模板引擎選型與渲染流程t3code 的底層結(jié)構(gòu)并不神秘核心就三件事讀入 schema、渲染模板、寫(xiě)出文件。但真正決定它好用與否的是每一步的細(xì)節(jié)設(shè)計(jì)。模板引擎方面t3code 沒(méi)有自研語(yǔ)法而是直接復(fù)用 Nunjucks 作為渲染引擎。這個(gè)選型我覺(jué)得很務(wù)實(shí)Nunjucks 的模板語(yǔ)法對(duì)后端轉(zhuǎn)前端的開(kāi)發(fā)者很友好支持宏定義、import 復(fù)用、過(guò)濾器和異步環(huán)境而且容錯(cuò)率不錯(cuò)——某個(gè)變量沒(méi)傳時(shí)默認(rèn)輸出空字符串不至于直接把整個(gè)生成流程打崩。渲染流程上t3code 分成了兩個(gè)階段。第一階段是模型編譯把用戶寫(xiě)的 schema 文件解析成統(tǒng)一的內(nèi)部模型ModelDefinition里面包含字段列表、類(lèi)型映射、校驗(yàn)規(guī)則、關(guān)聯(lián)關(guān)系、是否軟刪除、是否包含分頁(yè)等元信息。第二階段是模板渲染把內(nèi)部模型塞進(jìn) Nunjucks 模板按需輸出不同的文件類(lèi)型。有一點(diǎn)值得注意t3code 里的模板不只是把 schema 翻譯成代碼它還會(huì)根據(jù)模型屬性做條件渲染。比如某個(gè)模型標(biāo)記了softDelete生成的 Prisma 查詢和 tRPC router 就會(huì)自動(dòng)帶上 deletedAt 過(guò)濾邏輯某個(gè)字段標(biāo)記了unique生成的輸入校驗(yàn)里會(huì)多一個(gè)查重函數(shù)。這種描述式生成比傳統(tǒng)腳手架里死板的模板要靈活得多。2.2 類(lèi)型安全的雙向推演從Zod Schema到前端調(diào)用tRPC 的類(lèi)型安全鏈路是 t3code 的核心賣(mài)點(diǎn)這里我得展開(kāi)多說(shuō)幾句。用 t3code 生成 RPC 模塊時(shí)你在 schema 描述里定義的字段類(lèi)型會(huì)同時(shí)影響三條代碼線Prisma model 的數(shù)據(jù)庫(kù)類(lèi)型、Zod 輸入校驗(yàn)的類(lèi)型、前端引用的返回類(lèi)型。t3code 內(nèi)部維護(hù)了一張類(lèi)型映射表比如 schema 里的string字段如果再聲明了email規(guī)則就會(huì)映射為 Zod 的z.string().email()如果是int加min:0就映射成z.number().int().min(0)。關(guān)鍵在輸入反向推演這一步。很多代碼生成器只做正向推導(dǎo)從 schema 生成 Prisma model然后生成 tRPC router。但 t3code 會(huì)反過(guò)來(lái)從上一步生成的 Prisma model 再推導(dǎo)一份對(duì)應(yīng)的 Zod input schema并且把 create、update、list 三種場(chǎng)景的輸入類(lèi)分開(kāi)。比如update場(chǎng)景的輸入會(huì)允許字段可選list場(chǎng)景會(huì)單獨(dú)生成 page、pageSize、sortBy、sortOrder 這些查詢參數(shù)。這樣前端引用的類(lèi)型和后端校驗(yàn)的類(lèi)型嚴(yán)格來(lái)自同一份元數(shù)據(jù)不會(huì)出現(xiàn)Postgres 里能存、Zod 校驗(yàn)卻攔住了的錯(cuò)位。2.3 增量生成的算法邏輯如何不覆蓋手寫(xiě)代碼增量生成是 t3code 和其他腳手架拉開(kāi)差距的地方。簡(jiǎn)單說(shuō)每個(gè)生成目標(biāo)文件里都有類(lèi)似這樣的標(biāo)記結(jié)構(gòu)// t3code:component:begin export const menuRouter createRouter() .query(list, { ... }) .mutation(create, { ... }) // t3code:component:end當(dāng)你再次執(zhí)行t3code generate時(shí)工具會(huì)掃描文件、定位標(biāo)記區(qū)域只重寫(xiě)標(biāo)記區(qū)域內(nèi)的內(nèi)容標(biāo)記區(qū)域之外的代碼一律不動(dòng)。實(shí)現(xiàn)上它其實(shí)就是先用正則把每個(gè)標(biāo)記區(qū)域的位置記下來(lái)再用模板結(jié)果替換對(duì)應(yīng)區(qū)間。但這個(gè)做法有個(gè)前提你要在第一次生成后保持標(biāo)記不被刪除。我在實(shí)際項(xiàng)目中見(jiàn)過(guò)有同學(xué)覺(jué)得標(biāo)記注釋礙眼手動(dòng)清掉的之后每次跑 t3code 都直接在文件末尾追加重復(fù)的 router 定義導(dǎo)致類(lèi)型沖突。后來(lái)我們團(tuán)隊(duì)在 Code Review 規(guī)范里加了一條t3code生成的注釋區(qū)域等同鎖定區(qū)域不允許手改需要自定義邏輯就在標(biāo)記外擴(kuò)展。這算是用工具的人必須接受的紀(jì)律。3. 從零跑通一個(gè)完整菜單模塊的生成過(guò)程實(shí)錄3.1 初始化項(xiàng)目與t3code配置說(shuō)再多機(jī)制不如跑一遍實(shí)例。假設(shè)我們現(xiàn)在要在已有的 T3 Stack 項(xiàng)目里加一個(gè)菜單管理模塊項(xiàng)目結(jié)構(gòu)是標(biāo)準(zhǔn)的 Next.js App Router tRPC Prisma。先安裝并初始化 t3codepnpm add -D t3code npx t3code init執(zhí)行 init 之后t3code 會(huì)在項(xiàng)目根目錄生成t3code.config.ts和schema目錄。配置文件負(fù)責(zé)告訴工具Prisma schema 往哪里輸出、tRPC router 目錄在哪、前端 hooks 的輸出路徑是什么、類(lèi)型文件名怎么命名。我的建議是配置里路徑相關(guān)選項(xiàng)不要寫(xiě)絕對(duì)路徑全部用相對(duì)項(xiàng)目根目錄的路徑。原因后面會(huì)講t3code 在解析路徑別名時(shí)對(duì)絕對(duì)路徑的處理容易遇到坑相對(duì)路徑要穩(wěn)得多。初始化完成后在schema/menu.ts里描述菜單模型export default defineModel({ name: Menu, tableName: menu, fields: { name: { type: string, required: true, max: 50 }, code: { type: string, required: true, unique: true }, path: { type: string, required: true }, order: { type: int, default: 0 }, parentId: { type: string, optional: true }, status: { type: enum, values: [enabled, disabled], default: enabled } }, softDelete: true, pagination: true, includes: [children] });這份描述的語(yǔ)義很直白一個(gè)菜單有名稱、唯一編碼、路由路徑、排序、父級(jí) ID、狀態(tài)支持軟刪除、分頁(yè)和子節(jié)點(diǎn)關(guān)聯(lián)查詢。3.2 編寫(xiě)Schema描述并生成API鏈路schema 寫(xiě)好后執(zhí)行npx t3code generatet3code 會(huì)做幾件事。首先把模型同步到prisma/schema.prisma生成對(duì)應(yīng)的 Menu model隨后在src/server/api/routers/下生成menu.ts與根注冊(cè)表更新接著在src/server/api/schemas/下生成 Zod 輸入最后在前端src/hooks/下生成useMenu.ts和類(lèi)型聲明文件。生成完的 tRPC router 大致長(zhǎng)這樣// t3code:component:begin export const menuRouter createRouter() .query(list, { input: menuListInput, resolve: async ({ ctx, input }) { const where buildWhereFromInput(input); const [list, total] await ctx.prisma.$transaction([ ctx.prisma.menu.findMany({ ... }), ctx.prisma.menu.count({ where }) ]); return { list, total }; } }) .mutation(create, { input: menuCreateInput, resolve: async ({ ctx, input }) { return ctx.prisma.menu.create({ data: input }); } }) // ... update / remove / softDelete // t3code:component:end這里能清楚看到查詢的排序、分頁(yè)、軟刪除過(guò)濾條件都是按 schema 描述自動(dòng)展開(kāi)的手寫(xiě)的話至少得十幾行樣板。3.3 前端調(diào)用與類(lèi)型提示驗(yàn)證生成的前端 hook 是針對(duì) React 封裝的。以u(píng)seMenu.ts為例它會(huì)導(dǎo)出useMenuList、useMenuCreate、useMenuUpdate等自定義 hook內(nèi)部直接封裝 tRPC 的 query/mutationexport function useMenuList(params: MenuListParams) { return trpc.menu.list.useQuery(params, { keepPreviousData: true }); } export function useMenuCreate() { const utils trpc.useUtils(); return trpc.menu.create.useMutation({ onSuccess: () utils.menu.list.invalidate(), }); }最直觀的驗(yàn)證方式是打開(kāi)頁(yè)面組件輸入useMenuList如果代碼提示里能自動(dòng)帶出{ page, pageSize, sortBy, sortOrder, keyword }這些參數(shù)類(lèi)型并且返回值能感知到list和total說(shuō)明這條類(lèi)型鏈路是通的。我一般還會(huì)順手在prisma studio里確認(rèn)表結(jié)構(gòu)字段名是否與預(yù)期一致避免默認(rèn)走 Prisma 屬性名和數(shù)據(jù)庫(kù)列名的駝峰映射問(wèn)題。到這里一個(gè)完整的 CRUD 后端鏈路和基礎(chǔ)前端調(diào)用就結(jié)束了。從寫(xiě) schema 到跑通接口走的都是聲明式描述 自動(dòng)生成的路子不用手動(dòng)在四五個(gè)文件之間來(lái)回跳。4. 使用中踩過(guò)的坑三類(lèi)最容易翻車(chē)的場(chǎng)景4.1 覆蓋策略導(dǎo)致的開(kāi)發(fā)分支丟失t3code 最需要小心的就是舊項(xiàng)目接入時(shí)的手工改造。前面提到增量生成依賴標(biāo)記區(qū)域但如果你的項(xiàng)目不是從零開(kāi)始用 t3code而是中途接入第一次 generate 時(shí)會(huì)發(fā)現(xiàn) t3code 默認(rèn)不覆蓋已有文件而是生成.t3gen后綴的新文件。這樣雖然安全但也帶來(lái)麻煩你需要手動(dòng)把生成內(nèi)容合并進(jìn)舊文件還要補(bǔ)上標(biāo)記注釋否則下次生成又會(huì)變成重復(fù)的新文件。我的處理方式是接入老項(xiàng)目時(shí)先跑一次生成然后逐個(gè)文件手工合并合并完成后確認(rèn)標(biāo)記注釋已經(jīng)寫(xiě)入再跑第二次 generate 驗(yàn)證沒(méi)有重復(fù)代碼。這個(gè)流程比較繁瑣但對(duì)已有線上代碼庫(kù)來(lái)說(shuō)安全第一值得花半小時(shí)換后面幾個(gè)月的穩(wěn)定。另外要留意.prisma 模型的同步?jīng)_突。如果團(tuán)隊(duì)里有人同時(shí)手工改了schema.prisma里的 Menu 模型又有人跑了 t3code generate工具默認(rèn)會(huì)用生成的描述覆蓋同名模型導(dǎo)致手工修改丟失。后來(lái)我給團(tuán)隊(duì)定了個(gè)規(guī)矩一切與模型結(jié)構(gòu)相關(guān)的改動(dòng)都要回到schema/menu.tsPrisma schema 只當(dāng)產(chǎn)物看不直接改。剛開(kāi)始大家覺(jué)得多一層間接操作很反直覺(jué)但運(yùn)行半年之后幾乎所有成員都認(rèn)為這個(gè)約束反而讓結(jié)構(gòu)變更變得可審計(jì)。4.2 路徑別名映射的差異與路由失效第二個(gè)坑和 Next.js 的路徑別名有關(guān)。T3 Stack 項(xiàng)目里tsconfig.json一般定義了/*指向src/*t3code 生成的代碼默認(rèn)也會(huì)用/server/api/...這類(lèi)別名導(dǎo)入。聽(tīng)起來(lái)沒(méi)問(wèn)題但 t3code 解析別名時(shí)用的是自己的配置項(xiàng)pathAlias它和tsconfig.json的 paths 不是一回事。我遇到過(guò)這么個(gè)情況配置文件里寫(xiě)了別名但忘了在t3code.config.ts里聲明 tRPC router 根路徑的別名前綴。結(jié)果生成的路由文件內(nèi)部 import router 時(shí)用了/server/api/trpc而實(shí)際生成的文件里對(duì)外導(dǎo)出的路徑變成相對(duì)路徑導(dǎo)致編譯期不報(bào)錯(cuò)、運(yùn)行時(shí) 404。折騰了兩個(gè)小時(shí)最后發(fā)現(xiàn)是別名設(shè)置不一致。建議把 t3code 的路徑相關(guān)配置和tsconfig.json做成一份共享源或者至少在 README 里寫(xiě)清楚項(xiàng)目里改了路徑別名必須同步改 t3code 的 pathAlias。用工具的人最忌諱的就是配置默認(rèn)值存活在潛意識(shí)里。4.3 生成代碼與Lint規(guī)則的沖突第三類(lèi)坑是生成代碼過(guò)不了 ESLint。t3code 生成的代碼特點(diǎn)是模板感強(qiáng)變量命名規(guī)整但偶爾會(huì)出現(xiàn)空行過(guò)多、單引號(hào)雙引號(hào)混用、縮進(jìn)不一致的情況。這不是 bug而是模板文件沒(méi)有跟著項(xiàng)目的 Lint 配置走。我在新項(xiàng)目里接 t3code 后第一件事就是把生成流程后面掛了一步自動(dòng)格式化npx t3code generate eslint --fix src/server/api/routers/menu.ts src/hooks/useMenu.ts更省事的做法是在t3code.config.ts里開(kāi)啟formatOnGenerate讓工具在寫(xiě)出文件后自動(dòng)調(diào)用 prettier。有幾個(gè)版本這個(gè)開(kāi)關(guān)還不太穩(wěn)定所以我仍然習(xí)慣在 package.json 里寫(xiě)一條組合命令。如果生成完的代碼被 ESLint 標(biāo)紅不要急著關(guān)規(guī)則先看看是不是模板變量里帶了不該有的空白字符。還有一個(gè)容易被忽略的是 unused import 問(wèn)題。當(dāng)某個(gè)模型沒(méi)有配置關(guān)聯(lián)查詢時(shí)生成的 router 里不會(huì)用include但模板默認(rèn)引用了 Prisma 的Prisma類(lèi)型結(jié)果一編譯就報(bào) unused。t3code 后來(lái)加了 lint 清理步驟但升級(jí)版本后仍建議跑一次全量tsc --noEmit驗(yàn)證。5. 二次定制與團(tuán)隊(duì)協(xié)作把t3code變成團(tuán)隊(duì)的基礎(chǔ)設(shè)施5.1 自定義模板與變量注入內(nèi)置模板能滿足 80% 的 CRUD 場(chǎng)景但每個(gè)團(tuán)隊(duì)多少有點(diǎn)自己的范式。比如我們團(tuán)隊(duì)約定所有 list 接口都必須返回summary匯總字段t3code 默認(rèn)模板里沒(méi)有這個(gè)邏輯就得自己改模板。t3code 的自定義入口是把模板目錄指向項(xiàng)目?jī)?nèi)某個(gè)目錄比如templates/然后復(fù)制一份內(nèi)置的router.njk和hook.njk進(jìn)去改。模板變量名可以通過(guò)在 schema 描述里補(bǔ)充自定義字段實(shí)現(xiàn)比如export default defineModel({ name: Menu, // ... t3: { customSummary: true, }, });只要內(nèi)部模型里有t3對(duì)象Nunjucks 模板里就能通過(guò)model.t3.customSummary做條件判斷。這種自定義方式比修改生成后的文件要干凈得多因?yàn)樯珊蟮奈募看味紩?huì)被覆蓋。5.2 與CI/CD、ESLint、prettier的工作流整合團(tuán)隊(duì)協(xié)作時(shí)t3code 最好加入 CI 檢查防止有人手工改了生成產(chǎn)物卻沒(méi)有同步 schema。我們做法是加一個(gè) CI 任務(wù)npx t3code generate --check--check模式不會(huì)真正寫(xiě)文件只比對(duì)如果執(zhí)行生成是否有文件發(fā)生變化有變化就返回非零退出碼。這樣哪個(gè) MR 里出現(xiàn)了schema 改了但生成產(chǎn)物沒(méi)提交的情況流水線會(huì)直接攔截審查者就不用肉眼 diff 那么痛苦了。prettier 和 ESLint 的整合也建議做成一條命令鏈{ scripts: { gen: t3code generate, gen:fmt: npm run gen prettier --write . eslint --fix src/ } }不要只寫(xiě)在 README 里直接把命令放進(jìn)package.json更實(shí)際新成員跑npm run gen:fmt就守住了規(guī)范。5.3 團(tuán)隊(duì)規(guī)范化的實(shí)際收益與注意事項(xiàng)我們團(tuán)隊(duì)用了大半年之后最大的變化不是代碼寫(xiě)得少了而是代碼審查的時(shí)間明顯下降。因?yàn)樗?CRUD 模塊的路由命名、校驗(yàn)規(guī)則、錯(cuò)誤處理模式都高度一致審查者不需要每次重新理解一套新的寫(xiě)法。新人上手項(xiàng)目時(shí)也不用從零學(xué)業(yè)務(wù)模塊的代碼結(jié)構(gòu)直接看一份 schema 描述就大概明白模塊有哪些字段、哪些規(guī)則。但注意t3code 解決的是重復(fù)不是復(fù)雜。如果一個(gè)模塊的邏輯集中在自定義查詢和業(yè)務(wù)規(guī)則上那生成產(chǎn)物的占比會(huì)下降最終還是要靠人寫(xiě)。所以團(tuán)隊(duì)約定俗成的用法是先用 t3code 生成骨架再在標(biāo)記區(qū)域外補(bǔ)充自定義邏輯盡量不動(dòng)生成區(qū)。這樣既保住了規(guī)范又留了擴(kuò)展空間。6. 幾個(gè)使用心得性能、版本升級(jí)與長(zhǎng)期維護(hù)最后分享幾個(gè)我在長(zhǎng)期使用中的觀察這些屬于文檔里不會(huì)細(xì)寫(xiě)的部分。第一性能方面。t3code 在大型項(xiàng)目里生成速度主要受模板渲染和 Prisma schema 同步影響。模型數(shù)量幾十個(gè)時(shí)基本是毫秒級(jí)但一旦 Prisma schema 文件很大每次讀寫(xiě)整個(gè)文件再做字段級(jí) diff 會(huì)明顯變慢。如果項(xiàng)目模型超過(guò)一百個(gè)可以考慮拆成多個(gè) schema 描述文件t3code 支持多文件輸入內(nèi)部會(huì)做合并執(zhí)行體驗(yàn)會(huì)好不少。第二版本升級(jí)不要沖動(dòng)。我經(jīng)歷過(guò)一次 t3code 大版本升級(jí)它調(diào)整了內(nèi)部模型的字段命名規(guī)范導(dǎo)致舊模板里的變量名全部失效生成的代碼結(jié)構(gòu)變了。升級(jí)前務(wù)必看 release notes并且先在 feature 分支跑一次--check確認(rèn)影響面再合并。第三如果要跨項(xiàng)目復(fù)用一套模板可以把模板和 schema 描述單獨(dú)放到一個(gè)私有 npm 包這樣每個(gè)項(xiàng)目只需要依賴這個(gè)包加 t3code就能保持全團(tuán)隊(duì)的生成產(chǎn)物風(fēng)格統(tǒng)一。根據(jù)我個(gè)人的使用體會(huì)t3code 這類(lèi)模型驅(qū)動(dòng)的代碼生成工具最大的價(jià)值不是幫你省那幾分鐘的敲代碼時(shí)間而是讓團(tuán)隊(duì)在類(lèi)型安全這件事上建立了一個(gè)統(tǒng)一的事實(shí)來(lái)源。你只要維護(hù)好 schema 描述前后端的契約就不會(huì)悄悄漂移。日常開(kāi)發(fā)里我也習(xí)慣在每次生成后順手打開(kāi)一個(gè)生成文件快速掃一眼模板輸出的實(shí)際邏輯確認(rèn)它和我預(yù)期的行為一致——相信我工具再自動(dòng)化也要保持對(duì)生成物的一雙人眼。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
啪啪视频亚洲第一| 久草看看看| 九九性爱网| 亚洲精品99999| 蜜臀久久久国产| 婷婷五月天av| 欧美久久伊人| 亚洲AV无码久久久国产精品| 亚洲精品乱码线路中文字幕| 国产AV中文| 亚欧美综合网。| 超碰在线人妻不卡| 欧美色图私拍91| 99热精品在线观看| 熟女视频久久| 激情综合久久| 日本精品高清一二区一本到| 国产欧美一级在线观看| 偷拍亚洲熟女视频播放| 无码直播久久久| 亚洲激情综合另类| av爱爱爱| 少妇高潮流水av免费| 熟女熟妇一区二区三四区| 97超碰资源网| 果冻传媒一区二区三区| 中文字幕精品三级久久久| 成人五月天色网| 亚洲棕合电彰| 嗯嗯啊啊好疼| 亚洲精品1区| 色偷偷色偷偷欧美日韩| 久久天天躁日日躁狠狠躁| 丁香五月偷拍| 亚洲图片 91| 久久性爱免费送| 免费一级欧美片片线观看| 97欧美性爱| 欧美日韩香蕉| 色婷婷影视| 五月婷婷激情综合| 欧美 青青草| 国产传媒日本欧美专区| 91爱剪切久久| 日韩Va亚洲va欧美Ⅴa久久| 免费αV在线视频| 国产亚洲性生活视频播放| 久久久久久久久久久免费精品| 亚洲日韩在线a不卡99精品| 中国AAAAAA黄色片| 亚州免费啪啪视频| 国产久久久9999| 日韩中文字幕熟妇人妻| 台湾肥佬网一区二区三区| 欧洲亚洲人妻无码中字久久三区四区 | 国产熟女免费观看久久| 成人乱码一区二区三少妇| 思思性爱| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 天天综合网久久ww| 亚洲偷拍欧美激情| 91爱| 亚洲第一狼人丝袜美女另类| 在线观看黄色电话| 色好看av| 丰满人妻区一区二区三| 青青免费在线视频一区| 精品黑人一区二区| 无码视频一区二区| 2017亚洲天堂| 欧美日韩国产高清在线一二三区| 玖玖97综合| 久日91在线| 国产熟女一区二区| 2018天天干在线视频| 亚洲强奸乱伦影视网| av在线资源| 欧美天天谢综合网| 精品久9| 日韩精品色呦呦| 免费av大片| 色综合一区二区三巨| 欧美少妇色综合| 色综合一区二区三区| 99re国产精品视频| www老逼91| 91天天美女| 国产精品视频91久久| 国产AV高清AV无码| 蜜桃臀一区二区aV| 艹精品| 熟妇艹鸡八| 丝袜 中出 制服 人妻 美腿 中文字幕| 久久精品国产精品一区| 久久ww| 亚洲人久久久网| 97天天日| 殴美牲| 暴力av在线| 亚洲无线码欧洲精品区别| 日本黄 R色 成 人网站| 欧美色91| 色噜噜综合网| 99热这里只有精品18| 最新三级网址| 久久人爽| 欧美日韩激情无码专区| 婷婷五月天无码 | 欧美一级欧美三级在线观看| 色婷婷国产精品一区在线观看| 人人爱人人操人人性| 双插在线| 精品国产精品一区二区| 9.1小视频| 丁香婷婷九月| 精品一区二区2| 欧美成人一区二区三区在线播放 | 中文字幕精品免费一区二区| 亚洲男人的天堂AV| 约操熟妇| 女上位精品在线| 18禁免费视频| 激情啪啪视频| 97免费在线观看| 风韵犹存大大大大香蕉| 操逼网站地址| 日本精品999| 蜜桃久久综合视频| 97爱亚洲| 大香蕉伊人网WWWn0n| 免费国产视频| 四虎免费看黄| 亚洲成人综合在线| 91精品国产91久久青草| 国产盗摄美女如厕大神作品在线观看 | 校园春色亚洲欧洲| 无码精品一区二区三区潘金莲| 久久AV色| 欧美日韩成人| 91丨国产丨白浆秘 洗澡动漫| 午夜激情床戏激情| 国产成人亚洲精品无码古代早漏男| 性交一区二区在线播放| 99超级碰免费视频| 亚洲影院365| 熟女AV一区| 国产成人免费观看在线视频| 亚洲激情在线| 亚洲污一污二| 亚洲nv男人的天堂网| 91狠狠综合网| 日韩 欧美 国产 麻豆| 女人爽到高潮潮喷18禁网站| 国内毛片国产欧美拍| 色香伊人| 亚洲熟妇乱女区二区三区| 成人免费视瓶| 嗯嗯不要视频| 久久成人午夜狠狠| 九九九久千久久激情蜜桃在线看 | 免费成人自拍视频在线| 中文字幕片| 草草草视频在线免费看| 中文字幕一区二区三四五区日日骚| A片 AV一级在线播放观看免费| 成人性交午夜免费片| 99.色网| 一区二区三区激情在线观看| 久久草草亚洲蜜桃臀| 中日992视频| 亚洲综合在线高清| 婷婷五月天成人网| 91oumei| 性爱1区| 香蕉久久AⅤ...| 91热| 亚洲天堂男人天堂网| 久久精品视| 亚洲中文字幕乱码无码一区二区 | 欧美日韩中文字幕不卡| 91天天c| 天美av在线观看| 在线观看国产黄色| 欧美,日韩综合久久| 极品另类| 9久久精品| 少妇熟女视频一区二区三区| 97精品综合久久网| 久久只有精品一区二区三区| 亚殴在线| 欧美乱色| 啪啪视频mP4| 青青草天天亲夜夜操网| 久久久久久国产无码精品| 久久草草亚洲蜜桃臀| 亚洲在线91| 无套后入双马尾| 日日日日做夜夜夜夜做无码97| 成人女人国产| 97国产亚洲中文在线| 久久麻豆一区二区| 国产少妇与亚洲av| 亚州成人a∨| 亚洲日产专区| 99中出在线| 玖色AV| 久操黄色视频| 人妻密肉在线观看| 日韩二三区| 色性荡荡荡荡视频| 大香蕉伊人网WWWn0n| 啊啊啊不要好爽日韩无码一区| 久久做97| 午夜精品久久久久久久| 亚洲中文字幕久久无码精品| 国语精品av| 老熟女综合| 天天射日日干| 婷婷在线视频在线观看| 日韩av一级黄片| 亚洲国产欧美中文永久| 五月婷婷五月天| 日日夜夜干| 亚洲熟妇图片| 亚洲91大片| 欧美日韩人妻精品系列一区二区三区| 91少妇人妻| 一本色道无码DVD中文字幕| 无码人妻一区二区三区色欲aⅴ| 少妇厨房愉情理伦片bd在线观看| 国产成年免费大片黄在线观看| 亚洲中文国际强奸字幕| 中文字幕成人| 歐美一級亂黃99在綫精品| 色婷婷蜜臀av| 欧美日韩人妻精品一区二区三区| 超碰78| 黄色人人| 天天日天天舔| 久久熟女嫩草成人片免费| 精品天堂| 日韩美女操b| 色妹子A V| 亚洲欧美日产国产91毛片| 国产热av| 无码精品久久久天天影视| 国产尹人在线视频免费| 97色在线观看| 嫩草 我啊~嗯~在线| 一二三区精品视频| 激情无码日韩| 一区二区三区 丝袜 高跟 美腿| 性色av一区二区| 精品国产乱码久久久久久久| 天天视频网站黄| www.99热| 亚洲在线91| 国语精品内射在线观看| 爱啪精品一区| 国产97亚洲| 深夜国产一区二区三区在线看| 日韩精品99999| 91强在线播放| 九九综合久久中文字幕| 91黑丝少妇| 亚洲狠狠入| 黄色AAAAAAAAAAA大片| 99热精品在线观看| 四虎影视 亚洲无码| 欧美区亚洲区偷拍区| 超碰精品在线| 国产中文字幕在线| 熟女被操视频网址| 国产精品毛片| 日韩图区 偷拍| 国产亚洲欧洲在线观看| 中日韩免费看男女操逼大全| 免费视频无码| 色约约一区=区三区| 亚洲国产尤物yw在线观看| 超碰爽人妻熟女Av| 亚洲97| 99热精品在线| 黄骗免费网站| 精品一区二区三区蜜桃臀赵总| 人乳av| 国精精品无码一二三区水多多| 99热在线不卡| 一区三区啪啪| 97精品全部| 欧美在线播放aaaa| 麻豆av一区二区| 人人操人人狠狠操| 亚洲丝袜诱惑| 久久国产99精品72福利| 成人免费毛片| 天美传媒Av在线| 亚洲av综合伊人久久| 中文字幕丝袜人妻| 精品少妇人妻av久久免费| 91久久久老司机| 秋霞久久亚洲精品成人| 国产又大又粗又长视频| 婷婷五月天成人| 精品一区二区三区蜜桃| 中文字幕版| 变态乱伦伪娘灌肠一区二区| 欧美性少妇| 中文字幕五区| 男女一进一出视频久久| 91丝袜激情在线| 国产真实野战在线视频| 九九九不卡| 欧美在线官网| 欧美性爱免费短视频| 91欧美性| 五月天婷婷基地| 青娱乐国产剧情av一区| 狠狠干妹子| 97人人操人人干| 水多多映视AV| 亚洲日韩97| WWW4虎| 国产AV激情无码久久无码| 亚洲 中文 欧美 日韩 在线 | 97干97色| 大香蕉青青9| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | av在线免费一区二区| 久草电影网| 夜夜爽妓女| 国产亚洲精品第一最新| 性久久久| 91成人精品| 91伊人影视综合| 日本一本道A级黄色毛片试看60分钟| 国产精品乱码久久久久久久久| 蜜桃精品一区二区三区ww| 国产女人极品高潮毛片| 97色碰| 久九9精品| AV高清一区| 色色色综合| 久久91视频| 爱逼综合| 99999久久精| 色男人色天堂东京热| 熟女丰满人妻一区| 欧美 亚洲 偷拍自拍| 在线αⅴ| 日韩兔费看黄片| 五月天AV资源| 大屁股熟女一区二区三区| 国产精品久久久亚洲一区| 国产亚洲日韩在线三区黑人| 高清无码久操视频| 97色在线视频| 午夜男人的天堂| 在线五区| 好爽要喷了| 桃色人妻在线视频| 九九九影院| 嗯阿好爽好紧| 精品国产91内射久久| 日韩三四五区| 亚洲五月丁香花狠狠干一区二区三区| 成人网站 免费观看| 亚洲熟女乱色一区二区三区| 啊啊啊啊操死我| 成人一二三区| 91蜜臀人妻中文字幕在线| 亚洲综合骚逼| 激情久久日韩精品中文字幕麻豆| 丰满精品人妻少妇久久字幕| 亚洲官网在线| 亚av顶级裸体一区二区三区四区五区| 97 超碰 人人做 人人爱| 色妹子A V| 超碰人人妻| 色五月婷婷五月天| 色五月婷婷麻豆在| 95精品在线| 东京日日夜夜| 嗯阿好爽好紧| 亚洲精品不卡一二三区| 久久精品成人| 欧美草草高清日韩视频| 亚洲欧美另类小说| 欧美色www亚洲国产阿娇要播| 久久夜夜| 综合免费无码中文| 欧美国产伊人久久久久| 黄片不用下载在线观看| 99视频自拍| 日产狠狠干| 98一区二区精品| 殴美,日韩国产伦精品| 爱欲AV| 精品国产国产AV| 97超碰免费生活| 呻吟 欧美 日本 中出| 啊啊啊在线看| 91青青草| 凸凹视频在线观看| 东北女人av| 日本999精品| 精彩久久中文| 日韩射精| 欧美一级久久久久久久大片动画| 人人看人人摸人人色| 婷色五月| 精品人妻一区二区三区视频| 色色97爱| 天天草夜夜草高潮片| 欧美一区二区三区日韩| 97在线欧洲| 久久久久久99999国产精品| 亚洲精品99999| 在线观看无码三级少妇| 欧美99热| 嗯嗯啊啊视频一区二区三区| 伊人欧美大香蕉视频| 欧亚日韩一区在线| 亚洲操逼无码| 吉川爱美98堂在线| 欧色网址| 91人妻素女| 欧美黑人XXXⅩ高潮交| 另类 综合 日韩 欧美 亚洲| 丰满人妻一区二区三区蜜桃视频| 亚洲啪啪视频一区二区| 狠狠欧美| 一区e区三| heyZO天然素人无码AⅤ专区| 六月丁香啪啪啪| 久久综合久色欧美综合狠狠| 白丝AV| 久久鲁干| 粉嫩小泬久久久一区二区| 密臀在线一区尤物| 日韩不卡a级视频专区| 99re在线观看| 亚瑟国产精品久久无码| 欧美制服网站美腿丝袜| 东北女人高潮视频| 全球成人中文在线| 91国产丝袜美女| 另类小说综合网| 久久9久9久99久9久9| 日韩天天综合| 少妇滛荡视频| 精品制服美女中文一区二区三区| 性色av大全| 99热超碰| 伊人影院日本| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 色综合国产在线观看| 日日日日日| 亚州五月| 亚洲高清无码免费观看视频| 亚洲大色鬼| 免费的很黄很污的全部视频| 国产AV天美| 久久性爱视频免费看| 欧美专区在线| 久久的免费性爱视频| 天天流夜夜操| 激情综合网激情综合| 欧美在线官网| 亚欧高清| 天天天天天天天天综合| 岛国激情视频软件| 中文熟女五十乱码在线| 九九99精品| 午夜美女诱惑电源网| 九月丁香| 伊人影院日本| 久久精品国产99国产精品亚洲| 国产成人 综合亚洲 天堂| 久久精品一区| 操逼逼福利视频| 国产精品色| 蜜桃臀av在线观看| 亚洲欧美色图片| 色婷婷成人综合| 日本一区视频在线观看| 精品视频久久区| 国产成人自拍视频在线| 国产97在线 | 亚洲| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 免费亚洲国产精品久久一区| 日本在线不卡一二区| 亚洲精品少妇| 91美女视频在线免费观看| 中国国国产一级特黄毛片| 日韩精品三级| 台湾肥佬网一区二区三区| 99在线无码精品秘 入口黑人| 激情文学小说一区二区| 久热久一区二区三区| 国产成人自拍视频视频| 日韩欧美三级| 啊啊好多水| 亚洲最大无码中文字幕网站| 伊人操| 欧美成人一区二区| 亚洲精品蜜桃久久久一区二区三区| 国产一区二区在线播放量| 91青青在线视频| 日韩偷拍色图| 日韩av乱伦| 日本高清免费一本视频在线观看| 成人精品水蜜桃久久久久久久| 91 手机在线播放 绯色| 欧美不卡二区| 日韩簧片免费看| 偷窥自拍亚洲| 日本新免费二区三区| 色性综合| 国产精品亚洲免费| 久久东京伊人一本到鬼色| 97 色综合| 97在线看| 久久青青草在线视频| 日夜干射色啊| 91女神在线视频| 性做久久久久久免费观看软件| 亚洲色人| 天堂亚洲欧美| 天天干夜夜| 国产极品久久久| 夜夜爽爽爽| 日本女人操逼| 日韩去日本高清在| 国产精品呦一区二区三区| 在线视频97| 青草成人免费视频一COm| 搡老女人老91妇女熟女| 夜草欧美| 色情亚洲日本成人| 熟女中出视频| 国产精品久久9| 久超碰在| 天天日天天插| 色婷婷影视| 日本在线不卡一二区| 日本操BAV| 男人a天堂手机在线版| 午夜激情成人在线观看| 欧美日韩黄片精品在线| 久久精品国产AV一区二区三区| 亚州综合色| 1区2区3区视频| 中文字幕在线免费观看 | 日韩传媒在线| 丁香五月av| 久久久久久久久成人av解说| 天天看天天在线精品| 2020中文字幕在线观看| 日本天堂在线播放| 亚洲国产中文字幕| 素人伊尹大香蕉免费下载视频| 日日干夜夜欢| 激情五月天校园春色网| 91日日夜夜| 国产美女91| 蜜臀久久99精品久久久久电影| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 亚洲女优有码无码高清| 精品国产乱码久久久A| 天天综合官网| 26UUU欧美日本| 黄色香蕉视频网站一区| 美国一区二区三区视频| 国产粉嫩出水在线播放| 色婷婷影视| 亚洲综合97中文网| 精品一久久久| 另类图片五月天| 91爱啪| 日本黄大片在线观看视频| 99久久精品无码一区二区毛片免费| av一区二区三区四区| 国产黄片在线免费观看| 99色在线视频| 伊人久久大香线综合无码| 韩日精品福利视频一区不卡在线免| 国产中文日韩欧美一区二区三区人妻丝袜美腿 | 91国模| 18禁无码永久免费无限制| www.av在线视频| 婷婷亚洲综合| 爽爽爽免费视频| 久久禁| 精品人妻免费观看| 亚洲国产一区二区三区四区国产| 亚洲人精| 欧美性五月| 黄片www视频免费| 国产女人操逼视频| 亚洲AV免费在线观看| 亚洲十八禁止| 欧美成人一级麻豆| 黄片不用下载在线观看| 欧美在线色图| 亚洲资源一区| 强奸乱伦av电影| 日韩女优在线| 亚洲 欧美 日韩另类 麻豆| 无码区蜜乳| 91色情黑丝搞鸡在线观看一区二区三区三州 | 大香蕉92| 国产操伦| 日韩美女久久一区二区三区| 久久久久深夜无码| 久久国产免费激情视频| 九九九午夜| 超碰97伊人| 综合欧美激情网| 日韩二级| 久久天堂| 五月婷婷激情| 欧美丝袜亚洲| 26uuu国产成人综合| 91色黑人少妇| 天天干人人看综合| 国产欧美日韩在线观看麻豆传媒公司| 99精品在线| 欧美日韩操逼动图| 加勒比海成人视频网| 人妻色偷色噜| 一区=区三区视频| 欧洲精品一级二级精品综合视频综合| 国产亚洲国产超碰| 欧洲站一级二级三级h| 国产精品爽爽v| 欧美久久婷婷| 伊人丁香五月婷婷| 青青草大香蕉在线视频| 国产家庭乱伦表演| 亚洲综合性感在线| 1769国内精品视频| 欧美日韩婷婷中文| 在线播放一级无码视频| 精品一区二区三区四区女| 婷婷在线视频在线观看| www.99热在线只有精品| 久久亚州精品成人Av无| 日韩精品操少妇| 久久精品久久九九精品| 裸体美女久久久| 亚洲天堂人妻熟妇视频| 学生妹天天看| 国产成人在线观看综合| 人人操人人操人妻人| 婷婷久久综合| 亚洲综合电影| 69视频福利导航| av强奸乱轮| 久久人妻一区二区三区高清| 亚洲色诱惑| 97免费在线观看视频| 中文高清一区二区的| 91在线欧美| 五月天色电影| 免费在线观看国内色片网站网址| 久久久91福利姬| www.色婷婷| 日韩成人高清一区二区| 热热热热日日漂亮永久永久国产日| 国产野战露脸在线播放| KK色在线影院| 色婷婷aV一区二区三区麻豆综合| 国产日韩精品无码去免费专区国产| 熟女网站最新| 狠狠色丁香| 91被操| nuu12国产麻豆精品| 人妻少妇久久久| 中文AV制服乱伦| 免费超碰97久久| 日韩精品区二区三区不卡| 亚洲天堂五月天国产| 精久久久| 久久9精品视频| 91小视频| 亚洲欧美成人网站AAA| 亚洲91大片| 熟妇熟女亚洲天堂网| 激情抓乳插进去啪啪啪日韩 | 日韩欧视频| 伊人网在线观看| 99精品网| 思思热久久成人| 夜夜爽夜夜操| 国产91丝袜在线播放蜜月| 国产伦精品免编号公布| 黄色大香焦1级‘′‘| 日韩无码人妻| 日产精品久久久一区二区| 欧美久久毛片基地| 欧美激情综合色综合啪啪五月| 国产在线视频二区| 69一区二区三区 | 你懂得91| 亚洲AV无线| 人人操人人爽人人操人人| 亚洲 欧美 日韩另类 麻豆| 久久精品天美| 亚洲色人妻综合| 日韩不卡av一二三| 一类无码操逼视频| 自拍偷拍草一草| www.男人的天堂| 性色高清..……| 人妻内射一区二区在线视频| 久久久噜噜噜久久久| 综合色久| 日韩不卡av一二三| 另类一区| 成人免费福利网站国产| 成人av影院在线观看| 国产无码成人无码| 91亚洲人| 久久久久久久唑| 99久在线精品99re8蜜桃| 亚洲在钱| 久久成人精品| 国产精品午夜精品| 国产精品乱码久久久久久| 欧美亚洲美少妇一区二区| 欧美 青青草| 一个人在线看的黄色电影网站| 天天做天天爱天天高潮| 色情综合网| 69精品人人人人| 五月综合视频| 亚洲熟妇极品| 欧美精品另类人妖xxxx| 日本有码影片下载| av在线浏览| 中文字幕乱码人妻一区二区三区,99精品 | 裸体美女免费看网站青草| AV大香蕉| 欧美亚洲玖玖玖| 情色日播放AV| 熟女色图在线| 一二三四视频在线社区中文字幕| 走光一区92下载| 久久精品99| 麻豆天美在线| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 天天综合网亚洲综合网| 91天堂丝袜美腿| 人妻精品一区二区| 中文字幕三四区| 老外又粗又长一晚做五次| 国产野战露脸在线播放| 多乙久久久久久| 色五月激情综合网| 黄页大片在线观看| 欧美 牲| 好湿好紧视频| 男人的天堂 在线一区| 92性色国产午夜福利在线661| 国产乱色国产精品免费视| 国产精品自在自拍视频| 日韩久久三区| 91高跟美女在线播放| 亚洲综合另类色图| 久草加勒比一区在线| 久久性生大片免费观看性| 日韩国产欧美伦理在线| 五月丁香婷婷综合| 亚洲码和欧洲精品激情系列| 97av,com| 日日夜夜精品视频| 无码精品一区二区三区潘金莲| 激情小说五月天| 九九久久国产精品| 精品国产乱码久久久影院| 亚洲精品国产精品成人| 丝袜美腿制服人妻二区中文字幕| 国产按摩一区二区三区| 九九国产| 天天澡天天爽日日AV| 欧美日韩操逼动图| 伊人影院在线理论播放 | 亚欧高清v| 中文字幕丝袜人妻| 强乱老妇中文字幕| 岛国视频一二三区| 91 手机在线播放 绯色| 九九人妻| 国产福利视频精品视频| 天天日天天色| 97天天在线| 51国产午夜精品视频| 九九热AV| 我爱搞逼综合网| 欧美Ⅴ性爱| 天天干天天拍| 97国产精品久久久久| 国产黄色视频久久| 97AV爱| 欧美性高潮| 国产小视频91| 麻豆精品天美| 激情小说图片亚洲首页| 五月丁香六月婷综合成人综合 | 操迟操逼在巾线Fre看| 天天狠| 亚洲情色 自拍| 操我无码| 久久草视频污视频| 国产精品久久久久无码Av网曝门 | 91精品人| 大香蕉操久久| 国产成人五月天丁香花| 精品人妻美妇91job| 人人爽人人精品乱人伦AV| 亚洲A曰本VA欧美VA视频| 亚洲欧美精品91| 亚洲中文字幕av| 精品国产精品一区二区| 9ⅰ久久久天天| 操逼逼福利视频| 色偷综合| 青娱乐国产精品| 男人精品天堂一区| 美女尤物人人操| 亚洲日产专区婷婷| 亚洲精品一二区| 欧色性第一页| 欧美日本一区二区a人| 九九九九九九九九九九精品视频| 高清无码一区二区三区| 黄日韩| 2019天天干天天操| 女上位精品在线| 丰满人妻大屁一区二区| 欧美色图亚洲色,麻豆| 青娱乐日韩无码| 色香网| 69人妻精品一区二区绯色| 欧美综合亚洲综合| 97一区二区蜜臀| 性爱综合一区二区| 日韩欧美中文字| 中文字幕av乱伦| 一本色道人妻久久| 九九热免费国产视频婷婷伊人五月 | 亚洲欧美自拍偷拍| 日夜尻逼网| 日韩高潮一区| 中国操逼无码| 超碰无码五月97| 巨爆乳肉感一区二区三区竹菊影视| 97伊人| 德国一二三不卡| 中文字幕丝袜国产第一页不卡| 日本熟妇色熟妇在线视频播放| 人、人、摸,人、人、草| 蜜臀久久99精品久久久久久成人小说| av天天在线观看| 韩国手机不卡无码三级视频| 欧美熟女逼久久久久久| 大香蕉免费中文| se吧提供国产乱老熟视频胖女人| 2026国产精品视频| 99亚洲天堂| 一道α片欧美| 日本二区不卡| 91在线免费观看处女| 美国aaaaa一级黄片| a啊啊啊啊啊啊啊啊一区二区| 欧美另类色| 国产精品一区午夜福利| 久久久性爱| 白丝少妇一区二区| 大香蕉啪啪网| 最新亚洲人成网站在线影院| 亚洲深夜福利| 天堂射| 精品精品精品| 国产成人bd在线观看| 啊啊啊好想要| 色哟哟av| 夜精品久无码| 男人的天堂2019AV| 日本色色色色色视频| 美女91网站| 欧美偷| 天天操人人操骚逼网站| www鬼畜国产男人的天堂| 综合欧美激情网| 国产精品不卡av免费在线观看| 亚洲男人天堂视频| 欧美性生活内射| 日韩成人色图| 丁香婷婷久久 | 成人综合网 欧美| 六月丁香五月婷婷| 亚洲精品一区二区三区在线播放| 精品国产Av无码久久久亚洲| 亚洲美女高潮喷水视频| 性交一区二区在线播放| 78p欧美| 中文字幕日韩综合| 我爱大香蕉| JIZZJIZZ国产精品喷水| 91露脸熟女专区| 国产乱伦视频污| 东京热毛片177b2viP| 欧美综合狠| 日本孕妇孕交| 99蜜桃臀久久久欧美精品网站| 国色天香av| 小少妇| 久久一二三四五六七八九区区区 | 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 中日无幕一二三四区| 婷婷五月成人| www.超碰| 成功精品影院| 激情丁香五月婷婷| 香蕉综合网| 婷婷五月天激情四射| 亚洲av强奸乱伦| 国模精品一区二区三区苹果色戒| 国产午夜激片Av毛片不卡| 日日日日做夜夜夜夜无码| 国产传媒午夜理伦精品| 强奸乱伦 亚洲一区| 日产欧美电影一区二区三区| 欧美组图日韩亚洲中文字幕| 亚洲国产丝袜熟女av| 97色亚洲| 免费人成毛片乱码| 国产午夜福利电影免费在线观看 | 色超碰综合| 九九国产热| 中国黄色特级精品一区二区三区片| 精品人妻一区二区三区视频| 在线一区| 蜜桃午夜视频一区二区| 夜夜高潮夜夜爽夜夜爱爱一区| 色色97爱| 毛片一区二区| 国产又猛又粗又爽又黄| 天天操人人操狠狠插| 四虎影视永久在线免费| 欧美强奸一区二区诱惑| 亚洲综合成人网| 91人妻爽爽人人做人人澡| 九九热免费国产视频婷婷伊人| 亚洲成人一二三区| 九九九九九九九九九五码| 性九九九九九九| 久热伊人| 成人五月天丁香激情综合| 久久伊人亚洲AV无码网站| 久久av成人无码免费| 夜夜草网站| 免费农村成人少妇人妻Aa一区二区视频| 嗯嗯嗯啊啊啊操的我好爽| 色婷婷淫色网| 精品美女少妇一区二区| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 无码九九九九| 69一区二区| 国产精品嫩草久久久久| 91性高潮久久久久久久久| 97干在线看| 亚洲欧美日韩中文久久自慰| 欧美亚洲首页| 先锋激情∨在线视频播放| 人、人、摸,人、人、草| 麻豆 欧美 日韩| 亚洲男人的天堂网| 久久国产精品m码| 另类小说综合网| 超碰狠狠操| 97超碰亚洲| 欧美黄业| 全免费a敌肛交毛片免费| 久久久久精| 天天综合站| 强被迫伦姧在线观看无码网站| 黄网色一区二区三区四区精品| 四虎永久在线精品免费网址 | 18禁在线视频| 超碰人人色| 青青青艹在线视频| 97干在线| www色婷婷| 国产精品久久久久久久久久久久久久久久 | 色黄色美女大长腿午夜视频| 女色视频社区| 亚洲精品蜜桃久久久| 免费福利视频中文字幕| 激情五月天婷婷| 99国产精品自在自在| 欧美 精品国产制服第一页 | 操国产高清| 成人国产精品三级A片| 激情终合网| 2020久久免费视频| 婷婷五月丁香五月| 国产精品69久久久久孕妇欧美| 人人操 欧美| 欧美极品女人的天堂| 中文字幕青青草| 日本成人电影资源网| 九九九九日本| 97亚洲综合影院| 色色亚洲| 91综合无码| 亚洲高清无码免费观看视频| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 岛国成人av在线播放网址| 91丝袜美腿片| 国产精品亚洲天堂网址| 人妻精品4K4K4K4K4| 97干色| 久久女人视频| 伊人影院日本| 嗯嗯嗯,草死我| 国产精品视频内谢女人| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 91 亚欧| A片 AV一级在线播放观看免费| 欧美与日韩97| 强奸乱伦大香蕉网| 国产91丝袜在线播放蜜月| 欧美性爱十八禁| 春色综合免费| 日韩一级片| 亚洲成人ab| 日本超碰在线国产一区| 中文字幕制服诱惑| 999狠狠综合| 中文字幕在线观看网址| 亚洲中文字幕妇伦久久| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 日韩操逼HD| 天堂亚洲精品久久老牛| 国产真实野战在线视频| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 国产91美女高潮| 91在线免费精品视频| 欧美 日韩 国产传媒| 蜜乳Av成人片网站| 亚洲天天精品| 99热综合| 日本爽爽爽爽爽爽免费视频| 97亚洲资源| 太久视频| 国产农村妇女毛片精品久久| 激情五月天网站| 久久的免费性爱视频| 丁香婷婷激情五月天无毒不卡 | 亚洲91少妇| 熟女激情综合网| 亚洲色图 图片| 久久伊人大香蕉| 日本国产欧美一区三区二区| 求求你操操我| 亚卅熟女乱色| 一区二区乱码福利| 美日韩一二三区| 婷婷伊人綜合中文字幕| 国产精品爆乳懂色蜜乳| 精品二999| 婷婷五月天激情小说| 日韩av电影成人在线| 女上位精品在线| 久久99国产综合精品女同| 自怕偷自怕亚洲精品| 精品国产乱码久久久久久免费| 欧美日韩情色一区二区| 成人七区| 91成人无码| 加勒比海成人视频网| www.色婷婷.com| 午夜亚洲国产理论秋霞| 欧美综合1性辶| 91成人在线| www.黄色在线| 人妻天天爽夜夜爽爽| 草草网站影院白丝内射| 欧美亚洲图片| 2019午夜福利视频| 91美女在线精品视频| 人人射人人操人人摸| 夜夜草天天| 色欲av一区二区三区蜜芽| 久操| 欧美精品另类人妖xxxx| 欧美丝袜制服久久| 2024黄色视频| 老鸭窝在线视频播放| 青青草白白色| 91在线|亚| 亚洲天堂99| 一区二区三区成人高清视频| 操逼操2| 久久香蕉国产线看观看亚洲女人 | 亚洲日韩av一区二区三区百合| 亚洲色图欧美视频| 国产精品久久久久久久AV大片| 久久春色| 国产免费内射视频| 国产超碰欧美| 欧美日韩人妻少妇 一区二区三区| AV天天综合| 亚洲少妇喷视频看| 天天躁日日躁AAA片李宗瑞| 十八禁av无码免费网站APP| 人人摸人人入| 97色在线视频| 久操国产在线| 久久亚洲一区女同性恋中文字幕| 欧美色图人妻| 97超碰在线资源网站| 69人妻精品丰满熟女区| 九九九九九九亚洲| 午夜男人天堂| 91精品电影18| 综合色图亚洲欧美| 婷婷五月天激情网| www99热| 亚洲人人操| 丁香激情网| 久久久九97| 久久久久久久一级黄色打同平台| 婷婷五月天成人| 精品久久99| 一二三区在线| 一二三四日本视频高清| 天天添天天干电影| 久久久精品国产亚洲伊人| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 91香蕉国产尤物视频| 黑人综合网| 中国一级αV| 久久精品一区二区一8| av网站在线看| 亚洲欧洲中文日韩女优乱码| 欧美区亚洲区偷拍区| 国产隔壁老王影院在线| 95自拍视频在线观看| 黄页网站免费高清在线观看| 免费簧片在线观看| 留下AⅤ黄色片| 久热91| 久久久久久中文字幕中文字幕最新| 美女啊啊啊啊啊啊啊| 亚洲棕合电彰| 久9久精品视频|