免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

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

方法調(diào)用結(jié)構(gòu)樣本:AI生成代碼不跑偏的關(guān)鍵

方法調(diào)用結(jié)構(gòu)樣本:AI生成代碼不跑偏的關(guān)鍵 先說一個(gè)我踩過的坑。幾個(gè)月前我用人工智能編程工具寫一個(gè)待辦任務(wù)模塊需求描述寫得很清楚創(chuàng)建待辦、列表查詢、標(biāo)記完成、刪除。生成出來的代碼單看每個(gè)方法都沒問題真跑起來卻發(fā)現(xiàn)一堆結(jié)構(gòu)性問題——Controller里塞了狀態(tài)判斷Service直接寫SQLRepository上方憑空多出一個(gè)“查詢所有任務(wù)后在內(nèi)存里排序”的邏輯。后來我換了輸入方式先給AI一份方法調(diào)用結(jié)構(gòu)樣本再讓它按樣本生成。代碼質(zhì)量立刻提升了一個(gè)檔次。這件事讓我意識(shí)到一個(gè)關(guān)鍵點(diǎn)——所謂的人工智能編程真正決定產(chǎn)出上限的往往不是提示詞寫得多花哨而是你有沒有給AI提供一份清晰的方法調(diào)用結(jié)構(gòu)樣本。這篇文章就圍繞這個(gè)主題展開方法調(diào)用結(jié)構(gòu)樣本到底是什么、待辦任務(wù)場景下怎么設(shè)計(jì)、按什么姿勢(shì)喂給AI、實(shí)際踩過哪些坑。適合正在用AI寫業(yè)務(wù)代碼的開發(fā)者也適合想在團(tuán)隊(duì)里統(tǒng)一AI生成代碼風(fēng)格的讀者參考。1. 為什么AI編程離不開方法調(diào)用結(jié)構(gòu)樣本1.1 一次待辦任務(wù)代碼的“翻車現(xiàn)場”我最初用的提示詞大概是這樣的“幫我寫一個(gè)待辦任務(wù)模塊包含創(chuàng)建、列表、完成、刪除功能用Spring Boot實(shí)現(xiàn)。”需求不可謂不清楚AI也不負(fù)眾望地生成了一大堆代碼。但你把構(gòu)造函數(shù)一拉開問題全出來了Controller里的createTodo方法寫了完整的參數(shù)校驗(yàn)和狀態(tài)判斷業(yè)務(wù)規(guī)則盤踞在HTTP層ApplicationService里沒有業(yè)務(wù)編排反而出現(xiàn)了JdbcTemplate直接寫SQLRepository層被繞開部分查詢邏輯散落在Service和Controller里標(biāo)記完成時(shí)直接setStatus(COMPLETED)沒有校驗(yàn)當(dāng)前狀態(tài)是否允許流轉(zhuǎn)。單看每個(gè)方法語法都沒問題但組合在一起就是典型的“能跑但沒法維護(hù)”的結(jié)構(gòu)災(zāi)難。我當(dāng)時(shí)的第一反應(yīng)是“AI不行”但冷靜下來復(fù)盤發(fā)現(xiàn)問題出在我自己身上——我沒告訴AI這個(gè)項(xiàng)目的方法調(diào)用結(jié)構(gòu)是怎么組織的。1.2 AI編程工具的真實(shí)工作方式它是模式補(bǔ)全器不是架構(gòu)師市面上主流的AI編程工具本質(zhì)上是基于海量代碼訓(xùn)練出來的模式補(bǔ)全器。你給它一個(gè)指令它根據(jù)訓(xùn)練數(shù)據(jù)里的統(tǒng)計(jì)規(guī)律預(yù)測“最有可能的下一段代碼是什么”。注意是最有可能不是最正確更不是最符合你項(xiàng)目架構(gòu)。這意味著什么AI對(duì)“正確結(jié)構(gòu)”的理解來自它見過的通用代碼而不是你項(xiàng)目的特定約定。你的項(xiàng)目是Controller → ApplicationService → DomainService → Repository的四層結(jié)構(gòu)AI腦子里卻是五花八門的Controller直接操作DAO、Service既是事務(wù)邊界又是業(yè)務(wù)邏輯集合的混亂模式。所以它生成的代碼“看起來像那么回事”但細(xì)節(jié)全是結(jié)構(gòu)硬傷。方法調(diào)用結(jié)構(gòu)樣本就是用來解決這個(gè)上下文缺失問題的。你提前把“這個(gè)項(xiàng)目里方法之間應(yīng)該怎么調(diào)用、每層該干什么、不該干什么”寫清楚AI才有依據(jù)生成符合架構(gòu)的代碼。沒有樣本AI在猜有了樣本AI在按圖施工。1.3 待辦任務(wù)最適合當(dāng)樣本的業(yè)務(wù)場景有人可能會(huì)問為什么要拿待辦任務(wù)做樣本因?yàn)樗堑湫偷摹奥槿鸽m小五臟俱全”的業(yè)務(wù)場景。待辦任務(wù)的功能不多但覆蓋了完整的后端調(diào)用鏈路創(chuàng)建涉及參數(shù)校驗(yàn)和持久化列表涉及過濾排序分頁標(biāo)記完成涉及狀態(tài)機(jī)和權(quán)限校驗(yàn)刪除涉及存在性檢查和級(jí)聯(lián)約束。這四個(gè)操作放在一起基本把Controller、ApplicationService、DomainService、Repository四層能遇到的問題全暴露了一遍。更關(guān)鍵的是待辦任務(wù)的業(yè)務(wù)規(guī)則足夠簡單容易把“調(diào)用鏈本身”和“復(fù)雜業(yè)務(wù)”剝離開讓讀者看清楚結(jié)構(gòu)長什么樣。你拿一個(gè)訂單系統(tǒng)當(dāng)樣本光狀態(tài)機(jī)就夠?qū)懸黄L文反而沖淡了方法調(diào)用結(jié)構(gòu)這個(gè)主題。所以待辦任務(wù)是我推薦的首選樣本場景學(xué)會(huì)了這里的調(diào)用關(guān)系換到訂單、庫存、任務(wù)流思路完全一致。2. 待辦任務(wù)調(diào)用鏈的骨架設(shè)計(jì)先定邊界再寫代碼2.1 一個(gè)用例對(duì)應(yīng)一個(gè)方法而不是按CRUD劃分設(shè)計(jì)方法調(diào)用結(jié)構(gòu)樣本的第一步不是打開IDE寫代碼而是先把用例邊界劃清楚。待辦任務(wù)的標(biāo)準(zhǔn)用例至少有五個(gè)創(chuàng)建待辦、查詢待辦列表、查詢待辦詳情、標(biāo)記待辦完成、刪除待辦。這里最常見的錯(cuò)誤是“按CRUD劃分方法”。很多AI生成代碼時(shí)天然喜歡把“創(chuàng)建”對(duì)應(yīng)insert“列表”對(duì)應(yīng)select“刪除”對(duì)應(yīng)delete一套數(shù)據(jù)操作四板斧。結(jié)果是標(biāo)記完成這種典型的“狀態(tài)變更用例”被硬生生拆成了“先把記錄查出來再改個(gè)狀態(tài)字段再存回去”的散裝代碼。按用例劃分的意思是讓ApplicationService的每個(gè)方法完整表達(dá)一個(gè)業(yè)務(wù)用戶故事。createTodo就是“創(chuàng)建一個(gè)待辦”從校驗(yàn)參數(shù)到落庫到返回VO一氣呵成。completeTodo就是“把一個(gè)待辦標(biāo)記完成”從查存在性到校驗(yàn)狀態(tài)到變更到落庫同樣一氣呵成。一個(gè)方法對(duì)應(yīng)一個(gè)完整用例調(diào)用鏈清晰AI也好模仿人也好review。2.2 調(diào)用鏈四層職責(zé)拆分待辦任務(wù)的方法調(diào)用結(jié)構(gòu)我用四層來定義這也是我在團(tuán)隊(duì)里推薦的標(biāo)準(zhǔn)形態(tài)層職責(zé)允許做的事禁止做的事ControllerHTTP入口適配參數(shù)解析、調(diào)用ApplicationService、返回VO寫業(yè)務(wù)判斷、直接操作實(shí)體、訪問RepositoryApplicationService用例編排調(diào)度DomainService和Repository開啟事務(wù)寫SQL、拼業(yè)務(wù)規(guī)則、直接操作實(shí)體內(nèi)部狀態(tài)DomainService領(lǐng)域規(guī)則校驗(yàn)狀態(tài)流轉(zhuǎn)校驗(yàn)、權(quán)限校驗(yàn)、業(yè)務(wù)不變量校驗(yàn)做持久化、編排多個(gè)用例、返回值里塞DTORepository持久化適配保存、查詢、刪除、分頁過濾寫業(yè)務(wù)規(guī)則、返回組裝好的VO這套劃分不是銀彈但勝在簡單可執(zhí)行AI照著樣本不容易跑偏。核心思想是每一層只做一件事層與層之間單向依賴不允許往回調(diào)用。拿DomainService舉例它很容易和ApplicationService混淆。我的判據(jù)很簡單ApplicationService管的是“這個(gè)用例要經(jīng)過哪些步驟”DomainService管的是“這個(gè)領(lǐng)域規(guī)則允不允許”。前者是流程編排者后者是規(guī)則裁判員。裁判員只做判斷不做操作所以DomainService的方法最好返回void校驗(yàn)不過就拋異常校驗(yàn)通過就靜靜返回。2.3 方法命名、返回值和異常的硬性約定骨架設(shè)計(jì)里最容易被忽略但恰恰是AI最需要明確指示的三件事方法怎么命名、返回值給什么、異常怎么拋。方法命名我要求“動(dòng)詞開頭、表達(dá)業(yè)務(wù)意圖”。創(chuàng)建待辦就叫createTodo不叫insertTodo標(biāo)記完成就叫completeTodo不叫updateStatus。命名是調(diào)用鏈的第一層語言命名爛了整個(gè)結(jié)構(gòu)就開始松動(dòng)。AI在這方面的能力比人更差因?yàn)樗鼉A向從數(shù)據(jù)視角命名你必須在樣本里替它立好規(guī)矩。返回值方面我的約定是“永不出實(shí)體一律出VO”。Controller返回給前端的必須是TodoVO不直接返回Todo實(shí)體。貧血模型還是充血模型之爭先放一邊至少對(duì)外輸出要保持穩(wěn)定。如果讓AI放飛自我它會(huì)在三個(gè)不同的方法里分別返回實(shí)體、DTO、Mapreview到懷疑人生。異常處理更是一個(gè)坑。我要求領(lǐng)域規(guī)則校驗(yàn)統(tǒng)一拋InvalidTodoException、狀態(tài)沖突拋TodoStateConflictException、未授權(quán)拋TodoPermissionException由全局異常處理器統(tǒng)一映射成HTTP狀態(tài)碼。一切為了不讓AI在Controller里寫try-catch。3. 一份可以直接復(fù)用的方法調(diào)用結(jié)構(gòu)樣本3.1 創(chuàng)建待辦任務(wù)的調(diào)用鏈樣本這部分我把實(shí)際在項(xiàng)目里用的樣本貼出來代碼用Java演示換成TypeScript或Golang只是語法差異調(diào)用結(jié)構(gòu)完全一樣。同時(shí)也是這段內(nèi)容的核心——先看完整調(diào)用鏈再怎么拆// #SAMPLE:CREATE_TODO // // 調(diào)用鏈TodoController.createTodo // → TodoApplicationService.createTodo // → TodoDomainService.validateNewTodo // → TodoRepository.save // 約束 // - Controller 只做 HTTP 參數(shù)解析不寫業(yè)務(wù)判斷 // - ApplicationService 內(nèi)部不出現(xiàn) if 和校驗(yàn)邏輯 // - 領(lǐng)域校驗(yàn)統(tǒng)一放 DomainService // RestController RequestMapping(/api/v1/todos) public class TodoController { private final TodoApplicationService todoApplicationService; public TodoController(TodoApplicationService todoApplicationService) { this.todoApplicationService todoApplicationService; } PostMapping public ResponseEntityTodoVO createTodo(RequestBody TodoCreateRequest request) { TodoCreateCommand command request.toCommand(CurrentUser.id()); TodoVO vo todoApplicationService.createTodo(command); return ResponseEntity.ok(vo); } }Service public class TodoApplicationService { private final TodoDomainService todoDomainService; private final TodoRepository todoRepository; public TodoApplicationService(TodoDomainService todoDomainService, TodoRepository todoRepository) { this.todoDomainService todoDomainService; this.todoRepository todoRepository; } Transactional public TodoVO createTodo(TodoCreateCommand cmd) { Todo todo cmd.toEntity(); todoDomainService.validateNewTodo(todo); todoRepository.save(todo); return TodoVO.from(todo); } }Component public class TodoDomainService { private static final int MAX_TITLE_LENGTH 50; public void validateNewTodo(Todo todo) { if (todo.getTitle() null || todo.getTitle().trim().isEmpty()) { throw new InvalidTodoException(待辦標(biāo)題不能為空); } if (todo.getTitle().length() MAX_TITLE_LENGTH) { throw new InvalidTodoException(標(biāo)題長度不能超過50個(gè)字符); } if (todo.getDeadline() ! null todo.getDeadline().isBefore(LocalDateTime.now())) { throw new InvalidTodoException(截止時(shí)間不能早于當(dāng)前時(shí)間); } } }public interface TodoRepository { void save(Todo todo); OptionalTodo findById(Long id); ListTodo findByUserId(Long userId, Pageable pageable); ListTodo findByUserIdAndStatus(Long userId, TodoStatus status, Pageable pageable); void delete(Todo todo); }這段樣本覆蓋了完整鏈路。留意幾個(gè)細(xì)節(jié)Controller連命令對(duì)象都不自己組裝而是讓Request的toCommand方法完成ApplicationService里沒有任何if校驗(yàn)完全委托給DomainServiceRepository接口在樣本里一并寫好為的是堵住AI“發(fā)明新方法”的嘴。3.2 標(biāo)記完成與刪除的調(diào)用鏈樣本創(chuàng)建是新增相對(duì)簡單。標(biāo)記完成是狀態(tài)變更調(diào)用鏈要復(fù)雜一截因?yàn)樗嗔艘粋€(gè)“先查后改”的過程// #SAMPLE:COMPLETE_TODO // 調(diào)用鏈TodoController.completeTodo // → TodoApplicationService.completeTodo // → TodoRepository.findById先查存在性 // → TodoDomainService.validateCompletion再校驗(yàn)規(guī)則 // → todo.markCompleted()執(zhí)行狀態(tài)變更 // → TodoRepository.save最后落庫 PatchMapping(/{id}/complete) public ResponseEntityTodoVO completeTodo(PathVariable Long id, RequestBody TodoCompleteRequest request) { TodoCompleteCommand command new TodoCompleteCommand( id, CurrentUser.id(), request.getCompletedAt()); TodoVO vo todoApplicationService.completeTodo(command); return ResponseEntity.ok(vo); }Transactional public TodoVO completeTodo(TodoCompleteCommand cmd) { Todo todo todoRepository.findById(cmd.getTodoId()) .orElseThrow(() - new TodoNotFoundException(cmd.getTodoId())); todoDomainService.validateCompletion(todo, cmd.getUserId()); todo.markCompleted(cmd.getCompletedAt()); todoRepository.save(todo); return TodoVO.from(todo); }public void validateCompletion(Todo todo, Long userId) { if (!todo.belongsTo(userId)) { throw new TodoPermissionException(無權(quán)操作他人的待辦任務(wù)); } if (todo.getStatus() TodoStatus.COMPLETED) { throw new TodoStateConflictException(該待辦已完成不能重復(fù)操作); } if (todo.getStatus() TodoStatus.CANCELLED) { throw new TodoStateConflictException(已取消的待辦不能標(biāo)記完成); } }刪除操作的調(diào)用鏈和完成操作很接近deleteTodo同樣先findById查存在性再做歸屬和狀態(tài)校驗(yàn)最后調(diào)TodoRepository.delete(todo)。沒必要整段貼出來但要注意刪除也要走“先查后刪”不能讓AI直接寫deleteById(id)了事否則把別人的待辦刪了都沒人知道。3.3 列表查詢鏈路與狀態(tài)流轉(zhuǎn)約束查詢鏈路和寫入鏈路不一樣寫入是“實(shí)例方法調(diào)用序列”查詢更接近“參數(shù)傳遞鏈”。但同樣有結(jié)構(gòu)約束// #SAMPLE:LIST_TODOS // 查詢鏈路TodoController.listTodos // → TodoApplicationService.listTodos // → TodoRepository.findByUserIdAndStatus // → 組裝 TodoVO // 約束排序、分頁、過濾全部在 Repository 完成 // 禁止把全量數(shù)據(jù)拉到內(nèi)存再過濾 GetMapping public ResponseEntityPageResultTodoVO listTodos( RequestParam(required false) TodoStatus status, RequestParam(defaultValue 0) int page, RequestParam(defaultValue 20) int size) { PageResultTodoVO result todoApplicationService.listTodos( CurrentUser.id(), status, page, size); return ResponseEntity.ok(result); }public PageResultTodoVO listTodos(Long userId, TodoStatus status, int page, int size) { Pageable pageable PageRequest.of(page, size, Sort.by(Sort.Direction.DESC, createdAt)); ListTodo todos; if (status null) { todos todoRepository.findByUserId(userId, pageable); } else { todos todoRepository.findByUserIdAndStatus(userId, status, pageable); } return PageResult.from(todos.stream().map(TodoVO::from).toList()); }查詢鏈路樣本里最重要的一條約束是“不要在內(nèi)存里過濾和排序”。AI特別容易在Repository沒有提供對(duì)應(yīng)方法時(shí)直接findByUserId拿到全量列表再在Service里用Stream做過濾排序。數(shù)據(jù)量小的時(shí)候沒問題一旦單用戶待辦破千這種寫法就是性能事故。所以樣本里必須寫死過濾排序分頁是Repository的職責(zé)。狀態(tài)流轉(zhuǎn)約束是待辦任務(wù)里最容易丟的一環(huán)。我把這張狀態(tài)機(jī)表也放進(jìn)樣本當(dāng)前狀態(tài)允許到達(dá)狀態(tài)觸發(fā)操作NEWIN_PROGRESS開始任務(wù)NEWCOMPLETED直接完成NEWCANCELLED取消任務(wù)IN_PROGRESSCOMPLETED標(biāo)記完成IN_PROGRESSCANCELLED取消任務(wù)COMPLETED無終態(tài)CANCELLED無終態(tài)4. 把樣本正確喂給AI的三種姿勢(shì)4.1 對(duì)話式AI樣本前置 明確指令很多人用對(duì)話式AI編程的習(xí)慣是直接說需求這其實(shí)是把AI當(dāng)成了“懂項(xiàng)目背景的老同事”。正確姿勢(shì)是把需求描述和項(xiàng)目約定分開先給項(xiàng)目約定再給需求。我實(shí)際用的提示詞結(jié)構(gòu)是這樣的你是一位熟悉分層架構(gòu)的Java工程師。項(xiàng)目使用 Controller → ApplicationService → DomainService → Repository 四層結(jié)構(gòu)方法調(diào)用約束如下 [此處粘貼上文的方法調(diào)用結(jié)構(gòu)樣本包括三個(gè)樣本代碼反例約定] 請(qǐng)按照以上調(diào)用鏈結(jié)構(gòu)實(shí)現(xiàn)“編輯待辦標(biāo)題”功能。 編輯規(guī)則標(biāo)題不能為空長度不超過50字符只能編輯自己的待辦。注意順序樣本在前需求在后。這份提示詞還有一個(gè)隱藏作用——當(dāng)需求描述和樣本矛盾時(shí)AI會(huì)優(yōu)先遵守約束更強(qiáng)的指令而不是放飛想象力。4.2 IDE輔助編程樣本目錄與符號(hào)標(biāo)記在Cursor、Copilot這類IDE工具里把全部樣本堆在提示詞里不現(xiàn)實(shí)更推薦的方式是把樣本做成項(xiàng)目里的“可檢索文檔”。我在項(xiàng)目根目錄維護(hù)了一個(gè)docs/ai-patterns/目錄里面放method-call-patterns.md核心代碼塊統(tǒng)一用#SAMPLE:CREATE_TODO、#SAMPLE:COMPLETE_TODO這類大寫標(biāo)簽開頭。這樣做有兩個(gè)好處。第一編輯器里的AI補(bǔ)全能通過注釋感知項(xiàng)目約定你在寫createTodo時(shí)它會(huì)從歷史代碼和樣本注釋里領(lǐng)悟調(diào)用風(fēng)格。第二用Cursor的對(duì)話功能時(shí)可以直接這個(gè)文件告訴AI“先讀這個(gè)文件再干活”。4.3 輸入輸出對(duì)和反例標(biāo)注只給“正向樣本”還不夠AI會(huì)把正向樣本當(dāng)成“參考風(fēng)格”但它并不知道哪些做法是紅線。所以我的樣本文件里專門有一節(jié)叫“反例約定”明文禁止四種寫法// 反例約定以下代碼模式禁止出現(xiàn)在本項(xiàng)目中 // 1. Controller 里出現(xiàn) if 判斷業(yè)務(wù)狀態(tài) // 2. ApplicationService 里出現(xiàn) SQL/JdbcTemplate // 3. Service 之間互相調(diào)用內(nèi)部方法繞過 ApplicationService // 4. Repository 返回 List 后在 Service 內(nèi)存中做過濾/排序/分頁經(jīng)驗(yàn)是AI對(duì)“禁止做什么”的遵守度遠(yuǎn)高于“應(yīng)該做什么”。人也一樣給一個(gè)明確禁止清單比對(duì)著一堆代碼猜隱含規(guī)則要高效得多。4.4 樣本也要納入版本管理樣本文件不是一次性產(chǎn)物它必須跟著項(xiàng)目架構(gòu)演進(jìn)。我見過最典型的場景是項(xiàng)目把Repository從MyBatis換成了Spring Data JPA但樣本文件沒更新AI繼續(xù)按老接口生成代碼編譯都過不了。所以凡是涉及調(diào)用鏈調(diào)整的PR都要同步改method-call-patterns.md。這和我把樣本當(dāng)“團(tuán)隊(duì)編碼憲法”的理念是一致的——它是活的約定不是存檔的筆記。我在提交記錄里甚至?xí)憽癲oc: 更新方法調(diào)用結(jié)構(gòu)樣本新增軟刪除鏈路”讓整個(gè)團(tuán)隊(duì)都能追溯架構(gòu)約定的變化。5. AI按樣本生成代碼時(shí)的典型偏差與修正5.1 偏差一方法拆分粒度不對(duì)即使給了樣本AI還是會(huì)在細(xì)節(jié)上跑偏。最常見的是方法拆分粒度問題要么把ApplicationService的多個(gè)用例塞進(jìn)一個(gè)方法要么把一個(gè)用例拆得支離破碎比如把校驗(yàn)寫成一個(gè)私有方法、把VO轉(zhuǎn)換寫成另一個(gè)私有方法、真正的業(yè)務(wù)邏輯只剩兩三行。識(shí)別方法很清楚看方法體里是不是超過30行、方法參數(shù)是不是超過4個(gè)、方法命名是不是變成了processTodoData之類。修正方法也很簡單讓AI“分步驟生成不要一次性輸出完整文件”。我通常讓它先輸出ApplicationService方法骨架再補(bǔ)DomainService校驗(yàn)規(guī)則最后寫Repository方法每步之間人工看一眼。5.2 偏差二AI自己“發(fā)明”Repository方法這是最隱蔽的一個(gè)坑。AI需要“按標(biāo)題模糊搜索待辦”時(shí)如果樣本里沒有findByTitleContaining它會(huì)很自然地在Repository接口里新增這個(gè)方法而不是復(fù)用已有的findByUserId。如果項(xiàng)目用的是JPAAI甚至?xí)l(fā)明一個(gè)映射關(guān)系完全不存在的查詢方法編譯期才發(fā)現(xiàn)錯(cuò)誤。更嚴(yán)重的是它會(huì)引入findAll()然后把過濾邏輯寫在Service里。剛才說了這是查詢鏈路的紅線。我的處理方式是樣本里加一句硬約束“Repository接口方法以樣本為準(zhǔn)AI不得新增必須新增時(shí)先詢問用戶?!边@句話看著簡單實(shí)戰(zhàn)里能省下大半review時(shí)間。5.3 偏差三事務(wù)邊界跑偏事務(wù)是AI最理解不了的機(jī)制之一。它經(jīng)常把Transactional加到DomainService上或者加到ApplicationService里一個(gè)被同類的其他方法調(diào)用的私有方法上事務(wù)直接失效。我吃過一次大虧讓AI生成“批量完成待辦”功能時(shí)AI在TodoApplicationService.batchComplete里調(diào)用了completeTodo方法但因?yàn)閮蓚€(gè)方法都在同一個(gè)類里completeTodo被同類內(nèi)部調(diào)用時(shí)繞過了代理對(duì)象事務(wù)注解根本沒生效。數(shù)據(jù)寫了一半。所以樣本里我固定了一條鐵律事務(wù)只標(biāo)注在ApplicationService的公開用例方法上DomainService和Repository一律不標(biāo)注。內(nèi)部方法調(diào)用一律通過注入的獨(dú)立Bean進(jìn)行。5.4 偏差四繞過領(lǐng)域方法直接改狀態(tài)這個(gè)偏差最隱蔽也最致命。AI生成了todo.setStatus(TodoStatus.COMPLETED)就直接落庫了完全跳過了todo.markCompleted()里的狀態(tài)機(jī)校驗(yàn)邏輯。結(jié)果就是一個(gè)CANCELLED狀態(tài)的任務(wù)可以被直接標(biāo)記成COMPLETED業(yè)務(wù)上毫無意義還污染數(shù)據(jù)。我會(huì)在樣本的實(shí)體示例代碼里明確寫出實(shí)體的內(nèi)部狀態(tài)變更方法public void markCompleted(LocalDateTime completedAt) { // 狀態(tài)流轉(zhuǎn)只在這里做 if (this.status ! TodoStatus.NEW this.status ! TodoStatus.IN_PROGRESS) { throw new TodoStateConflictException(當(dāng)前狀態(tài)不能標(biāo)記完成); } this.status TodoStatus.COMPLETED; this.completedAt completedAt; }配合“Repository保存的必須是狀態(tài)變更完成后的實(shí)體”這條約定AI基本不會(huì)再來硬改實(shí)體內(nèi)部字段。5.5 實(shí)測下來最有效的修正口訣經(jīng)過一段時(shí)間磨合我形成了一套最有效的修正檢查每次AI生成完代碼我都會(huì)跑一遍快速掃描搜索setStatus和setTitle這種直接setter確認(rèn)沒有繞過實(shí)體方法搜索new JdbcTemplate和jdbcTemplate確認(rèn)Service層沒寫SQL數(shù)一數(shù)Controller里有沒有if關(guān)鍵字有就多半是業(yè)務(wù)邏輯泄漏確認(rèn)所有Transactional都在ApplicationService的方法上??谠E就四句先查后改校驗(yàn)在前倉儲(chǔ)接口不新增事務(wù)只寫在用例方法上。這十六個(gè)字基本上把AI在方法調(diào)用結(jié)構(gòu)上90%的偏差都堵住了。最后再分享一個(gè)我個(gè)人的使用習(xí)慣在項(xiàng)目的README里加一行鏈接指向docs/ai-patterns/method-call-patterns.md讓任何新加入項(xiàng)目的人以及任何AI編程工具都第一眼能看到這份樣本。每當(dāng)架構(gòu)有變動(dòng)先改樣本再讓AI生成代碼。這個(gè)順序一旦固定下來AI生成代碼的返工率會(huì)肉眼可見地下降。希望這篇關(guān)于方法調(diào)用結(jié)構(gòu)樣本的拆解能讓你在下次用AI寫待辦任務(wù)或者任何類似業(yè)務(wù)模塊時(shí)少踩幾個(gè)我已經(jīng)替你踩過的坑。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
超级碰碰91| 婷婷五月综合网激情| 三人荫蒂添的好舒服A片| 精国产品一区二区三区A片| 91男同视频| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 99精品久久久久久久| 久久久久98| 99视频内射三四| wwxx日本| 狠狠情色| 伊人五月人妻精品| 99爱免费视频| 婷婷六月久久综合导航| 黄色av网站在线免费播放| 丁香香蕉婷婷| 99久久99九九九99九他书对| 大伊久久| 99综合视频一体| 少妇人妻丰满做爰XXX| 最新婷婷五月丁香| 操操操操操操婷婷五月天| 97久久香草精品视频| 这里只有精品免费观看网占| 啊V视频在线观看| 国产精品第一国产精品| 91人人澡人人爽人人看| 婷婷九月激情网| 色五月激情| 国产无套精品一区二区| 色色A| 99re欧美精品| 久久中文人妻系列| 五月精品| 天堂在线伊久| 五月天色婷婷激情综合| 开心婷婷中文字幕| 亚洲无码色| 国产成人亚洲综合亚洲| 丁香桃色综合网| 涩婷婷五月天在线精品视频| 超pen个人视频97| 99碰碰中文| 亚洲日韩国产黑丝黑丝AVAV一区二区三区 | 九九在线免费观看| 成人在线日韩| 久久新地此| 久久综合伊人综合在线| 日韩视频99| 啪啪五月婷婷| 2025天天爽天天摸| 婷婷在线精品| 九九99在线| 狠狠色婷婷7| 亚洲综合五月天| AA片在线观看视频在线播放| 丁香六月婷婷久久综合| 婷婷成人AV| 成人看片网站| 亚洲无码播放| 91色噜噜狠狠狠狠色综合| 成人av在线网| 色婷婷激情小说网| 天天干夜夜谢| 五月天开心色情网| 丁香 亚洲 久久| 亚洲亚洲人成综合网络| 桔色成人官方网站| 天天做天天爱| 亚洲成人在线播放| 日熟女| 99热草草| 亚洲久热无码| 青青草婷婷五月天| 2020夜夜操天天爽| av五月天婷婷丁香| 久久这里只有国产视频| www久久久| 噜噜操操| 2017人人操| 99九九精品视频推荐| www.五月天婷婷.com| 99精品一二三四视频| 久在线综合69| 婷婷五月天开心激情网| 青青久久五月天丁香婷婷| peg 2区三区四区的| A1片久久久| 日本偷拍九九九| 亚洲婷婷婷| 99视频精品| 婷婷娌伦网| 我爱婷婷五月天综合88| 国产麻豆视频| 亚州性爱99| 熟女少妇内射日韩亚洲| 色综合天天网| 久久久久久五月天| 开心激情五月天网| 狠狠色丁香| 激情AV| 婷婷大乡焦噜噜| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 日本久久网| 黄色激情久久| 亚洲天堂99| 国产日韩av片| 久久久激情| 五月婷婷色综图片| 色丁香五月婷婷| 婷婷丁香五月天色色| 五月激激网w'w'w| 久热免费视频| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 2025年最新亚洲在线欧美| 午夜69成人做爰视频| 天天日夜夜B久久| 99∨VTV| 这里只有精品视频视频在线观看| 大香网伊人久久综合| 中文字幕在线日亚州9| 久草性爱| 看黄的网站18禁| 九九在线视频| 久热这里只有精品99re,久热这里只有精品7| 亚洲精品一区中文字幕乱码| 丁香五月在线观看完整版| 天久综合91综合首页| 国产精品蜜臀99| 国外亚洲成AV人片在线观看| 婷婷丁香色情| 黄久久久| 天天日天天摸| 丁香五月天啪啪激情综合网| 亚洲9久久精品| 亚洲夜夜操| 久草婷婷视频| 欧美丁香五月97色| jiujiu无码五区| 国产99久久久国产精品免费看| 99爱欧美| 色亭亭九月| 婷婷深爱五月丁香| 97色片| 久久99热这里只有精品| 久久九九99字幕| 男女啪啪视频久 9| 久久欧洲综合网| 亚洲精品又粗又大又爽A片 | 五月天激情电影| 婷婷久久婷婷| 99热都是精品| 韩国婷婷丁香五月| 婷婷五月天中文字幕| 久久网日本| 九九精品视频免费在线| 婷婷丁香成人色综合| 欧美色色色| 超爽内射| 色婷婷五月天在线观看| 五月丁香久久久日婷婷久久婷婷日| 欧美A级成人婬片免费看理论| 开心婷婷五月天激情网| 99人妻碰碰碰久久久久禁片| 婷婷五月色播天| 超碰在线观看9| 五月婷婷九| 激情文学久久| 亲子乱AV-区二区三区| 久久激情天堂| 99色色最新视频| 九九热99精品| 无码色色色| Av狠狠色丁香婷| 久久五月丁香综合| 国产亚洲99久久精品| 天天日天天添| 日韩AV在线电影| 亭亭五月天成人| 女同激情久久av久久| 欧美精品999| 五月综合精品| 久99视频在线观看| 99热综合网| 色亚洲色宗合| 婷婷午夜精品久久久| 色色综合网站| 狠狠做婷婷| 久久9视频欧美| 人妻丰满精品一区二区A片| 四月婷婷丁香五月| 开心五月婷婷五月| 久久丁香婷婷五月| 欧州婷婷五月天综合| 色色日本| 99久久综合网| 婷婷五月丁香香蕉| 色综合77777| AV在线观看网站| 九九热区一区二区三区| 五月婷色| 欧美性久| 99视频在线观看地址| 14色综合婷婷| 狠狠五月丁香色婷| 99热最新网址| 欧洲S级在线观看| 色天堂婷婷| 99在线观看视频| 亚洲狠狠狠| 婷婷久久大香蕉| 久久丁香婷婷色情综合| 亚洲无码色色| 色婷婷88| 天天综合网在线| wwccc久久久| 综合久久久| 综合天堂AV久久久久久久| 97碰| 九九热最新| 开心五月婷婷99| 色色婷| www.91在线看| 亚州第一黄网| 久久五月婷6 9| 婷婷丁香久久| 另类精品视频在线观看| 99热国产免费| 色欲五月天| 色综合久久天天综合网| 丁香六月婷| 97超级碰| 婷婷五月丁香基| 六月天婷婷| 精品99在线| 色婷婷丁香五月天| 日本在线噜噜| 色青青视频| 五月丁香久久网| 亚洲操精品| 新男人天堂人妻| 丁香香蕉射射射| 丁香五月性| 婷婷瑟瑟五月天| 五月丁六月香av| 狠狠五月激情在线| 美女天天艹人人爽| 综合久久婷婷五月丁香| 色碰碰| 精品99在线观看| 久久国产成人9999久久久久| 一二线视频 另类| 激情综合一| 久热 91| 丁香婷婷色色| 人妻精品在线| 五月丁香婷婷在线| 久久婷色| 五月天色区| www.yw尤物| 99热在线观看精品| 五月天婷婷av| 99热这里只有精品2| 成人国产综合| 色婷婷88| 夜夜爽天天干| 天天色综网| 91九色国产| 色色色婷婷五月| 91肏| 九热视频| 人妻久久久| 五月色网| 久久婷婷精品| 成人做爰A片免费看视频 | CAoub青青超碰| 综合 蜜月 婷婷| 丁香婷婷婷婷十二月在线观看视频| 蜜乳AV成人| 婷婷婷婷婷婷婷婷婷婷丁香| 久久综合五月天| 色婷婷综合网站| 五月天激情小说| 91久久久久久| 婷婷色影音天| 日韩成人电泉AV| 99视频在线观看视频| av在线免费网站 | 五月丁香综合激情| 99热这里有精品| 欧美成人精品A片免费一区99| www.色婷婷| 思思热视频| 99热精品免费| 亚洲无AV在线中文字幕| 91九九九色在| 五月天激情网址| 色狠狠色综合久久久绯色AⅤ影视| 日本操B片| 99色.com| 亚洲超碰在线| 襙逼网| 亚洲婷婷月丁香五月| 亚洲日韩26uuu| 一本综合丁香日日狠狠色| 天天色天天爱天天爱天天爱y| 99精品综合| 婷婷情色五月天| 9热视频在线观看| 日韩狠狠色| 五月丁香六月婷婷网| 久久人妻视频| 欧美69色| 色色婷婷婷丁香五月天| 天天日天天舔天天摸| 99热这里只有精品10| 色综合久久88色综合中文字幕| 拳交大逼| 91欧美| 夫妇交换刺激做爰| 99爱在线| 99视频在线| 国产精品-第3页-91JQ就要激情网91JQ5.JQJQ926.XYZ | 婷婷WWW久久| 五月 成人 婷婷| 国庆精品久久| 色色色色色色网站| 超碰AV在线| 99婷婷综合| 任你日视频| 欧美激情xxxXX| 99热在线精品观看| 日日夜夜干| 在线成人国产| 乱女乱妇熟女熟妇综合网站| 色欲色香综合网| 久久激情网| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 任你日视频| 激情五月天无码| 激情综合激情综合| 亚洲乱码日产精品BD| 无码人妻少妇色欲AV一区二区| 色黄啪啪| 婷婷丁香五月天综合网| 色丁香五月| 粉嫩AV久久一区二区三区| 久久日本wwww色| 丁香色六月婷婷| 九九九九九九九热| 色五月婷婷丁香五月| 99爱操| 久久婷婷影院| 欧美亚洲婷婷五月| 天天天天干| 日本久久极品| 激情合网婷婷| www.久久| 婷婷五月天你懂的| 久色视频首页| 操操人人| AV六月丁香| 婷婷五月天激情四射| 日日夜夜狠狠干| 97五月天| 国产精品国产| 五月丁香六月婷婷亚洲视频| 日本三级中国三级99人妇网站| 26uuu色五月| 久青青久| 五月丁香偷拍| 精品热九九| 激情文学 综合 色| WWW.五月天9999| 野战毛片三一3| 日韩啊啊啊| 99亚洲精品视频| 日日操人人操| 婷婷丁香社区| 丁香五月六月久久综合| 91精品久久久久久77777| 成人短视频免费| 3p日韩网站视频| 婷婷色网| 91超碰在线播放| 99热99热在线| 99热综合在线观看| 丁香五月激情站| 丁香婷婷影院| 91久久99久久91熟女精品| 热99在线| 丁香婷婷婷| 天天日夜夜夜操操操操| 激情六月婷婷| 婷婷五月丁香99| WWW丁香五月| 91男同| 伊人大香蕉毛片| www.色窝| 国产精品国产成人国产三级| 综合激情网五月激情| 丁香六月婷婷综合激情欧美| 久久hd| 色五月婷婷DVD| 五月婷婷激情网| 丁香五月中文字幕| 色五月激情综合网| 五月丁香香蕉| 丁香 久久| 97偷拍在线视频| 日韩欧美一级大黄网站| 无码少妇高潮喷水A片免费| 色,激情五月天| 九九热婷婷| 黄色91在线观看| 五月天婷婷亚洲| 黄色热99| 都市激情小说婷婷| 亚洲岛国电影| 久久99色色| 久久A极片| 色色色色热热| www.色婷婷.com| 人妻性爱| 无码少妇高潮喷水A片免费| 天天AV导航网| 无码成人AAAAA毛片AI换脸| 久久杏爱视频| 98国产精品综合一区二区三区| 99热20| 久久精彩免费视频| 怕怕視頻| 婷婷五月天综合网| 五月激情综合激情五月| 色色色色丁香| 99色色色色| 五月 婷 久| 天堂草在线看www| 欧美69色| 天天综合中文| 久久人人九| 五月婷婷五月| 国产精品人妻欲求不满| 激情久久五月天| 六月婷婷激情| 粉嫩AV久久一区二区三区| 日本无va视频| 色婷婷亚洲综合天堂| 婷婷六月丁香五月| 亚洲精品成人片在线播| 婷婷永久在线| 99在线免费视| 97干在线视频精品店| 婷婷日日夜夜| 91精品婷婷国产综合 | 激情网五月天| 色婷婷丁香AV综合| 99视频极品在线香蕉| dingxiangtingtingliuyue| 五月婷丁香久久综合| 五月99久久| 九九香蕉网| 久草热8精品视频在线观看| 五月天亚洲图片婷婷| JAPANRCEP老熟妇乱子伦视频 | 五月婷婷偷拍| 91啪啪视频| 激情婷婷丁香五月天| 五月婷婷啪啪| 亚洲看av的网站| 97色五月婷婷在线| 蜜臀九九九九| 婷婷六月综合基地| 久操热线| 99热精地址| 九月丁香婷婷网| 玖玖五月| 五月婷婷亚洲综合网| 超碰在线个人观看| 久久婷婷五月天| 亚洲小视频免费播放| 精品少妇人妻AV无码专区偷人| 欧美日本va| 色色激情网| 中文字幕免费高清电视剧| 香蕉AV777XXX色综合一区| 日本久久视频| 色色欧美色色色| 色婷婷日本| 亚洲激情网| 疯狂做受XXXX高潮A片| 色五月婷婷九月| 青青草性爱视频| 综合五月激情| 五月天婷婷激情在线色图| 第四色26uuu| 久久久99视频| 亚洲精品一区无码A片| 深爱激情五月网| 婷婷丁香视频在线观看免费 | 久青草大香蕉| 99色热| 五月天婷婷7米| 五月婷六月综合在线观看| www.久久久久久久久久.com| 五月花免费视频| 99热99热99热99热| 99热免费网站| 久久激情天堂| 人妻久久久久久| 五月丁香婷婷成人综合网| 丁香 婷婷 激情 综合 五月| 大胆伊人久久| 天天操中文字幕| 另类五月婷婷| 免费色婷婷| 99热在线观看免费精品| 成人超碰Av| 新久久五月天激情| 天天综合色99| 五月天综合网| 色五月在线播放| 五月婷婷综合网在线播放| 婷婷九色| 182无码| 激情婷婷六月天| 日本美女五月天| 五月天玖玖狠狠色色| 综合激情婷婷| 97久久精品视频| 色区久久| 操97| 99色视频| 亚洲色婷婷视频| 五月丁色AV| 黄色精品五月婷婷| 伊人久久丁香五月91| 99只有精品| www热久久yy9| 六月婷婷国产| 激情婷婷人妻| 色丁香五月天射婷婷爱婷婷| www.maotanji.com| 色婷婷五月丁香色| www,黄色在线,con| 欧美经典片免费观看大全| 婷婷五月视屏| 中国激情网| 五月婷婷影视| 亚洲色婷婷激情| 色噜久| 亚洲乱码日产精品BD| av久热| 丁香五月婷婷六月丁香| 色婷婷五月视频| 深爱激情av| 激情五月综亚网| 天天搡日日搡aaaaⅩ| 青青草原亚洲久| 99色热| 超碰在线观看9| 婷婷五月天亚洲图片| 情婷婷五月天在线| 26UUU欧美激情一区二区| 久久99精品久久久久久青青AR| 色综合99无码 | 天天做夜夜爽| 婷婷狠狠色| 婷婷五亚洲| 99热这里只有精品50| AV大香蕉| 五月婷婷无码| 婷婷五月小说色综合| caop在线视频| 五月刺激丁香月综合| 激情综合网激情五月婷婷| 亚洲综合99| 狠狠狠狠狠狠狠狠| 九九视频在线观看| 婷婷丁香在线| www.色五月| 亚洲成人免费在线| 欧美三级A做爰在线观看| 狠狠穞A片一區二區三區| 婷婷丁香六月天| 日本视频99| 99操无码视频观看| 男女99免费视频| 开心婷婷丁香五月| www.婷婷,com| 久久综合中文| 久久这里只有精品热在99| 久久久精品人妻| AA丁香综合激情| 久久99精品久久只有精品| 天天干 夜夜爽| 女人天堂AV| 99热精品无码| 国产毛多水多女人A片| 国产欧美性成人精品午夜| 中文字幕人妻熟女在线| 婷婷五月丁香基| 天堂va久久久噜噜噜久久Va| 色五月大| 久操婷婷| 婷婷五六日| 国产视频久色| 色婷婷色久综| 亚艹艹| 久久人妻精品| 色情五月婷婷| 色噜噜狠狠色综无码久久合欧美| 伊人九热| 色播综合| 99色在线| 国产熟妇乱子伦hd| 大香蕉丁香| 中文字幕,综合,91| 久久色五月| 淫视馆aV二区一区| 亚洲久久婷婷丁香五月天| 【乱子伦】黄色| 五月天婷婷永久免费视频| 九九这里都是精品| 东京热伊人| 色情五月丁香| 国产真人做爰视频免费| 狠狠色狠狠色综合日日91| 欧美啪啪9| 91婷婷在线| 99久热这里只有精品视频删减版| 亚洲五月婷婷在线| www.99情趣网| 激情五月五月婷婷| 99国产精品白浆在线观看免费| 亚洲99热| 九九99精品视频| 精品无码av丁香五月激情| 伍月婷丁香花全集| 欧美久久婷婷| 99在线er热| 五月丁香无码| site:feetmall.com| 先锋男人99资源| 青青草成人网| 久久精彩视频| 婷婷激情五月视频| 婷婷五月 丁香六月| 五月丁香六月婷婷玖玖| 日日做夜夜爱| 91狠狠综合久久| 亚洲色网址| 久久99热这里只频精品6学生| 国产无套精品一区二区| 五月天综合色| 九九热青草| 99视频在线9| 国产亚洲成AV人片在线观黄桃| 婷婷无码视频| 夜夜撸日日操| caopeng97人人| 九九精品综合| 九九精品在线观看视频6| 久久久GOGO无码啪啪艺术 | 亚洲久艹| 国产裸舞福利资源在线视频| 久久 视频这里只有精总| 日韩性视频| 大香伊人久色| av九九| 国产午夜精品久久久观看| 五月婷六月婷婷| 超碰人人操在线| 青青草国产亚洲精品久久| 久久九九囯产| 狠狠久久婷五月综合色| 狠狠色噜噜狠狠狠888| 色色无码| 91超碰九色| 婷婷五月天激情基地| 婷婷五月天视频亚洲| 亚洲成人av在线播放| 激情九月婷婷| 色偷偷色婷婷| 五月婷婷开心丁香| 丁香五月影院| 五月婷婷性爱视频| 色婷婷色五月色丁香| 大香蕉综合| 久久伊人婷| 色五月婷婷视频| 丁香五月欧美| 丁香五月激情啪啪综合| 婷婷在线五月天观看| 色婷婷社区| 激情内射人妻1区2区3区| 97人人操人人爽| 日本丁香五月| 国产97在线日韩亚洲女人被黑人巨大| 玖玖色综合| 丁香六月婷婷综合欧美| 人人操AV| 五月6香色婷婷视频| 婷婷五月影院| 婷婷午夜天| 99玖玖精品| 五月激情网五月综合网| 精品人妻伦一二三区久| ww久久| 色婷婷综合影院| 国产成人片| 久久综合激情| 激情五月久久| 99国产精品久久久久久久久久久 | 欧美日本高清视频99| 天天操夜夜爽| 黄色国久久| 婷婷午夜激情| 六月丁香婷婷综合狠狠爱夜夜爱| 丁香五月ⅤA久久久| 色五月成人在线| 熟女人妻一区二区三区免费看| 思思久久99热| 六月婷婷中文字幕| 色五月超碰| 久久综合首页| 99人人干人人| 九月婷婷综合网| 26uuu国产激情视频| 婷婷色五月91啪啪| 五月婷婷精品视频| yazhoujiqingav| 丁香六月视频| 96精品成人无码A片观看金桔| 26uuu国产色| 91热在线| 久久99久久99精品免视看婷婷| 色偷偷综合| 色五月婷婷激情基地| 丁香六月婷婷一区二区三区| 99久99久| www.成人婷婷综合| 国产精品涩涩涩视频网站 | 伊人色综合网| 91精品久久久久| 日韩成人综合网| 成人AV在线电影| 99热地址| 亚洲六月婷婷| 色99视频| 日本在线视频手机播放五月婷| 国产成人AV在线| 伊人久久婷婷| 欧美丁香婷婷五月| 国产黄色大片| 亚洲精品性色| 国产探花一片区| 亚洲国产99| 久久婷五月综合| 色九网| 狠狠大香婷婷爱| 爱射综合| 婷婷情色五月天| 五月婷婷之综合激情| 色色婷婷色色| 毛片色五月| 五月色亭丁香| 五月婷在线色视频| 丁香五月综合激情久久潮喷| 深爱激情五月天| 武则天精品久久| 国产亚洲99久久精品| 森林影视大全,最好看的2019年视频 | 五月丁香综合啪啪| 大香蕉婷婷| 五月天成人在线| 91刘玥视频在线观看| 日韩精品一品二区三区的使用体验| AV在线观看网站| 九九热欧美| 亚洲激情 久久| 综合久久五| 色婷婷六月| 99九九玖玖| 色综合色色| www久热com| 人妻激情视频| 天天做天天爱天天爽| 色五月婷婷少妇人妻| 超碰99热精品在线| 六月丁香综合| 婷婷丁香五月91| 激情丁香五月婷婷| 久久久久久综合五月婷婷| 色婷亚洲| 五月天激情网站| 九九色视频| 色碰碰| 风流少妇A片一区二区蜜桃| 激情 婷婷 插| 五月丁香色婷婷色| 天天爱天天做天天操| 婷婷丁香五月六月激情| 大香蕉人在线65| 99热日本| 九九精品热| wWwCom夜操wwW| 伊人狼人干| 久久人人妻| 午夜九九九九九九九九九九九九九| 另类天堂| 婷婷六月激情综合| 久久婷婷网站| 五月丁香综合精品欧美| 五月天婷婷伊人| 五月综合婷婷网| 亚洲午夜一区二区| 欧美丰满熟妇BBB久久久| 免费在线观看欧美激情xx小视频| 国产脫衣舞一区二区三区| 99精品偷自拍| 99热主页日本| 一本久久亚洲五月婷婷| 青青草原伊人网| 少妇高潮呻吟A片免费看软件| 丁香五月激情无码视频| 九九久久精品| 思思干精品| 丁香五月在线观看| www.minyis.com【JT】实力收量可预付QQ2101460746 | 荫道BBWBBB高潮潮喷| 亚洲人人操| 狠狠干在线视频| 日韩狠狠色| 人妻熟女一区二区AV| 亚洲热综合| 情五月亚洲婷婷| 亚洲在线播放| 日本不卡一区二区三区| 99ri国产在线| 天天摸天天舔天天爽| 色婷婷五月综合色婷婷| 婷婷色综合| 91超级碰在线| 人人视频色| 丁香五月区| 97超级碰碰碰久久久| 久久99精品视频| 五月天影院| 九九综合精品| 久草a片| 五月天丁香久久综合| www.久久99| 激情五月天综合婷婷网| 丁香五月天五码婷婷| 操九色| 婷婷五月丁香成人网| 欧亚成人A片一区二区| 午夜激情综合| 六月色播| 97色五月天| 久久五月婷婷电影| 思思99久久| 热久综合| www色色com| 99激情| 欧美综合婷婷网| 99视频超级精品| 精品久久久999| 黄色91在线观看| 91re色综合视频| 无码激情AAAAA片-区区| 开心五月网| 黄色成人网站在线播放| 五月五婷婷网| 狠狠干综合| 丁香六月激情网C0W| enecarbon-materials.comWu染请涟系Bao护@wip1688 | 天天噜| 丁香 婷婷 激情 综合 五月| 激情综合婷婷| 999热成人在线综合网| 操逼巨乳91| 亚洲无码99| 这里只有精品在线看| 99超级碰碰| 色婷婷激情| 婷婷伊人五月| www.色综合.com| 国产成人精品一区二三区熟女在线| 婷婷成人小说综合| 9福利性视频欧美| 天堂成人A片永久免费网站| 五月色婷婷AV| 激情淫乱男女| 超碰资源在线| 91色五月| 五月婷婷黄色网址| 天天日 天天草| 超碰在线人妻| 婷婷久久五月天| 天天天天天天天操| www.五月天婷婷| 日本不卡一区二区三区| 久久人妻视频| 婷婷一本和五月丁香| 玖玖婷婷婷丁香五月| 色人久久| 26uuu日韩| 免费国产VA国产免费| www.玖玖婷婷在线| 欧美一级色| 九九热视频在线观看| 丁香五月日本| 精品久久9| 91五月花丁香| 九久9精品| 日本爆乳片手机在线播放| 91ncm视频| 五月天开心色色网| 婷婷五月天久久久| 色五月在线观看| 五月婷婷六月激情在线| www九九| 激情四射亚洲| 人人草人人爱| 黄色一级影片| 丁香五月综合网亚洲综合欧美狠狠| 啪啪91| 久久密臀婷婷| 日韩人妻在线播放| 婷婷色色色| 踪合专区啪啪| 婷婷色婷婷| 99超在线| 五月丁香六月情亚洲| 丁香婷婷六月男男| 99这里有精品视频| 涩涩五月天| 欧洲MV日韩MV国产| 欧美日韩日韩成人| 97婷婷丁香| 久久色五月天| 久久96热| 97干视频在线| 午夜成人AV在线| 色色婷婷丁香| 91午夜婷婷狠狠久久综合9色| 激情九九九九| 殴美日比视频| 久久狠色噜噜狠狠狠狠97| 狠狠撸激情综合丁香五月天俺来啦| 婷婷射图五月天| 丁香五月六月综合欧美| 超碰成人电影| 亚洲妇女熟BBW| 黄桃AV无码免费一区二区三区| 99re资源在线视频导航| 激情四射婷婷色色色| 久久丁香五月综合六月激情红杏视频 | 99丁香五月婷婷在线| 大香蕉久操| 夜夜爽日日躁| 激情五月婷婷开心网| 97碰免费视频在线| 亚洲日本韩国| 欧美一级a | 无码区婷婷五月花开| 97福利视频| 九九热青草| 色五月天丁香婷婷色| 在线观看免费狠狠色丁香香综合| 99噜噜噜在线播放| 夜夜夜夜做天天天做无码视频| 婷婷射丁香| 久99| 91久久国产自产拍夜夜91久久精品文字>91麻豆精品国产 | 五月丁香婷婷综合| 精品人妻伦一二三区久久| 亚洲六月综合激情久久下卡| 在线另类视频| 亚洲女婷婷五月基地综合久久久| 九九热这里只有精品6| 97狠狠色| 亚洲成av人影院| 97久操视频| 色五月婷婷在线视频| 能看的av网站| 九九成人视频| 久久一级片| 日本在线视频手机播放五月婷| 激情婷婷五月社区| 五月色综合| 亚洲色图五月丁香五月婷婷| 99热在线资源| 亚洲乱码成人| 色播五月丁香| 99热黄| 五月丁婷香| 久久精品视频在这里有| 中文字幕欧美日韩VA免费视频| 欧美日韩国产日本精品四虎网网站物| 亚洲精品va| 蜜桃五月天色| 99精品热视频| 99欧美热| 色婷婷av在线观看| 日韩视频99| AV操操操| 亚洲色基地| 成人婷婷深爱综合网| 亚洲午夜视频| 午夜精品人妻无码一区二区三区| 中文字幕av亚洲| 丁香六月爱综合| 色99在线| 高清成人综合| 五月天激情.com| 激情五月色婷婷| 色吧网综合| 天天婷婷操| 超碰99热精品| 久久婷综| 天天开心天天色| 亚洲男女激情| 五月天婷婷婷| www.主妇. com| 97人人搞| 丁香久久激情俄| 亚洲综合五月天综合| 五月激情网站| 婷婷九九色| 五月激情网五月综合网| 久操大香蕉| 婷婷久久影院| 五月天婷婷乱| 中文字幕黄色片| 亚洲在线综合| 天天干天天操天天拍| 天天碰夜夜操| www.av视频xx999.com| 另类图片天天影视在线观看| 婷婷玖玖丁香| 五月草影视| 人妻丰满精品一区二区A片| 噜噜狠狠| 丁香五月天黄色片| 色婷在线视频| 熟女激情五月天| 天天插操| 五月婷婷久久内射| 综合久| 黄色AV日韩| 国产精品电影网| 婷婷综合偷拍| 婷婷色五月丁香六月欧美啪| 玖玖婷婷免费| www.操逼comm| 99热这里只有精品4| www.黄色片-久久成人国产精品在线播放-999AV | 色婷五月| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 日日做夜夜爱| 成人 在线观看国产| 婷婷亚洲激情在线观看视频| 五月丁香六月在线| 99热偷拍| 黄色片区子| 男女免费视频999| 五月开心久久| 亚洲成人中文字幕| 夜夜撸日日骑| 九月婷婷在线视频| 五月天久久成人| 97高清国语自产拍| 精品婷婷五月视| 色五月首页| 九九九日本熟女| 日韩啪啪网| 97资源碰碰| 五月停亭六月,六月停亭的英语| 色婷婷AV在线| 亚洲啪啪网| 精品99在线| 综合色色色| 婷婷六月视频| 国产免费一区二区三区三州老师F1F1.CC| 丁香五月婷婷亚洲另类| 日本久久人| 婷婷色啪| 九九RE视频在线精品| 99ri国产| 天天操比比| 久久er免费视频| 99热九九热| 五月天色狠狠| 婷婷九月丁香| 欧美激情综合| 91狠狠色丁香婷婷综合久久精品| 五月天色婷伊人| 99国产精品久久久久久久久久久| 永久99免费视频网站| 亚洲V国产V欧美V久久久久久| 色小说婷婷五月天天天| 国产成人综合网| 色情播放| 丁香婷婷五月综合欧美另类| 五月亭亭六月天| 国产视频福利| 色欲久久综合| 狠狠做六月爱婷婷综合aⅴ| 国产午夜精品一区二区三区四区| 人人干AV| 激情碰碰碰| 色婷婷综合网| 婷婷六月激情| 丁香五月成人网| 五月天小说激情| 99热最新国内| 色停停五月,在线观看| 中文字幕,综合,91| 小视频久久久aaa| 久久九九综合| 欧美日韩99| 五月婷六月丁香| 99ri国产精品| 日韩一级网站| 99热综合| 欧美性色A片免费免费观看的 | 国产综合色婷婷精品久久| 婷婷五月天色播| 天天成人丁香美女AV| 成人AV综合在线| 久月婷婷| 色综合久久天天综合网| 超碰A V在线| 伊人久久大香线蕉av一区| ss五月天激情| 五月婷婷黄网站大全| 大地资源色婷婷视频在线| 婷婷综合偷拍| 9l视频自拍九色9l视频在线观看| 丁香花色色网| 天久综合91综合首页| 这里只有精品在线视频在线观看| 在线另类视频| 99性色| 热久久66| 海外网站专业操老外| 超碰成人免费| 五月丁香六月婷婷视频| 99色色| 夜夜嗨一区二区三区直播内容| 亚洲激情婷婷| 99re66热这里只有精品| 黄色av高清| 久久精典| www.五月婷婷久久.com| www.婷婷五月.com| 成人在线网| 婷婷夜夜夜夜| 国产精品视频| 麻豆AV一区二区三区| 色5月丁香婷婷| 欧美婷婷六月丁香综合色连续高潮抽搐| 第四色色六月色综合| 99热最新| 婷婷激情网五月天| 丁香五月综合| 五月天开心色色网| 亚洲AV网址| 亚洲综合色五月| 亚洲在线综合| 婷婷丁香五月天综合在线日韩| 激情另类综合| 五月天婷婷导航| 婷婷爱爱蜜臀天天操| 婷婷久久色五月婷婷久久久| 激情综合激情综合| 免费日韩99| 9l视频自拍9l视频自拍九色学生| 天天综合网站| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 婷婷九月综合| 久热这里只有精品视频6| 99热99在线精品| 野战J办公桌椅H| 综合AV在线| 亚洲综合色色| 久这里只有精品| 嫩草视频观看| 伊人爱爱日本| 五月激情站| 激情六月丁| www.色窝| 99久久久免费| 91n啪啪| 伊人综合网站| 婷婷月综合| 这里只有精彩视| 久鲁鲁色网| 91婷婷色五月| 字母不卡码人逼| 免费看欧美成人A片无码| 97碰在线| 五月丁香九九九综合| 亚洲人妻AV| 激情av在线| 精品一二三区久久AAA片| 欧美色97| 夜夜躁爽日| 色香五月天| 婷婷和五月天| 色播五月天婷婷老师| 丁香五月婷婷天激情| 亚洲激情另类| 综合激情在线| 天天综合天综合| 一本久久亚洲五月婷婷| 大香蕉婷婷色| 成人AV中文字幕| 丁香五月 性爱| 超碰在线人妻| 九九色人| 日本丁香五月| 色色色色av色色色色| 五月天婷婷伊人| 亚洲欧美成人在线| 97碰碰在线观看视频| 国产精品黑丝| 色五月亚洲| 99热这里有精力| 99在线精品视频免费观看20| 丁香五月激情视频在线| 五月婷婷激情四季| 激情五月天黄色小说| 9热视频在线观看| 99精日本久久| 亚洲午夜在线视频| 99精品偷自拍| 狠狠色噜噜狠狠狠狠综合| 色99热| 日本 @ va 免费| 色久五月| 色小说婷婷五月天天天| 亚洲激情 久久| 久久丝丝热| 人妻久热| 91久久久久久久91| 看逼中文字幕| 在线不卡的视频| 日韩熟女啪啪视频| 97人人操人人插| 中国操逼99| 五月天伊人| 五月色综合| 婷婷五月激情中文字幕| 五月激情啪啪| 综合大香蕉| 五月天激情电影| 五月婷婷影院| 色婷婷久久综合中文久久一本| 这里只有精品免费| 五月婷激情| 狠狠色大香蕉| 色九月婷婷丁香|