99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

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
返回資訊列表
九九成人| 久久丁香五月天| 99视频只有这里精品| 亚洲午夜成人av电影网| 五月丁香花开综合网| 午夜亚洲AV日韩无码| 亚洲182在线观看| 久久er九九| 99在线免费观看| 美妞av| 婷婷网五月天| 伊人丁香婷婷东京| 六月丁香激情| 色综合久| 婷婷色五月久久| 精品日本视频444| 丁香五月激情性色郤| 色吧99| 日韩五月丁香| 五月婷婷激情| 国产真实乱了老女人视频| 一區四區歐美日韓| 欧美男女婷婷| 在线中文字幕视频| 丁香婷婷五月天色播| 国精产品一区一区三区免费视频| 日本VA视频| 日韩在线成人电影| 99久视频| 五月天色狠狠| 99在线播放| 99久久免费性爱视频`| 五月丁香六月婷婷久久| 婷婷五月丁香伊人网| 婷婷六久久| 新激情五月天天在线网| 99热99热在线观看| 日本9区视频| 日本爆乳片手机在线播放| 夜夜夜夜夜操| 综合久久影院| 色青青电影色五月| 超碰激情网| 九九成人精品免费视频| 奇米影视在线视频| 色婷视频| 久久性爱视频| 99九九视屏| 91在线日本| 久艹大香蕉| 99精品综合在线| 99精品偷自拍| 亚洲av| 99热这里| 影音先锋秋秋五月婷婷| 激情综合五月丁香六月婷婷| 丁香六月婷婷综合缴| 亚洲五月丁| 青青热久精品视频在线观看| 激情丁香淫荡婷婷| 色色国产| 久久99婷婷| 91蜜桃婷婷狠狠久久综合9色| 六月丁香影院| 欧美极品999| 黄网在线免费观| 色色网站免费| 成人色站,在线视频,看片-SS1AV| 91碰超| 欧美性生交XXXXX无码小说| 99精品久久久久久久婷婷久久 | 97超碰色| 天天爽天天操| 五月丁香亚洲综合| 四色 爱 婷婷 精品 亚洲 五月天| 91.com男女操| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 91啪啪| 中文字幕AV在线播放| 91精品丝袜久久久久久久久粉嫩| 五月婷在线影院| 九九九九国产| 涩五月丁香| 丁香五月天天高清在线| 99九九在线| 99人妻碰碰碰久久久久禁片| 久久大香蕉同僚| 欧美综合激情丁香五月六月婷| 激情四射婷婷色色色| 色欲一区二区三区精品A片| 婷婷五月天AV在线| 五月婷激情| 五月色情婷婷开心五月色情| 思思视频久久| 婷婷五月天丁香花| 狼友视频在线观看18| 婷婷婷久久| 被强行糟蹋的女人A片| 色婷五月天| 五月婷婷在线播放| 久草热视频在线观看| 免费V片在线| 亚洲激情四射色| 99热在线免费| 97超碰欧美中文字幕| 亚洲色无码| 成年人丁香五月| 欧美色色色色色| 97啪在线观看视频| 丁香色五月婷婷17C| aaaaaa片| 六月婷婷色综合| 国产69久久久欧美黑人A片| 日韩av免费版| 丁香六月天婷婷在线| 99久久国产宗和精品1上映| 国模淫穴色图| 国产精品成人在线| 欧美日本97| 涩涩五月天| 无码任你操| 色五婷婷开心缴| 欧美日本va| 久久网思思| www.日日日.com| 深爱丁香网| 久草天堂| 丁香五月婷婷深五月| 黄网在线播放| 精品在线| 午夜性爱影视一区77| 97干婷婷| 婷婷丁香六月五月天| 91黄操| 操97在线观看| 婷综合六月| 国产亚洲av片| 婷婷色爱| 婷婷丁香五月天激情| 色丁香五月婷婷| 婷婷激情啪啪| 六月婷婷五月天| 亚洲电影在线观看| 思思99热这里只有精品| 五月丁香婷婷综合| 日本va网站| 丁香五月天婷婷久久| 九月激情网| 婷婷五月亚洲综合| 婷婷五月丁香狠狠| 五月婷婷久草在线视频综合| 久久婷婷丁香| 亚洲网站999| 久久婷婷伊人| 五月天久久91| 婷婷5月久久综合网站| 色婷婷五月天av在线| 婷婷欧美| 97色色色色色色色| 亚洲色色图片| 丁香五月综合在线观看| 91操片| 欧美色一级色| 久久亚洲婷婷| 丁香六月综合| 九九狠狠干| 中文AV网| 丁香五月播播| 日本久久婷婷| 日韩成人综合网| 99九九精品| 91九色熟女| 丁香视频| 九热视频| 黄色99网| 97人人看一| 色五月婷婷综合在线| 在线看黄色| 五月婷婷丁香在线视频| www.激情com| 午夜天堂啪啪| ji'qing'luan'ren'lun| 精品成人a v无码内射| 九九99九九99| 五月天开心色色网| 丁香婷婷五月天激情四射| 天天爽夜夜爽夜夜爽精品| 开心婷婷五月天电影院| 五月丁香五月婷婷| 九色PORNY9l原创自拍| 久久婷婷青青| AV色五月婷婷| 婷婷开心久久| 91久热| 色婷婷伊人| 激情综合网五月婷婷| AAA亚洲AV| 深夜A片| 99热欧美| 天天日夜夜B久久| 久久婷婷五月| 亚洲午夜一区二区| 99热青青草原| 超碰人人操人人干| 日本在线观看aaa 99| 99视频只有精品| 久久婷中文字幕| 丁香五月婷婷在线| 爱草视频在线观看| 五月婷婷人人人操| 好吊兆人妻| 天天肏高清在线| 丁香五月天啪啪| 亚洲五月丁| 99这里只有精品|v| www.色多多婷| 草操网| 色噜噜狠狠一区二区三区| 少妇熟女视频一区二区三区| 99热人人| 久草热在线视频| 免费一区二区三区| 国产美女精品| 9l视频自拍9l九色成人| www99在线观看视频| 日日噜狠狠| 六月婷婷俺也去| 人人摸人人操人人爱| 丁香婷婷色五月| 国内一级精品| 少妇人妻人伦A片| 精品思思久久| 丁香六月av| 久久激情综合| 五月色丁香成人| cao视频,现在观看| 开心婷婷五月| 色情五月综合婷婷| 99色丁香婷婷综合网| 欧美六月婷婷| 五月丁香六月情| 天天爽综合| 婷婷爱爱蜜臀天天操| 久久久婷| 影音先锋91资源站| 丁香五月,激情五月,深爱五月| 99精品超在线播放| 三十熟女| 美女网黄| 久久这里只有国产视频| 亚洲日本激情| 久久电影4399| 99热99思午夜精品| 五月天婷婷婷| 婷婷五月花| 天天爱综合网| 99热超| 丁香五月AV| 欧州色色| www.婷婷,com| 噜综合| www99xxxx五月丁| 婷婷五月天激情网| www夜夜操| 丁香六月天色婷婷| 色婷婷视频| 色婷婷88| 丁香五月电影院在线观看| 成人综合网站| 99热亚洲| 色情五月婷婷| 九月色婷婷| 亚洲色网址| 五月色俺婷婷| 激情婷婷五六月天| 综合激情开心五月| 婷婷舔| 久久伊人大香蕉| 婷婷激情五月天激情小说| 天天综合精品| 久热9| 97资源欧美日韩大香蕉超碰一区| 婷丁香五月天| 精品色色| 成人电影AV在线观看| 99亚洲日韩| 婷五月天在线草| 婷婷激情肏屄网| 久99视频在线观看| 婷婷五月天激情综合| 亚洲欧洲一二| 九九人人看| 色欲一二三| 五月色欧美| Av性爱网| 秋霞影音91人妻久久| 精品视频99看在线视频| 国内婷婷丁香社区在线播放| 激情综合五月激情| 午夜九九电影| 五月婷婷六月奇米网丁香| 五月综合婷婷开心网| 99天堂网| 五月丁香综合| site:esunnet.com| 亚洲六月婷| 成人网站免费sxj| 九九色热| 天天干天天日日| 五月天六月天| 五月丁香六月婷婷亚洲| 丁香五月乱中文字幕| 色婷婷五月天堂资源| 2025天天爽天天摸| 五月天六月婷| 91操片| 日本99久久| 五月激情视频| 粉嫩AV久久一区二区三区| www.夜夜操| 日本精品久久久久中文字幕| 亚洲亚洲人成综合网络| 九久热| 亚洲成片在线观看| 大香蕉久操| 天天日天天添| 五月天激情综合10p| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 99热| 色色五月婷婷网| 免费色婷婷| 日本天堂久久| 午夜丁香| 中文网av| 四虎成人精品永久免费AV九九| 丁香五月综合| 亚洲狠狠终合停停终合| 亚洲AV第二区国产精品| 亚洲日本激情| 99热官网精品在线| 五月天婷婷基地| 99re6在线视频精品免费| 91se精品国产| 五月丁香激情综合六月涩涩爱| 99热爱爱干干日| Av性爱网站| 国产精品蜜臀99| 99精品免费视频| 亭亭色色五月天| 色99视频| 五月丁香黄色| 九九九午夜影院成人| 婷婷色狠狠| 五月婷婷激情| 五月综合激情网| 色婷婷超碰| 91狠狠色| 五月色天情| 欧美色图天堂网| 无码人妻丰满熟妇奶水区码| 久久免费操| 婷婷色色播五月天| 91丨九色丨国产打屁股| 久热网在线视频| 午夜激情综合| 亚州第一黄网| bbwcuckold精品熟妇| 99爱精品| 久热a| 99热最新地址在线| 亚洲黄色精品| 天天综合91入口| 日逼AV影音先锋男人资源站| 久热久| 熟女激情网| 六月婷婷在线| 五月天婷婷视频30| 天天干天天操天天爱| 中文网AV| www.色五月| 午夜九九九九九九九九九九九九九| 激情综合色婷婷啪啪五月天| 亚洲V国产V欧美V久久久久久| 97人人超| 国产婷婷五月| 国产91视频| 国产精品成人网址| 久热精品视频| 天天拍天天操| 99re66热这里只有精品| 五月丁香久人妻中文| 伊人婷婷大香蕉在线| 激情九月婷婷| 超碰在线人人| 超碰在线网站| 亚洲免费99| 九月婷婷人人操人人舔人人爱| 99re在线播放| 少妇人妻丰满做爰XXX| 久久这里有精品| 色婷婷基地| 99小视频在线| 五月天激情久久| 欧美日本韩国亚洲| 天天在线久久综合| 色婷婷久久| 97人人操在线| 久久视频婷婷视频| 五月色婷婷影院| 五月婷婷丁香婷婷| 99婷婷五月天激情| 久青草影院| 激情婷婷护士激情| 综合激情五月丁香| 99热91| 日本三级韩三级99久久| 成人综合网站| 天天射天天操天天干| 婷婷五月激情基地| 91精品视频男人的天堂| 色五月婷婷操逼| 丁香九月综合激情| 婷婷色导航| 欧美色五月| 99久热这里只有精品视频删减版| 婷婷爱综合| 色五月丁香激情视频| 五月丁香婷婷激情久久| 五月天婷婷丁香社区| 婷婷丁香五月综合激情小说| 色五月天婷婷| 色综合综合色| 国产精产国品一二三在观看| 亚洲AV永久无码影院黑人 | 狠狠色丁香五月婷巨| 色域五月婷婷丁香| xxxx五月| 久久AV电影| 五月婷婷激情综合网| 九九无码| 香蕉婷婷| 天天天摸夜夜夜玩| 久久久国产精品黄毛片| 婷婷丁香五月综合激情小说| 亚洲一级AV在线免费播放| www.99热在线| 99这里是99在线视频| 99色在线视频| 色五月丁香五月婷婷五月成人网| 1024亚洲| 天天精品视频免费观看| 超碰免费在线| 午夜天天精品视频| 色婷婷狠狠| WWW.99视频| 开心五月深爱五月| 麻豆五月丁香婷婷| enecarbon-materials.comWu染请涟系Bao护@wip1688 | 99综合网| 婷婷六月天| 9久9久9久女女女九九九一九| 色婷婷四色| 超碰人人干| 婷婷免费视频| 影音先锋xfplay资源男人网| 99久久国产宗和精品1上映| 久久只这里有精品| 婷婷色五月大香蕉在线观看| 中文字幕成人| 色久五月天| 欧美在线看| 欧美三级A做爰在线观看| 天天看夜夜看| 激情五月丁香五月| 丁香五月婷婷国产在线| 九九久久网| 校园激情 亚洲| 六月激情丁香一道本7777| 99热99热在线观看| 91xxxx九色| 深爱激情五月婷婷| 色情五月停停丁香| 2014天天爽| 五月天丁香花婷婷| 婷婷大香蕉| 天天爽夜爽| 色综合色婷婷色伊人| 成人超碰网| 亚洲性爱电影| 狠狠狠狠狠操| 97色婷婷| 伊人五月天97| 熟女色色一区二区| 饮料下药迷倒漂亮女同事强干| 丁香六月激情网C0W| 91狠狠综合久久久| 色色婷婷婷丁香五月天| 国产精品激情AV久久久青桔| 激情婷婷色色| 婷婷丁香十月| WWW.色婷婷.COM| 九月婷婷久久| www.9797国产| 精品自拍99| 91日本在线观看| 天天艹夜夜艹| 五月色网| 丁香五月AV综合激情| 久久五月情| 麻豆AV一区二区三区| 久久东京热婷婷五月| 五月天成人在线播放丁香| 狠狠操狠狠爱| 亚洲六月色婷婷| 91久久九| 丁香久久在线| 婷婷五月花| 综合99视频| 丁香 婷婷 亚洲 熟女| 综合激情网五月激情| 五月天丁香成人| 婷婷五月天国产性感美女演员久久久久| 99热网站| 99re在线观看| 日韩999| 色五月婷婷啪啪五月| 丁香六月婷婷一区| 天天日天天舔天天摸| 天天干天天操天天射| 五月丁香婷婷伊人日韩| 艳妇野外情欲放荡HD| 色五月亚洲| 婷婷五月天堂| 99热偷拍| 五月天综合在线| 五月天婷婷綜合院| 色激情五月| 26uuu在线观看| 久久久久人妻精选| 丁香五月开心婷婷| 26uuu欧美宗合| 日日日影院| 国产淫熟妇| 婷婷五月天Av| 丁香五月婷婷成人综合| 五月丁香六月婷婷综合网| 多精窝99在线视频| 婷婷丁香五月精品| 26UUU在线观看| 色狠狠六月| 五月婷婷co.m| www,婷婷五月天,com| 日韩激情人伦人| 婷婷狠狠五月综合| 思思热99在线视频| 亚洲视频99| 婷婷五月天六月丁香| 五月丁香综合在线| 99在线视频资源| 4438激情网| av在线激情| 亚洲激情视频在线观看| 26uuu国产| AV电影在线播放| 久草热久草在线视频| 久久9热好| www.99精品日操伊人乱碰在线| 一本到不卡高清DVD| 丁香五月婷婷高清| 婷婷五月天AV在线| 欧美va精品va老师va| 99这里只有精品国产| 丁香五月天婷婷中文| 日本熟女一区二区| 99爱视频| 日日爽夜夜爽| 影音先锋AV男人站| 97干在线观看视频| 樱花99视频| 热这里| 久久久久er热| 天天爽天天日| 色欲AVV| 草草影院爱爱| 色色色在线免费视频| 三十路磁力链接| 五月激情久久| 婷婷五月色播放| 国产黄大片在线观看画质优化| 三日本无码| 亚洲婷婷婷| 九九视频网| 色大综合| 国产在线黄色| 亚洲欧美在线观看| 国产91九色| 激情综合5| 九九在线这里只有精品视频| 香蕉久久国产AV一区二区| 成人综合网站| 黄网在线观看免费| 激情婷婷五月黑人| xx久久| 丰满少妇猛烈A片免费看观看| 99啪啪骑| 色小说婷婷五月天天天| 亚洲欧洲午夜成人精品av| 天天干天天拍| 大香蕉伊在| 婷婷的激情五月| 狠狠草狠狠草| A片试看50分钟做受视频| 大香蕉丁香| 丁香五月在线伊人| 精品99只有。| AV人人操| 日本天堂免费99| 丁香五月婷婷姐| www.9797国产| 久久婷婷一级片| 这里只有精品亚洲| 在线视频激情网站| 丁香,开心成人,久久| 五月天综合久久| 成人超碰Av| 激情五月激情综合网| 91精品啪| 五月婷婷干| 夜夜干夜夜操| 五月丁香少妇| 欧美狠狠地| 伊人激情| 色五月丁香五月| 夜夜爱网站| 91久女| 丁香五月天信号| 另类 在线| 狠狠狠狠狠狠草| 就要爱综合| 国产性爱一级| 热婷婷久| 美英法精品无码免费视频| 黄网在线播放| 狠狠色丁香| xx久久| 婷婷金品综合视频| 成人网站在线观看视频| 色婷婷网| 婷婷婷婷婷开心无码播放| 91大神操美女| 亚洲视频在线网站| 狠狠穞A片一區二區三區| 色狠狠色噜噜AV天堂五区消防| 性色欲情 网站| 日本天堂免费99| 超碰成人公开| 99热91| 丁香婷婷色色| 情趣视频66| www.十八禁不禁AV.com| 国产精品人妻欲求不满| 综合亚洲AV| 五月天操逼激情| 婷婷综合五月天| 久草婷婷| 国产激情在线| 激情综合网五月| 丝雨一区二区| 人人爱人人摸人人澡| 成人小说色图婷婷五月| 五月天色婷婷网| 五月色情精品| 99热久久这里只有精品2010| 久久久久久久久18久久| 伊人五月成人| 99ri视频在线观看| 五月丁香婷婷欧美| 色五月大| 丁香五月自拍| WWW色五月天| 五月色综合| 深爱开心激情网| 九九丁香社区欧美激情| 人人视频色| 亚洲不卡123| 激情床戏| 五月亭亭开心网| 色婷婷五月天激情在线观看| 婷婷六月丁香欧美视频在线| 色播播婷婷| 丁香五月天欧美在线| 啊v视频在线观看| 五月激情偷拍婷婷| 九九Y精品热播| 五月婷婷在线视频| 大香蕉五月天婷婷| 少妇大叫太大太粗太爽了A片| 日日干干天天干| 亚洲中文字幕AV在线| 思思热在线精品视频| 桃色五月天| 99精品成人无码A片观看金桔| 大地9中文在线观看免费高清| 中文字幕日产A片在线看| 色婷婷五月综合| 久99久视频| 少妇2做爰HD韩国电影| 综合AV网| 午夜免费高清AV片| 亚洲色碰| 99热久久最新地址| 热的国产,热的综合,热的有码 | 99热热热国产超碰| 亚洲AV人人操| 天天日天天摸天天| 人人摸人人干人人做| 婷婷综合在线| 深爱激情五月网| AA片在线观看视频在线播放| 色五月婷婷7777| 久久精品天| 99久久九九| 午夜爱爱爱成人| 亚洲网视屏| 另类小说五月天综合| 婷婷五月激情欧美| 大香蕉人人人| 久久有码| 成人免费超碰| 丁香激激情网| 成人.在线日韩| se99视频| 森林影视大全,最好看的2019年视频 | 婷婷九月激情| 丁香五月伊人| 色娸娸综合网| 色色丁香五月婷婷| 青青草原99热| 丁香六月婷婷| 五月婷婷新网站| 激情色情五月天| 97福利视频| 精品99只有。| 大香网伊人久久综合| 中文婷婷狠狠| 97天堂| 久久五月激情| 婷婷在线网| 一区二区aV电影免费看| 26uuu美女三级视频| 九九视频热| 色综合色五月| 日韩精品VIP| 精品一区二区三区四区五区六区介绍| 婷婷国产成人| 日本片日本片祼观看网站在线看中文版网页在线看 | 久久9视频欧美| 九九爱激情| 熟女色专区| 色丁香五月婷婷| 无码一区精品一区视频| 超碰在线人人| 人人摸人人澡人人| 9l视频自拍九色9l黑人| 久色成人| 激情五月天影院| 久久精品综合色| 五月丁香婷婷激情澎湃四射| 狠狠色婷婷7777久| 婷婷五月天激情小说| 天天色,天天操,天天射| 99热免费精品| 丁香五月人妻| 99热亚洲| 婷婷99丁香| 九月丁香五月婷婷| 久久人妻久久久久| www.91久久| 极品色丁香| 色五月大香蕉婷婷| 丁香五月婷婷亚洲天堂| 婷婷色色欧美综合网| 中文成人在线| 国产精产国品一二三在观看| 中文av网站| 久久国产色| 97av在线视频| 91一起艹| 久热九九| 99热国产国产| 久久五月天精品视频| 婷婷色五月激情| 久久色情| 亭亭玉立国色天香| 天天操天天日天天爱| 99精品一二三四视频| 9久久AV| 婷婷丁香社区| 啪啪色区| 色爱综合五月| 五月婷婷导航| 亚州操操| 综合色色网| 91凹凸在线| 日韩成人AV在线| 新久久五月天激情| 热九九九九| 91操在线观看| 夜夜AVV| 大香蕉中文| 99热在线网站| 国产成人高清| 丁香五月亚洲激情婷婷射| 五月综合无码| 丁香五月另类小说在线阅读| 99亚洲精品视频| 伍月婷婷免费视频| 99在线精品免费视频| 五月天停停成人网| 亚洲AV免费国产电影| 九色七七| 快乐婷婷五月天| 久久无码成人| 丁香六月婷婷久久综合| 久久性视频| 国产暴力强伦轩1区二区小说| 成年人99热| www.久久婷婷| 天天日,天天干,天天操| 丁香色啪综合| 久艹伊| 日本狠狠色| 色丁香久久久| 综合久久高清| 欧美槡BBBB槡BBB少妇| 日本熟女内射| 五月天丁香综合| 香蕉久久国产AV一区二区 | 这里只有精品免费视频| 日韩av大全| 97在线日本| 六月激情综合| 国产午夜一区二区三区| 色情综合网| 九九九九九九热| 亚洲色婷婷| 婷五月丁香俺| 成人精品网站在线观看| 六月婷婷开心| 97色色综合| 五月天激情小说婷婷| 伊人九九九久| 99精彩视频| 久一这里有精品国产| 五月丁香网中文字幕| 亚洲无码99| 亚洲婷婷五月天| 久久玖玖99| 狠狠搞五月天| 国产婷婷五月在线视频| 伊人网啪啪| 国产AV一区二区三区最新精品| 婷婷五月欧美| 成人五月天在线观看| 99热费观看| 99在线观看| 超碰高清在线| wuyuedingxiang99| 五月婷婷丁香五月婷婷丁香| 亚洲乱码精品久久久久..| www,超碰| 久久网思思| 丁香婷婷色五月| 超碰京东热av男人的天堂| WWW色综合| 日日干日日| 日韩黄色影院| 就要爱综合| 99精品在线观看视频| 色狠狠色噜噜AV天堂五区| 五月婷婷啪啪啪| 婷婷开心激情五月激情网| www.99婷婷| 三日本无码| 亚洲精品又粗又大又爽A片| 99成人精品| 超碰在线超碰| 激情婷婷在线| 五月天激情网址| 婷婷色在线观看| 69热在线| 99九九热视频免费| 亚洲精品另类| 亚洲成AV人片在线观看| 久久精品99国产精品日本| 色婷婷99| 久久婷婷亚洲| 99久久久免费| 伊人久久婷| 天堂综合久久 | 天天操综合网| 99久在线精品99re8热| 婷婷五月色亚洲| 免费观看的AV| 天天操夜夜肏| 亚洲精品性色| 99无码视频| 亚洲色情网站| 欧美 色婷婷| 日本狠狠爽| 五月婷婷五月天| 超碰在线成人| 欧美性爱5月天天天看| 五月天色综合| 噜噜噜狠狠色综合| 五月丁香六月婷| 婷婷涩五月| 色色哒五月婷婷六月丁香| 久久艹 五月天| 五月色导航| 成人片黄网站色大片免费毛片| 9.1综合网| 五月婷婷婷| 狠狠搞五月天| 综合五月婷婷| 超碰99在线| 亚洲操b| 综合色吧| 91凹凸在线| 色五月婷婷91| 婷婷久久五月丁香| 高清不卡一区| 五月天色社区| 9久久久久久久久久久| 色六月婷婷| 色综合久久综合中文综合网| 久久婷.com| 丁香五月91| 丁香 亚洲 久久| 99精品97| 六月色日韩| 久草久青福利| 婷婷射婷婷舔| 五月婷婷色影院| www.婷婷五月天.com| 婷婷综合在线| 婷婷色导航| 9久国产精品| 五月伊人网| 五月色综合| 婷婷五月情色| 久久久精品婷婷五月天| 99热在线观看精品免费| 五月天丁香婷婷社区| 亚洲精品亚洲人成人网| 丁香色六月| 无遮挡国产高潮视频免费观看 | 九月婷婷激情| 久久99免费视屏| 亚洲欧美成人在线| 亚洲 无码 中文字幕 中出| 欧美日本不卡黄色片| 色五婷婷开心缴| 日本99在线视频| 五月天综合色| 五月丁香六月色婷婷| 日本操B视频| 婷婷狠狠干| 色综合激情| 亚洲精品V天堂中文字幕| 五月花婷婷丁香| 夜色综合网| 婷婷天天色| 密乳视频| 99色日本| 91精品婷婷国产综合久久| 色五月丁香五月五月婷婷| 五月天大香蕉av| 一级二级色大片| 午夜理论片最新午夜理论剧 | 99热婷婷| 91婷婷五月天嫩女| 精品久热| 久久久全国免费视频| 丁香五月天婷婷久久| 情婷婷五月天| 婷婷射综合| 五月天久久小说| 色综合区| 欧美日韩成人高清在线| 日本三级中国三级99| 超碰在线caop| 色狠狠999综合| 97深爱伊人综合| 五月狠狠| 国产成人AV| 超碰97干| AAA亚洲AV| 综合久久婷婷| 久久九九99.www| 亚洲无码播放| 人妻VideOssS人妻| 久操操| YW无码| 五月婷婷啪啪| 99在线视频精品| 色五月婷婷久久| 天天插夜夜爽| 九月丁香婷婷综合激情| 成人网在线视频| 成人va在线| 中文字幕一色哟哟哟哟| 99这里只有| 色爱99| 91婷婷五月天嫩女| 五月天婷婷导航| 六月丁香啪| 激情五月综合网最新| 久99精品视频| 久久婷婷五月综合网| 狠狠干综合| 91婷婷丁香| 天天五月天综合网址| 99 这里只有精品| 婷婷丁香五月麻豆| 色444综合网| 国产无套精品一区二区| 色婷婷精品小视频| 丁香桃色网| 久久精品日| 人人视频人人干人人做| 69精品无码一区二区三区| 丁香五月狠狠综合欧美| 国产精品人妻在线网址| 国产亚洲精品久久久久久郑州| 日本啪啪网| 五月的色婷婷高潮| 九九热视频网站| 人人操91| 婷婷五月天亚洲综合| 丁香婷婷浪潮AV久久综合| 亚洲精品又粗又大又爽A片| 另类视频一区| 99青青草| 色色色.com| 很很操很很操| 成人精品一区二区三区四区五区 | 欧美情色一区| 9精品在线| 久热A| 天天色天天色天天色天天色天天色| 色啪网| 97狠狠色| 婷婷五月激情欧美| 热99精品视频| 五月天伊人久久久久| 热996精品在线观看| 日韩精品无码AV| 婷婷久久影院| 日本久久婷婷| 婷婷五月丁香五月| 色婷婷久久综合久色| 天天摸天天舔天天爽| 亚洲综合色丁香五月天| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇| 六月丁香婷婷天堂| 就爱射中文字幕资源网| 婷婷五月天香蕉| 99热这里只有精品免费| 欧美啪啪9| 婷婷五月综合在线| 1024人妻| 狠狠色丁香乆乆| 亚洲色色香蕉| 日本久久婷| 丁香婷婷激情四射五月| 99热精品免费| 五月丁香亭亭| 青青草轻轻操| 丁香久久五月婷综合| 玖玖综合色| 久久99这里| 天天射综合网夜夜操| 亚洲色五月婷婷| 五月色网| 日本少妇裸体做爰高潮片 | 提提热五月天婷婷| 99er精品视频| 色综合色五月| 免费看欧美成人A片无码| 91久女| 中文字幕av亚洲| 五月丁欧美| 99热只有精品在线观看| 婷婷五月天狠狠色| 五月天狠狠| 激情五月天天| 亚洲色夜| 青草性爱视频| 欧美丁香五月| 五月天六月色| 亚洲av电影网站| 超碰人人超碰| 狠狠999| 女人天堂AV| 五月丁香综合激情| 精品动漫 无码av| 操碰97| 狠狠操狠狠做| 久热9| 久久人人添人人爽添人人片αV | 婷婷五月天色| 国产操B| 人人人操| 九九热手机在线视频| 色婷婷a v| 欧美情色电影一区二区| 婷婷综合亚洲| 激情激情激情网| 久操人妻| 日本97在线看片| 精品在线| 精品久久这里热66| 亚洲乱码日产精品BD| 99熟女啪啪视频| 五月永久激情| 亚洲综合成人网| 9999热在线| 久久色五月| 日本色久| 情色婷婷五月天| 99热这里只有精品国产首页| 激情五月婷婷老师| 97婷婷五月天| 思思热视频在线观看| 亚洲丁香五月天视频| 日本美女五月天| 91视频精品99| 久热91| 久久久久婷婷| 香蕉人妻AV久久久久天天| 中文字幕无码人妻少妇免费视频| 亚洲欧洲中文日韩久久AV乱码| 国产精品激情AV久久久青桔| 超碰狠狠干99| 超碰妻人人| 天久久久久| 九九色99| 精品网站99| 五月成人网天天| 五月丁香婷婷成人网| 1区2区视频| 人妻无码精品一区| 国产精品国产成人国产三级 | 丁香五月情| 97色色色色| 久久五月天激情视频| 五月天激情av| 丁香激情四射| 婷婷丁香成人| 麻豆观看夏晴子| 日本少妇AA一级特黄大片| 生活片五区| 欧洲婷婷五月天| 99热这里只有精品官网| 丁香五月成人| 996热| 99情色五月天| 婷婷五月色综合| 亚洲99激情| 丁香婷婷色五月| 91久久久久久久久18| 精品影院| 亚洲操B视频| 色五月婷婷天天干| 五月色丁香视频精品| 五月丁香啪啪婷婷| 丰满女老板BD高清A片| 9色免费网| 99性视频| 丁香婷婷六月在线资源观看| 丁香婷婷五月六月久久| 另类少妇人与禽zOZZ0性伦| 九色porny在线观看激情四射| 丁香花色色网| 亚洲色vA| 九九综合九九| 五月丁香综合色婷婷| 超碰97人人操| 色婷婷狠狠久久综合五月| 91凹凸在线| 韩国中文字幕91| 超碰操网| 婷婷噜噜| 激情综合久久| 伊人玖玖网| 啪啪啪五月天| 九色婷婷| www.com在线操视频免费观看| 无码色色色色色| 思思久久精品| 亚洲亚洲人成综合网络| 原琪琪色影院| 性日本精品| 91碰碰| 日韩久热| 亚洲视色| 成人.在线日韩| 99久热在线精品| 五月激情婷婷播播开心| 天天躁日日躁狠狠躁日日躁2022年5月9日| 亚洲啪啪网| 综合一本道| 精品国产乱码久久久久夜深人妻| 操B五月天| 26uuu国产| 亚洲狠狠丁香婷婷香蕉| 五月天五月色婷婷综合| enecarbon-materials.comWu染请涟系Bao护@wip1688 | 激情国产五月| 久久天堂网| 超碰无码老师| 色丁香在线视频| 99热这里有精品| 超碰色婷婷| 丁香婷婷成人网站| 色亭亭影园| 99er6| 丁香色婷婷五月天| 99在线视频资源| 99热免费观看| 婷婷五月色花丁香社区| www好屌操| 欧亚成人A片一区二区| 香蕉久久国产AV一区二区| 99爱精品| 婷婷色片| 丁香五月天资源网| 五月婷丁香久久综合| 99热的无码| 婷婷在线中文字幕| 插少妇综合网| 亚洲亚洲人成综合网络| 噜综合| 可以直接看的av| 99综合网| 草草视频91| 97久久视频| 精品五月天| aⅤ79成人片| 伊人五月天在线| 婷婷五月天成人导航| 天天干夜夜谢| 蜜乳9188| 精品色色| 99色视频在线观看| 国精产品一区一区三区免费视频| 天天做天天爱天天爽在| 欧美成人精品A片免费一区99| 欧美激情五月天婷婷| 丁香五月天激情综合| 九九九精品视频免费观看| www色色com| 婷婷五月开心中文字幕色| 久久婷婷五月天激情新地址| 五月婷婷婷婷婷|