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精品免费观看| 美女美女美女三级色天天天天天| 97碰碰视频在线观看| 人妻第九页| 在线视频激情网站| 婷婷深爱五月丁香| 免费播放99性爱视频| caop在线视频| 97操操操| 综合啪啪| 天天舔天天操| 色婷婷亚洲五月天| 天天橾夜夜爽| WWW.99热| 九九热这里只有精品一| 五月人妻婷婷| 六月丁香五月亭亭| 狠狠色情婷婷| 亚洲 激情 中文| 九热视频在线精品15| 九九热123| 五月婷婷基地| 伊人久久婷婷| 涩五月婷婷| 99九九热视频| 婷婷丁香五月激情密臀av| 五月婷婷色吧!| 婷婷四月 成人 狠狠干| 丁香五月婷婷狠狠色| 六月丁香激情| 久久3p| 亚洲AV成人精品网站在线播放| 久热99| 丁香六月婷婷| 久久九九综合| www.色五月| 亚洲色另类| 香蕉久久国产AV一区二区| 五月丁香激情综合网| 五月丁香啪啪综合网| 精品一二三区视频立| 97碰在线| 变态 另类 在线| 天天爽天天干| 国产精品99久久久久久久女警| 九九99在线免费在线观看视频| 日本天天操| 99国产这里只有精品| 久久久久久综合五月婷婷| 天色综合网站| 99成人小视频| 99精品视频在线观看| 99久在线精品99re8热| 日本色狠狠| 六月丁香六月婷婷欧美| 4399亚洲视频| 99精品偷自拍| 日日操夜夜操中国无码| 伊久久婷婷| 九九热啪啪| AA久久| 亚洲AV网址| 99视频35精品视频在线观看| 在线视频色五月| 五月天婷婷三级黄| 色六月视频| 久久这里都是精品| 天天玩夜夜操| www,setingting| 久久月天堂| 亚洲第一av| 色婷丁香| 色色热| 91五月花丁香| 综激情网| 99视频这里只有久久精品| 婷婷丁香综合| 亚洲久热| 国模狼狼| 久热大香蕉| 婷丁五月| 色婷婷亚洲五月天| 激情五月综合网| 国产伦亲子伦亲子视频观看| 婷婷激情视频| 欧美毛片www| 久播影院免费观看电视剧大全最新网| 高清不卡一区| 久久久全国免费视频| 色欧美日| mmm1717.6dbm人人爱人人操| 五月婷婷五月丁香| 婷婷五月色| 婷婷5月久久综合网站| 99久久高清视频| 日韩成人AV在线播放| 狠狠搞五月天| 99视频| 26uuu精品一区二区| 四川BBB搡BBB爽爽视频| 久久九九综合| 91精品91久久久中77777久久玖玖九九| 久热这里只精品| 天天天日天天天干| 激情综合一| 99久久国产综合精品五月天喷水\| 天天网曰日曰夜夜综合永久免费| 天天搽天天射| 日本久久婷| 国产亚洲成AV人片在线观黄桃| 99久久偷拍视频| 久热这里只精品| 激情五月亚洲| 99精品偷自拍| 丁香六月婷婷开心| 99视频在线精品| 香蕉久久国产AV一区二区| 九九激情视频| 色五月丁香在线| 久久狼人天堂| 狠狠色狠狠爱| 久久婷婷综合五月趴| 色五月在线观看| 久久33视频| 婷婷丁五月| 综合久久六月| 7777国产盗摄农村女人| 开心五激情网| 欧美精品999| 九九精品婷| 综合色天天| 婷婷情色五月天| 欧美激情综合五月色丁香| 综合网啪啪| 激情丁香五月婷婷啪啪| 人妻日日日| 激情五月婷婷免费视频| 99亚州综合精品成人网| 丁香五月激情啪啪| 99热人人| 亚洲不卡| 99精品久久| 色九月婷婷丁香| 五月天电影网| 久热视频97AV在线观看| 久久这里有精品在线观看| 日本三级中国三级99人妇网站| 变态另类色图| 99热国产这里只有精品| 婷婷综合干| 丁香五月婷婷天| 亚洲激情四射| 五月婷婷综合网在线播放| 超碰免费人妻| 婷婷综合五月天| 天天干一干| 色色色色色日韩午夜激情 | 大香蕉手机视频| 久色88| 激情五月五月婷婷| 日韩欧美成人片| 欧美成人色婷婷| 先锋影音男人的天堂AV| 狠狠干无码| 色色97丁香婷婷五月天| 亚洲色网络| 四季日韩AV无码综合| 五月天婷婷五月| 丁香婷婷天堂| 韩国天天婷婷| 亚洲成人高清在线| 色五月婷婷在线| 五月婷婷丁香啪啪| 精品久久久久成人码免费动漫| 婷婷5月天激情综合| 日本天天操| 99小精品| 丁香五月激情啪啪啪| 激情六月日韩| www.色九月| 狠狠搞狠狠操| 亚洲免费看片| 欧美大片免费观看| 亚洲色频| 欧美日本VA| 九九碰九九爱97超碰| 在线五月色播| 超级碰91| 久久婷婷五月| 色高清无码视频| 丰滿爆乳一区二区三区| 国产这里只有精品| 亚洲国产色婷婷| 色色色综合网| 丁香婷婷视频一区二区| 国产激情在线| 狠狠干,狠狠操| 俺去也在线官网| 免费色婷婷| 五月婷婷丁香俺日污视频| 黄色91在线观看| 91成人看片| 九九色色| AV变态另类一区二区| 五月婷婷,狠狠操| 久久久精品99亚洲综合| 亚洲成人日韩无码精品| 亚洲成人一区| 婷婷六月视频| 婷婷视频网| www久| 蜜臀嫩草| 啊v视频在线观看| 婷婷中文字幕| 99热这里只有精品免费| 6月丁香婷婷激情| 99精品综合| 五月天操逼网| 99热在线观看这里只有精品| 狠狠色噜噜狠狠狠狠综合| 欧洲色色| 99热天堂| 久久婷婷五月天激情唯美| 大香蕉久久婷婷精品综合| 91色综合| 五月婷婷免费看| 婷婷99视频精品| AA片在线观看视频在线播放| 色播婷婷五月天| 色吧五月婷婷六月丁香| 99精品视频偷拍| 午夜不卡久久精品无码免费| 丁香五月影院| 久久婷婷六月综合综合| 五月丁香六月花| 亚洲欧美综合7777色婷婷| 国产日产亚洲系列最新| 九九99精品| 开心五月深爱婷婷| 99精品在| 久热这里这里有精品| 婷婷综合偷拍| www.seqingwuyuetian| 久久九九99| 婷婷五月图片小说网| 激情婷婷五月久久| 青青草色在线视频观看| 丁香婷婷午夜| www五月婷婷| 久热婷婷| 色99日韩| 丁香激情网| 天天情色五月天| 激情久久久| 色吊丝av中文字幕| www免费在线视频| 欧美人妻一区二区| Av九九| 天天操电影院色狼性av| 激情黄色小说五月天| 国产亚洲在线| 亚洲欧美婷婷五月色综合| 黄色一极大片| 中文在线成人| 欧美日韩成人在线免费| 色站9/| 久久一级AV| 99亚洲精品视频| 九九无码| 国产成人AV在线播放| 久久这里只有精品22| 五月色婷婷亚洲 | 少妇搡BBBB搡BBB搡毛茸茸 | 激情综合五月婷婷| 五月天婷婷丁香| 狠狠狠夜夜夜| 深爱五月激情| 色色色综合色| 婷婷五月天福利| 激情伊人五月天| 五月好婷婷| 激情五月天小说视频| 五月天成人伊人| 秋霞午夜理论| 五月婷婷六月激情网| 99色色网站| 色五月综合网| 人人人人人人人人人草| 久色中文| 欧美色爱五月天| 国产精品A片| 五月丁香六月婷婷玖玖| 日韩99色99| 伊人丁香婷婷东京| 欧美啄木乌丝袜人妻系列| 精品九九视频| 婷婷综合网| 99热只有这里有精品| 激情亚洲网| 日本操B视频| 日日狠狠久久偷偷四色综合免费| 五月丁香777| 五月天婷婷无码| WWW.17C亚洲精品| 亚洲婷婷基地| 天天日天天插| 久久婷婷原创视频| 99干99| 五月天丁香成人社| A一级操| 99er6| 操逼福利视频| 色偷偷五月天| 五月天激情综合| 国产精产国品一二三在观看| 亚洲视频另类| 丁香色六月| ,99视频久久| 内射丰满人妻| 蜘蛛女侠2003满天星免费观看| 婷婷欧美| 四川BBB搡BBB搡多人乱亂| 九九亚洲天堂| 婷婷五月天久久综合88| 秋霞午夜理论| 六月天婷婷| 亚洲精品国产成人AV在线| 五月天精品| 日本操B视频| 啪啪五月综合| 热热久久精品视频| 另类激情中文| 最近中文字幕2019视频1| 婷婷五月天最新网址| 五月天天综合| 色插综合网| 天天综合网网欲色| site:pnnrt.com| 国产99久久久国产精品免费看| 在线成人av播放| 久久久8| 深爱丁香激情| 色色五月丁香婷婷| 人操综合| 婷婷五月天最新综合你懂的 | 九九re精品视频在线观看 | 这里只有精彩视| 亚洲AV网站在线观看| 桃色五月天| 久久99草五月婷婷| 丁香六月婷婷开心| 国産精品| 91九色PORNY中文啦| 亚洲九区| 女人天堂久久| 五月天婷婷Av| 五月婷婷开心色伊人| 国产欧美va| 99久久国产宗和精品1上映| 五月丁香六月婷婷激情四射| AV 3P| 99热在线精品播放| 先锋男人91资源| 婷丁香五月天| 99爱在线精品视频免费观看| 中文字幕av亚洲| caopeng97日韩| 97人人干人人操| 东北熟女高潮99综合99| 色婷婷精品小视频| 能看的av网站| 婷婷五月天久久| 伊人AV五月婷| 男女啪啪做爰高潮无遮挡 | 国产色色色色| 色婷婷狠狠| 婷婷激情五月天小说| 五月色婷婷综合丁香精品无遮挡| 99热啪啪| 99久久久久久| 色欲五月婷婷| 久久久久98| 97婷婷五月| 激情网五月天| 激情综合4月| 五月久久婷婷丁香| 色玖玖玖| 久久 天天| 超碰操日| 婷婷五月天成人综合网| 人妻熟女一区二区AV| 人人草公开操| 久99| 久久久18| 五月天婷婷色| 婷婷伊人| 天天天干夜夜夜操| 五月天天天综合| 婷婷五月电影院| 欧美性爱日韩性爱| 天天综合色丁香| 超级碰 久久9| 深爱激情五月婷婷| 狠狠综合区| 色色色免费视频| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 五月婷婷第四色| 五月婷婷 激情按摩| 婷婷五月丁香激情色情| 久久精品99国产精品日本| 日韩欧美一区二区三区四区| 成人日韩欧美| 综合九九| 丁香五月激情啪| 五月丁香亚州综合网| 人人色AV| 丁香五月婷婷社区| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 欧美怡红院黄站| 五月天激情婷婷五月天久久| 99在线精品免费视频| 色综合久久伊伊婷婷五月| 少妇被下春药玩弄A片| 色情丁香五月天| 天天射影院| 人人人人人人人人人草| Www.sesese丁香| 天天操综合网站| 久草婷婷视频| 婷婷五月情| 久久视网36| 69精品人人人人| 婷婷色色综合激情| 色婷婷狠狠禁久久| 人人人操| 丁香婷婷综合五月天| 国产古装妇女野外A片| 五月天电影网| 五月丁香久久网| 色婷婷婷婷| 激情五月天之六月婷婷| 激情色情五月天| 天天综合 99久久婷婷| 99久久久免费| 激情久久伊人| 色综合天堂| 久久婷婷五月国产色综合激情| 开心五月天激情网| 99久久综合| 激情五月天色网站| 五月久久丁香| 国产激情综合五月久久| 婷婷狠狠五月综合| 亚洲秘 无码一区二区三区妃光/1| 91热99| 99er6| 欧洲区自拍| 免费观看亚洲AV片| 99热九九在线| 草一草avb| 久久小视频| Www,五月天| 色99视频| 91精品国产色猫| 99无码视频| 婷婷五月色網站| 丁香五月综合婷婷| 91人人看| 成人精品一区日本无码网| 天天日夜夜拍| 激情五月婷婷在线区| 亚州操逼网| 荫道BBWBBB高潮潮喷| 色五月婷婷九月| 激情综合青草| 婷婷成人AV| 午夜69成人做爰视频| 五月天激情网站| 五月婷高清视频| 天堂网啪啪| 成人片黄网站色大片免费毛片| 成年人最刺激的综合网| 五月天成人手机在线视频| 9热在线观看| 亚洲精品又粗又大又爽A片 | 五月婷色| 色噜噜五月天| 五月激情六月综合| 六月丁香婷婷在线波多 | 六月婷婷综合激情| 99热这里只有免费精品| 天天日综合网射| www.91婷婷| 91无码一起草| 黑人糟蹋人妻HD中文字幕| 天天日天天舔| 色婷婷丁香五月在线观看| 国产婷婷综合| 色波激情五月天| 91丨九色丨白浆| 亚洲欧美综合7777色亭亭| 99这里都是精品6| 九月av| 色情综合网| 免费99情趣网视频| 色色色777| 亚洲一区国产传媒| 婷婷色情五月| 91精品久| 色99xx| AA片在线观看视频在线播放| 99精品视频在线观看| 九九色大香蕉| 啪啪黄页网| 五月开心激情| 五月丁香成人视频| 99国产视频网| 很很干天天干| 五月天播播| 天天高潮夜夜爽| AAA亚洲AV| 欧美综合婷婷网| 欧美日韩AAAAA| site:xmssd.com| 免费AV播放| 99精品视频偷拍| 991精品在线视频| 98永久精品| 五月叮香啪| 五月丁香人妻| 夜夜大香蕉婷婷丁香| 美国不卡视频| 九九大香视频| 久操人妻| 色五月丁香总合网| 婷婷丁香水多多视频| 天天做天天爱天天日| 五月天婷婷激情网| 天干天天干天天天天天| 五月丁香婷婷激情| 五月婷婷开心亚州在线| 久久综合人妻| caop在线视频| 九月丁香| 秋霞av吧| 超碰97色| 97碰碰在线看视频免费| 丁香综合婷婷开心激情网| 亚洲激情亚洲激情| renrencaoav| 99热只有这里才是精品| 俺去也综合| 丁香五月人妻| 五月天成人免费视频| 亚洲精品久久久久久久久久吃药 | 亚洲狠9| 色色网91| 99 r热| 五月丁香啪啪激情| 天天插AV丝袜中| 五月激情综合网| 超碰久热| 婷婷婷婷婷婷婷婷婷婷丁香| 极品另类| 一区二区三区四区五区| 婷婷五月天在线一区| 玖玖五月| 桃色成人网| 岛囯综合激情网| 手机旧版看人妻1025| 玖玖国产视频一区| 涩五月丁香| 丁香五月天婷婷激情| 中文字幕不卡+婷婷五月| 午夜一区| 亚洲热久| 九九视频这里只有精品在线播放| 深爱激情69热| 这里只有精品免费视频| H亚洲| 激情99| 99热久久最新地址| 91碰超| 风流少妇A片一区二区蜜桃| 国内9l视频自拍老熟女九色| 99久久久免费| 亚洲色婷婷视频| 碰碰女| 精品久久久久成人码免费动漫 | 五月丁香婷婷潮喷中文字幕| 成人看片网站| 五月婷婷精品视频| 欧美日韩AAAAA| 色色亚洲五月天| www.激情| 九九re精品视频在线观看 | 亚洲色情在线| 色综合久久久久| 影音先锋综合网| 丁香五月天色| 秋霞AV淫| www.久操| 久久五月天激情视频| 色5月婷婷色| 日本在线观看99| 婷婷丁香久久| 99精品在线观看视频| www.激情| 精品人人操| 夜夜操,天天撸| 激情婷婷五月天| 色噜噜狠狠色综合成人99| 婷婷涩五月天综合| 99热| 超碰在线成人| 国产激情综合五月久久| 97久久综合网| 亚洲精99| 激情图片五月天| 99久精品| 五月丁香婷婷成人网| 狠狠CAO日日穞夜夜穞AV | 久久亚洲网| 久99久视频| 日韩操女| 五月丁香婷婷五月| 无码碰碰| 五月丁香六月停停| 噼里啪啦完整版中文在线观看| 超碰超碰在线| 国产精品色婷婷99久久精品| 五月天大香蕉AV| 色噜噜在线| 国产午夜精品一区二区三区四区| 亚洲色婷婷色| 色五月婷婷五月天| 99色婷婷| 91久久久久久久| 六月婷婷综合激情| 成人网在线视频| 97操男人的天堂| 99青青草| 婷婷五月综合免费在线| 五月丁香六月婷婷综合| 丁香五月色情av| 五月五丁香婷婷| 亚洲精品99| 激情综合自拍五月婷婷色五月| 久操婷婷| 性色欲情 网站| 色色五月天婷婷| 九九热中文| 黄色五月婷婷| 91chinese在线| 操操啪| 丁香六月激情综合| 91精品丝袜久久久久久| 精品人妻伦| 五月情婷婷五月| 色五月婷婷基地| 天天综合网、天天综合色 | 亚洲三A| 久热中文字幕在线线观看| 日韩色色色色| 五月婷婷六月少妇激情| 亚洲 欧洲 国产 伦综合| 天天摸天天透天天舔| 丁香五月综合久久| 啊V视频在线观看| 激情综合5| 丁香五月影院| 狠狠色丁香久久婷婷综合五月| 97婷婷五月| 老司机日日夜夜青草| 欧美色色色色色色| 久久538| 另类婷婷丁香| 久久综合55| 五月丁香六月激情| 日本综合久| 亚洲A片成人无码久久精品青桔| 去干网最新版本亚洲版| 六月丁香成人| 99精品色| 热99这里只有精品视频| 久99久视频精选| 久久久久久9| 男人天堂伊人五月丁香| 婷婷综合国产| 久久久999精品| 婷婷六月色丁香视频在线观看| 激情五月天。| 亚洲AV中文在线| 欧美色骚婷婷五月天| 五月天小说激情| 26UUU欧美激情一区二区| 丁香五月天偷拍| av操B网站| 中文字幕av久久爽一区| 青青五月天婷婷| 美欧成人视频| 国产免费一区二区在线A片视频| 精品无码视频| 99九九久久| 五月久久丁香| 亚洲综合色色色| 婷婷五月天激情影片| 久久色五月天| 熟妇内谢69XXXXXA片| 色综合色色| 久久色在线视频| 99视频啪啪| 泰州成人视频| 五月亚洲| 狠狠艹狠狠艹| 91丨九色|PRNY熟妇| 日本99热| 一起草无码| 天天干天天 亚洲| 站长推荐无码播放| 丁香深五月婷婷| 久久久久久久人妻| 九九成人| 99惹精品视频| 91精品综合久久久久久五月丁香| 丁香五月婷婷影视先锋| 五月激情小说| 99热9999| 婷婷十月激情综合网| 五月亭亭六月色| 黑人熟妇一区二区三区| 偷拍丁香九月激情| 天天干一干| 五月婷婷成人| 青草青青草| 五月丁香六月婷婷综合免| 婷婷少妇激情| Www.狠狠| 久久精品熟女亚洲AV麻豆| 五月天伊人网| 久久久香| 激情五月婷婷五月丁香五月开心五月| 五月四色色| 轮奸综合网| 97色色色| 91九色中文| 亚洲123区高清入口| 久久久亚洲精品一区二区三区浴池 | 五月丁香婷婷AV天堂| 超碰操网| 先锋资源91| 激情五月天情色| 婷婷丁香日韩五月| 一本道在线电影| 亚洲五月丁香综合网| 欧美日韩成人在线网站| 丁香五月婷婷综合激情啪啪啪啪啪啪啪| 日本不卡高字幕在线2019| 婷婷香五月天| 丁香九月婷| 九九人人精品| 九九综合色综合| 久久九精品| 五月婷婷亚洲色视频| 激情五月婷婷丁香综合网| 九月婷婷丁香| 久久这里只有精品网| 五月天六月天| 五月激情开心婷婷| 五月色情网| 五月婷免费视频久久久| 加勒比色色| 天天做天天双| 久久五月网| 亚洲 在线 性爱 | 亚州在线中文字幕| 色色欧美色色| 琪琪色综合网站| 熟惀91九色在线| 日韩av一区二区在线/日产精品久久久| 韩国真做片在线观看| 99精品偷自拍| 婷婷丁香91综合| 97日本操| 免费看片操逼| 久久99久久99精品免观看粉嫩| 人人综合久| 色玖玖综合网| 天天性视频| 婷婷九月激情| 六月婷婷激情小说网| 亚洲丁香网| 天天搞天天色综合| 激情五月色婷婷| 99久在线观看| 天天操夜夜操| 婷婷色色综合| 夜夜AVV| av在线激情| 伊人久久婷婷| 丁香五月婷婷姐| 五月天精品综合在线| 五月婷婷中文字幕| 91色在线/日韩| 狠狠干综合| 亚洲偷| 91xxxx九色| 伊人婷婷大香蕉| xxxx五月激情| 久久性爱视频久久性爱视频| 久狠狠| 丁香五月天婷婷激情| 国产真实乱对白精彩| 91精品久| 99久久久久| 人妻在线中文字幕久久| 开心网五月色婷婷| 91丨九色丨大屁股| 色五天综合| 天堂色色色| 亚洲美女婷婷五月天| 色婷五月天网站| 色色色婷婷| 99re在线观看| 五月激情久久| a色色色色色| 天天舔日日肏夜夜爽| 久久久无码精品成人A片小说| 五月丁香色| 亚洲xx在线| 大香蕉天堂| 无码人妻一区二区三区四区| 五月丁香六月婷婷网| 天天干电影| 1024久婷| 亚洲丁香婷婷五月天综合色| 色亚洲欧洲| 欧美激情综合色综合啪啪五月| 色99久草在线| 玖玖资源站国产| 五月丁香花婷婷玉莉AV| 久久xxxx| 丁香五月婷婷综合激情啪啪啪| 久热大香蕉| 婷婷丁香色五月久久88| 欧美日韩成人| se婷97| 七七九九色色| 久久色9| 五月婷久久久久综合| 婷婷色播婷婷| 开心激情网在线| 婷婷五月天影院| 97干婷婷| 色五月视频,小说| 五月激情六月综合| av在线观看网址| 噜噜噜噜噜日本视频| 五月综合丁香婷婷| 婷婷中文综合网| 日韩抽插操逼| 91色婷婷综合久久中文字幕二区| 国产欧美大香蕉一区| 婷婷五月天受日本法律保护| 日日夜夜干| 日本三级第一页| 五月天免费色| 久久九九综合| 九九综舍久久| 色色色色av色色色色| 国产乱妇乱子在线播视频播放网站| 久婷| 久青草影院| 91九色白丝| AV天堂淫乩| 99精品久久| 色五月婷婷操逼| 五月六月伦理| Aaa久久| 五月情综合| 99久久99九九99九九九| 丁香大香蕉| 五月天激情小说| 午夜九九九九九九| 婷婷视频在线| 国内自拍97在线| 婷婷五月免费观看| 色欲天天综合网| 97干在线| 久久婷五月天| 久久99精品九九久久久婷婷| 性高潮久久久久久-九九九九九九九九九九热-成人AV | 丁香五月天欧洲在线| 91一起操| 99日本黄站| www.久久久.com| 丁香五月婷婷偷拍| 亚洲va国产va天堂va综合va| 久久综合五月婷婷| 九九在线这里只有精品视频| 99天堂在线观看免费视频| 欧美综合在线五月天色婷婷| 中字幕视频在线永久在线观看免费 | 色五月琪琪| 8区视频在线| 4399在线日本A片| 在线观看免费狠狠色丁香香综合| 五月丁香六月婷婷姐| 色色影院黄大片| 久久人妻精品| 激情视频91| 久久五月激情| 激情综合色网| 日本丁香五月| 99热在线里有精品| 91打屁股免费看| 思思热再线视频| 97成人丁香| 日韩无码色色| 久热超碰91| 久久综合干| 亚洲九九夜夜| 欧美大肥婆大肥BBBBB| 婷婷五月丁香在线观看| AV成人在线网站| 草逼大片| 2015超碰| 天天干 夜夜爽| 九九免费视频在线| 久久综合婷婷激情| 狠狠干五月丁香综合网| 婷婷九月在线| 色色色99| 亚洲婷婷开心五月| 婷婷五月天av小说| 国产激情综合五月久久| 国产97色在线| 丁香五月成人| 五月天狠狠干| 91人人操人人看| Av九九| 婷婷AV丁香| 影音先锋男人av资源站| 开心婷婷五月| 婷婷激情综合网| 午夜不卡久久精品无码免费| 9999色色色色| 久久婷婷五月综合啪| 五月综合久久| 综合五月天天天天天五月| 99啪视频在线观看| 97婷婷色| 日本噜噜色网| 人人操人人干AV| 婷婷五月婷婷| 狠狠干思思热| 婷婷综合亚洲| 国产亚洲精品久久久久久久久动漫| 五月婷婷丁香在线| 99激情网| 69凹凸成人综合网| 91青娱乐青青草| 色综合播放| 久热爱大香蕉在线蜜臀悦色| 99热免| 狠狠干思思热| 五月丁香色色网| a性生活久久无| 4399在线日本A片| 天堂婷婷丁香六月网| 亚洲午夜电影| 大色鬼综合| 91人人操人人爱| 亚洲五月丁| 六月久久婷婷| 婷婷五月丁香激情| 成人版视频在线观看| 五月激情视频网| 色九月婷婷丁香| 最近免费中文字幕大全高清大全1 色狠狠色噜噜AV天堂五区 | 亚洲久久婷婷| 99九九精品| 国内自拍1区| 五月天激情图片| 久久精热| 色婷婷视频| 丝袜激情网| 热久综合| 亚洲人妻av| 婷婷六月天| 婷婷激情五月综合在线视频| 久久人人看| 玖玖综合玖玖| 亚洲精品白浆高清久久久久久| 棕合影院色色| 人妻精品久久久久久久| 美女亚洲五月丁香| 丁香久久综合| 婷婷五月激情在线| 综合婷婷| 97操操操| 99爱精品| 日日舔夜夜操| 丁香五月婷婷色五月| 91seav| 成人AV综合在线| 99视频这里有精品| 色色色色色色网| 激情图片婷婷丁香五月| 五月丁香另类网| 亚洲激情丁香五月天色| 婷婷色色丁香五月天| 男人的天堂99| 亚洲12p| 97干在线| 99视频内射三四| 色五月偷偷| 直接看的AV| 九九机热| 丁香五月综合图片在线观看| 亚洲综人色综网| 久久 婷婷 五月天| 亚洲无aV在线中文字幕| 激情婷婷护士激情| 91人久| 色婷婷成人做爰A片免费看网站| 91丨九色丨大屁股| 五月停停色色丁香| 婷婷六月综合基地| 丁香五月婷婷日本| 亚洲99热| 深爱激情69热| 丁香五月激情无码视频| 99热这里精| 五月婷婷亚洲综合网| 开心五月婷婷五月| 久久之人妻| 久久性爱视频| 丁香五月欧美激情| 婷婷激情在线| 久久伦乱| 96精品久久久久久久久| 婷婷久久精品| 亚洲免费av在线| 婷婷大乡焦噜噜| 欧美99视频| AV网站免费在线| 五月婷婷六月丁香综合| 成人版视频在线观看| A在线观看| 99九九在线精品热动漫| 9191avse| 日韩九区| 丁香五月天在线观看视频| 五月丁香六月久久| 欧美成人无码高清一区二区三区| 天天爽爽日日做做| 激情深爱综合| 色狠狠伊人久久五月丁香| 天天综合五月| 亚洲激情免费视频| 老司机日日夜夜青草| 五月激情婷婷国产精品久久久久久| 久久伊人五月天| 看片视频在线免费日产在线看| 亚洲色婷婷| 色噜噜狠狠色综合成人网| 久操无码| 97人人超| 婷婷丁香五月天综合在线日韩| 天天日天天肏天天奸| 狠狠色噜噜狠狠狠777奇米| 色444综合网| 97久人人| 日本色色网| 丁香婷婷综合五月天| 久久婷婷操| 日日操日日撸| 97人人操人人爽| 国产毛片精品一区二区色欲黄A片| 黑人巨粗进入警花疼哭A片| 亚洲色99综合天堂| 九九色院| 这里只有精品视频视频在线观看| 狠狠色官网| 色五狠狠| 亚洲第一成人无码A片| 久操大香蕉| 性爱激情久久| 热99精品视频| 色色色视频免费无码 | 久操操| 99人妻碰碰久久久禁片| 人人操人人看97干| 任你爽免费视频| 色播播之激情五月婷婷| 五月天,激情四射,婷婷频道| 97碰超级人人看| AA片在线观看视频在线播放| 激情婷婷视频在线| 五月天丁香六月综合| www.五月婷婷久久.com| AV人人操| 另类激情综合| 久久婷婷五月综合色和| AAA久久久| 色青五月天| 激情六月天婷婷| 99精品视频在线观看| 99热99草97| www.91.com处女在线直播| 久久丁香五月婷| www.久久爱| 人妻视频一区而且二区| 在线中文字幕视频| 亚洲精品国产精品乱码不99| 五月天色综合| www.91av.com| 五月丁香婷婷基地| 欧美综合激情五月天| 六月婷婷综合| 另类国产欧美视频| 夜夜爽天天| 少妇人妻人伦A片| 中国女人内射6XXXXX| www一起操| 婷婷五月天论坛| 久热91| 大香蕉视频婷婷| 爱iii做iiii日日| 丁香六月AV| 亚洲人成色A777777在线观看| 中文字幕按摩做爰| 婷婷综合亚洲| 日日舔夜夜操| 五月天激情视频| 亚洲性视频| 丁香五月激情婷婷| 播播网色播播| 激情五月色婷婷| 人人人舔人人人操人人人摸人人人97 | 香焦网五月天| 激情色五月天| 婷婷五月天成人娱乐| 色婷婷在线视频| 色五月婷婷7777| 婷婷 久综合| 色婷婷88| 日本色色影院| 五月丁香狠狠地噜噜噜噜| 五月婷婷啪啪| 婷婷六月天天| 国产色色色色| 天天揷综合网| 国产亚洲精品人人| 99ri在线| 五月丁香网站| www.henhengan| 精品人妻一区二区三区在| WWW,激情五月天,COM| 欧美天堂久久| www.色色com| 五月婷网站| 97亚洲视频在线| 天天日夜夜高潮| 激情五月天色色| 六月婷婷综合久久| 六月色播| www.wuyuetian啪啪| www.国产亚洲69ty.久久久久久久久久久久 | 日本高清不卡免费一区二区三区| 九九热10| 99九九这里有免费视频| 亚洲精品色色| 91丨九色丨熟女高潮| 九九热在线99| 五月天精品| 婷婷五月在线| 天天操综合网站| 天天色2017| 色婷婷狠狠色| 久久五月婷婷综合网| 亚洲狠狠狠色婷婷综合激情久久久| 六月婷婷五月天| 色99网| 久久综合性| 欧美精品999| 五月色综合| 天天日天天添| 青青草五月天| 亚洲精品va| 丁香色五月 97干| 丁香六月婷婷开心| 亚洲色综合| 电影蜘蛛女| 九九热视频在线观看| 五月婷婷狠天天色综合| 天天色粽合合合合合合合| 五月婷婷亚洲天堂激情在线| 九九色热| 丁香五月婷婷色五月| 久久在线视频免费观看| 森林影视大全,最好看的2019年视频 | 99热日本| 婷婷的五月天另类视频| 丁香婷婷色五月天| 色天使久久综合| 天天婷婷综合亚洲亚洲| av最新在线| 日韩色久| 婷婷偷拍网| 99国产精品久久久久久久久久久| 五月婷婷五月天天| 91a片爽| 久久激情五月婷婷| 狼人狠狠操| 丁香六月激情| 婷婷五月激情丁香激情| 99综合97| 五月丁香六月婷婷色日| 91黄操| 亚洲情欲| 六月丁香射婷婷欧美色图片| 在线观看免费观看在线9久| 日韩精品二三区| 9月色婷婷| 婷婷丁香六月| 另类国产综合| 五月天色色色色色| 丁香九月综合| 丁香五月婷婷啪| 激情98色婷婷五| 五月天亚洲综合网| 99色综合网| 欧美槡BBBB槡BBB少妇| 深爱五月婷| 国产免费一区二区三州老师F1F1| 五月综合视频| 五月婷久久在线| 人妻视频在线| 丁香五月综合| 一级操逼内射在线视频| 色吧婷婷| 婷婷久久五月天| 五月婷婷综合久久| 中文字幕在线不卡| 国产精品久久久爽爽爽麻豆色哟哟| 99热这里只有精品最新网址| 五月婷婷深深爱| 少妇熟女视频一区二区三区| 深爱激情婷| 99综合网| 噢美99| 婷婷五月激情图片| a v色婷婷| 五月天久久网站| 丰满少妇乱A片无码| 色婷婷婷婷| 久久这里在精品视频| 婷婷之玖玖| 五月天色五月| 四月婷婷五月丁香| 色婷婷丁香五月观看| 99热在线看片| 99免费超碰在线|