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

ARTICLE DETAIL

資訊詳情

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

REA模型實(shí)戰(zhàn):用事件驅(qū)動(dòng)解決業(yè)務(wù)與財(cái)務(wù)數(shù)據(jù)不一致

REA模型實(shí)戰(zhàn):用事件驅(qū)動(dòng)解決業(yè)務(wù)與財(cái)務(wù)數(shù)據(jù)不一致 去年年中我在梳理模擬項(xiàng)目X的訂單履約鏈路時(shí)被一個(gè)簡單的問題卡住了財(cái)務(wù)說賬上還有120萬應(yīng)收賬款業(yè)務(wù)說早該催款的只有80萬兩邊數(shù)字對不上。系統(tǒng)里明明都用了同一套訂單數(shù)據(jù)為什么算出來的結(jié)果會(huì)差這么多追下去才發(fā)現(xiàn)癥結(jié)出在底層數(shù)據(jù)模型上。財(cái)務(wù)模塊延續(xù)的是復(fù)式記賬那一套——憑證、科目、借、貸、余額。每一筆訂單都要經(jīng)過憑證模板轉(zhuǎn)換成會(huì)計(jì)分錄再由總賬系統(tǒng)匯總成余額。業(yè)務(wù)側(cè)的數(shù)據(jù)模型則圍繞訂單、發(fā)貨單、回款單這些業(yè)務(wù)單據(jù)。兩套模型之間的橋梁是幾十個(gè)字段映射和轉(zhuǎn)換規(guī)則。只要中間任何一張單據(jù)漏配、錯(cuò)配財(cái)務(wù)賬與業(yè)務(wù)臺(tái)賬就會(huì)悄悄分叉。這不是某一家企業(yè)特有的問題而是傳統(tǒng)會(huì)計(jì)信息系統(tǒng)的結(jié)構(gòu)性毛病。復(fù)式記賬法誕生于商業(yè)貿(mào)易靠紙質(zhì)憑證的年代它擅長的是記錄金額的增減而不是描述業(yè)務(wù)發(fā)生了什么。借貸分錄天然地站在結(jié)果的視角站在賬戶的視角站在一種已經(jīng)被抽象過、壓縮過的狀態(tài)上。它不關(guān)心訂單是幾點(diǎn)幾分被確認(rèn)、貨物由誰揀選、物流簽收發(fā)生在哪個(gè)環(huán)節(jié)而恰恰是這些過程信息構(gòu)成了數(shù)字化業(yè)務(wù)系統(tǒng)的核心。正因如此我才開始認(rèn)真研究rea。rea的全稱是Resource-Event-Agent最早是會(huì)計(jì)信息系統(tǒng)領(lǐng)域的研究者提出的一個(gè)企業(yè)建模框架后來被大量用在業(yè)務(wù)流程建模、領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)甚至事件溯源架構(gòu)中。它主張用資源、事件、參與者三要素來描述業(yè)務(wù)并認(rèn)為會(huì)計(jì)賬簿中的數(shù)字應(yīng)該是這套業(yè)務(wù)模型的自然派生結(jié)果而不是需要另起爐灶單獨(dú)維護(hù)的一套數(shù)據(jù)。這篇文章會(huì)給你完整展示我如何用rea模型梳理一條從銷售到收款的全流程包括底層表結(jié)構(gòu)設(shè)計(jì)、與DDD和事件溯源的映射關(guān)系以及落地時(shí)踩過的四個(gè)坑。如果你也正在被業(yè)務(wù)數(shù)據(jù)與財(cái)務(wù)數(shù)據(jù)不一致折磨或者想在下一個(gè)項(xiàng)目里嘗試事件溯源架構(gòu)這篇文章應(yīng)該能幫你省下不少摸索時(shí)間。1. 數(shù)據(jù)分叉背后借貸式記賬為何拖累了數(shù)字化業(yè)務(wù)1.1 財(cái)務(wù)模塊與業(yè)務(wù)臺(tái)賬各說各話我在模擬項(xiàng)目X里最先碰到的矛盾其實(shí)是很多企業(yè)系統(tǒng)的共性困境。訂單、發(fā)貨、回款在業(yè)務(wù)庫中都是標(biāo)準(zhǔn)的結(jié)構(gòu)化數(shù)據(jù)每一筆都有時(shí)間戳、有狀態(tài)、有操作人可財(cái)務(wù)模塊不看這些它只認(rèn)憑證。系統(tǒng)里有一個(gè)憑證生成器把每一個(gè)業(yè)務(wù)動(dòng)作翻譯成借xx科目、貸xx科目再匯總進(jìn)總賬。問題就出在這個(gè)翻譯層上——翻譯規(guī)則一旦不完整業(yè)務(wù)側(cè)和財(cái)務(wù)側(cè)就再也對不上。比如一張銷售訂單在業(yè)務(wù)側(cè)已經(jīng)發(fā)貨但憑證生成器因?yàn)槟硞€(gè)狀態(tài)位沒更新沒有生成對應(yīng)的收入確認(rèn)憑證。此時(shí)業(yè)務(wù)臺(tái)賬顯示已發(fā)貨未回款財(cái)務(wù)賬上卻完全沒有這筆應(yīng)收記錄。等到月底對賬時(shí)兩邊就差出一大截。你可以在事后補(bǔ)一個(gè)批處理任務(wù)去修復(fù)但每次修復(fù)都是打補(bǔ)丁補(bǔ)丁越打越多系統(tǒng)越來越難維護(hù)。這種困境的根源是數(shù)據(jù)模型的方向性錯(cuò)誤。借貸記賬法和業(yè)務(wù)事件流是兩套完全不同的抽象層級(jí)。前者把業(yè)務(wù)動(dòng)作壓縮成借貸金額這一種表達(dá)方式后者需要保留業(yè)務(wù)動(dòng)作的完整語義——誰、何時(shí)、做了什么、改變了什么。當(dāng)你用一套高度壓縮的數(shù)據(jù)結(jié)構(gòu)去承載需要全細(xì)節(jié)的業(yè)務(wù)邏輯時(shí)摩擦是必然的。1.2 rea是另一種組織業(yè)務(wù)事實(shí)的方式rea給我的第一個(gè)啟發(fā)就是它換了提問方式。傳統(tǒng)模型問的是這筆業(yè)務(wù)該記在哪個(gè)科目、該借還是該貸rea問的是發(fā)生了什么事件、涉及什么資源、由誰參與。這三個(gè)問題看起來樸素建立出來的數(shù)據(jù)模型卻完全不一樣。它不預(yù)設(shè)賬戶這個(gè)抽象概念而是把業(yè)務(wù)事實(shí)本身作為建模的起點(diǎn)。會(huì)計(jì)意義上的借和貸在rea里不存在取而代之的是資源流入和資源流出而流入流出后得到的狀態(tài)——比如應(yīng)收余額、庫存數(shù)量——全部可以由事件推導(dǎo)出來。兩個(gè)模式放在一起對比會(huì)更直觀視角傳統(tǒng)借貸模式rea事件模式記錄對象賬戶、憑證、科目資源、事件、參與者核心問題余額是多少發(fā)生了什么時(shí)間特性期末匯總、過賬結(jié)轉(zhuǎn)事件發(fā)生時(shí)記錄余額產(chǎn)生方式借貸匯總事件流投影業(yè)務(wù)追溯憑證到流水多跳映射事件天然關(guān)聯(lián)表格里最后一行是我感觸最深的地方。傳統(tǒng)架構(gòu)要做一筆應(yīng)收追溯通常是從科目余額出發(fā)找到憑證從憑證找到業(yè)務(wù)單據(jù)中間還可能經(jīng)過幾張結(jié)轉(zhuǎn)表rea模型則可以直接定位到哪一筆銷售事件產(chǎn)生了這筆應(yīng)收哪一筆收款事件核銷了它。這種追溯能力對數(shù)字化業(yè)務(wù)太重要了幾乎決定了一個(gè)系統(tǒng)能否被長期維護(hù)。2. 拆開rea資源、事件、參與者分別回答什么問題2.1 資源不是所有資產(chǎn)都能進(jìn)模型很多人第一次接觸rea時(shí)最常犯的錯(cuò)誤就是把資源等同于會(huì)計(jì)科目或資產(chǎn)。實(shí)際上rea中的資源必須滿足兩個(gè)條件第一它必須處于企業(yè)的控制范圍內(nèi)或交換范圍內(nèi)第二它必須能夠在經(jīng)濟(jì)事件中被消耗、轉(zhuǎn)化、轉(zhuǎn)移或創(chuàng)造。舉個(gè)例子庫存商品是資源因?yàn)殇N售事件會(huì)讓它減少采購事件會(huì)讓它增加現(xiàn)金和銀行存款是資源因?yàn)槭湛钍录?huì)讓它增加付款事件會(huì)讓它減少。但廠房、設(shè)備、商標(biāo)權(quán)這些在企業(yè)日常經(jīng)營活動(dòng)建模中往往不會(huì)被當(dāng)作rea資源——它們不參與頻繁的業(yè)務(wù)事件流轉(zhuǎn)更多是作為一個(gè)固定的經(jīng)營前提存在建模時(shí)把注意力放在它們服務(wù)的那些業(yè)務(wù)事件上即可。為了便于理解我把資源類比成水庫里的水位。水位本身是靜態(tài)的存量你不關(guān)心它的絕對值而是關(guān)心它在什么時(shí)間點(diǎn)因?yàn)槭裁词录l(fā)生了多少變化。這個(gè)視角和傳統(tǒng)庫存管理不一樣傳統(tǒng)庫存管理一上來就要正確的當(dāng)前庫存量而rea更關(guān)心庫存量是如何一步步變成現(xiàn)在這個(gè)值的。2.2 事件只看直接改變資源狀態(tài)的動(dòng)作如果說資源是水庫的水位那么事件就是打開閥門或關(guān)上閥門的動(dòng)作它是整個(gè)rea模型的樞紐。rea對事件的定義有一套嚴(yán)格但不難把握的標(biāo)準(zhǔn)一個(gè)事件必須在一個(gè)明確的時(shí)間點(diǎn)發(fā)生必須能被記錄必須與至少一個(gè)參與者相關(guān)并且必須直接改變一個(gè)或多個(gè)資源的狀態(tài)。注意這里我特意強(qiáng)調(diào)直接。這個(gè)直接標(biāo)準(zhǔn)對建模粒度非常關(guān)鍵?;氐戒N售場景中客戶點(diǎn)擊了商品詳情頁就不算事件因?yàn)辄c(diǎn)擊動(dòng)作沒有直接改變?nèi)魏问芸刭Y源的狀態(tài)。而銷售訂單被確認(rèn)就算事件因?yàn)樗苯幼寧齑嫔唐窂目墒蹱顟B(tài)變成預(yù)占狀態(tài)或者說資源的狀態(tài)發(fā)生了變化。我把這個(gè)判斷標(biāo)準(zhǔn)總結(jié)成一個(gè)輔助公式如果一個(gè)活動(dòng)既不增加、不減少、不轉(zhuǎn)化、也不轉(zhuǎn)移任何資源那它就不應(yīng)該出現(xiàn)在rea模型中。用這個(gè)標(biāo)準(zhǔn)去評(píng)審建模草稿通常能很快發(fā)現(xiàn)哪些地方塞進(jìn)了太多偽事件。2.3 參與者內(nèi)部與外部劃分以及職責(zé)分離參與者是整個(gè)模型中容易被忽略但同樣重要的一環(huán)因?yàn)橘Y源的狀態(tài)變化從來不是自動(dòng)發(fā)生的背后必須有人的決策或行動(dòng)。rea把參與者分成兩類內(nèi)部參與者和外部參與者。內(nèi)部參與者是企業(yè)內(nèi)部的角色例如銷售員、倉管員、財(cái)務(wù)人員外部參與者是企業(yè)邊界之外的角色例如客戶、供應(yīng)商、物流承運(yùn)商。這種區(qū)分在建模時(shí)非常有用因?yàn)樗鼘?yīng)了企業(yè)風(fēng)險(xiǎn)管理中的職責(zé)分離原則。一個(gè)合格的事件模型應(yīng)當(dāng)能回答這個(gè)事件由哪個(gè)內(nèi)部參與者觸發(fā)、對哪個(gè)外部參與者生效這天然支持了審批流、控制流的設(shè)計(jì)。比如銷售員錄入訂單、倉庫員審核出庫、財(cái)務(wù)人員確認(rèn)收款三個(gè)步驟在三類參與者之間形成了內(nèi)部控制鏈路。我曾經(jīng)在一個(gè)項(xiàng)目里見過反面教材業(yè)務(wù)單據(jù)上只有一個(gè)操作人字段客戶和員工統(tǒng)統(tǒng)往里面塞。這樣做導(dǎo)致審計(jì)時(shí)完全無法回答是誰代表公司、是誰代表客戶每一個(gè)關(guān)鍵操作的責(zé)任邊界都是模糊的。rea的參與者劃分能強(qiáng)制你把這個(gè)邊界建立起來這對系統(tǒng)合規(guī)性是非常大的加分。2.4 三類關(guān)系把三要素編織成業(yè)務(wù)網(wǎng)絡(luò)光有三類要素還不夠rea模型靠三類語義關(guān)系把它們串起來存量-流量關(guān)系Resource-Event描述資源與事件之間的增減關(guān)系。一個(gè)事件可以使資源流入也可以使資源流出甚至可以同時(shí)流入流出例如調(diào)撥事件。觸發(fā)關(guān)系Event-Event描述事件之間的因果順序。如銷售訂單確認(rèn)觸發(fā)出庫發(fā)貨出庫發(fā)貨觸發(fā)收款登記。控制關(guān)系Event-Agent描述參與者與事件之間的責(zé)任關(guān)系。內(nèi)部參與者對事件負(fù)執(zhí)行責(zé)任外部參與者則作為相對方。這三類關(guān)系就是rea的語法。構(gòu)建模型時(shí)我基本就是圍繞這三類關(guān)系反復(fù)自問這個(gè)事件改變了什么資源它由誰觸發(fā)、影響了誰它的前序事件和后續(xù)事件分別是什么一旦能順暢回答這三個(gè)問題模型的雛形就出來了。3. 實(shí)操演練從銷售訂單到回款的一條完整事件鏈3.1 劃清業(yè)務(wù)邊界列出事件候選為了讓討論不懸空我設(shè)定一個(gè)具體的演練對象某零售企業(yè)的訂單到收款流程。范圍從客戶提交訂單開始到企業(yè)收到貨款、完成資金核銷為止。在動(dòng)手之前我習(xí)慣先列一條候選活動(dòng)清單。這里不用管粒度對不對凡是流程中肉眼可見的動(dòng)作都先寫下來客戶下單、銷售確認(rèn)訂單、倉庫揀貨并出庫、物流配送、客戶簽收、客戶付款、財(cái)務(wù)核銷。這七個(gè)動(dòng)作是我準(zhǔn)備放進(jìn)模型的事件候選。劃定邊界這件事看似簡單其實(shí)直接影響建模質(zhì)量。我曾經(jīng)見過有人把客戶發(fā)起退貨申請也包括進(jìn)訂單到收款的邊界里導(dǎo)致事件鏈變得很復(fù)雜。邊界清晰之后建模的最大價(jià)值反而體現(xiàn)在后續(xù)可擴(kuò)展性上——如果以后要加退貨流程只需要在events表里增加對應(yīng)的事件類型而不用推翻已有的表結(jié)構(gòu)。3.2 用資源狀態(tài)變化過濾事件候選接下來用上一章那個(gè)直接改變資源狀態(tài)的標(biāo)準(zhǔn)逐個(gè)過濾候選動(dòng)作。候選活動(dòng)是否直接改變受控資源狀態(tài)是否進(jìn)入模型說明客戶提交訂單否否待確認(rèn)狀態(tài)資源未變只是草案銷售確認(rèn)訂單是是庫存從可售變?yōu)轭A(yù)占倉庫揀貨并出庫是是庫存實(shí)物數(shù)量減少物流配送否否配送過程中貨物仍歸企業(yè)狀態(tài)未變客戶簽收是是物權(quán)轉(zhuǎn)移企業(yè)失去商品控制客戶付款是是銀行存款增加應(yīng)收債權(quán)減少財(cái)務(wù)核銷否否匹配動(dòng)作資源本身無變化經(jīng)過篩選真正進(jìn)入rea模型的事件是四個(gè)訂單確認(rèn)、出庫發(fā)貨、客戶簽收、收款到賬。這個(gè)篩選過程經(jīng)常會(huì)顛覆直覺。我在實(shí)際項(xiàng)目里發(fā)現(xiàn)大多數(shù)團(tuán)隊(duì)建模不一致根源就在于把一些動(dòng)作和事件混為一談。比如把物流配送單獨(dú)建模成事件會(huì)讓后續(xù)的聚合邊界變得很別扭。3.3 補(bǔ)齊參與者和資源事件-資源-參與者對照事件確定后資源與參與者就很好找了。我把四個(gè)事件的信息補(bǔ)成一個(gè)對照表這是建模過程中最常用來評(píng)審的產(chǎn)物。事件涉及資源外部參與者內(nèi)部參與者訂單確認(rèn)庫存商品在庫可售變預(yù)占客戶銷售員出庫發(fā)貨庫存商品在庫減少承運(yùn)人倉庫員客戶簽收在途商品所有權(quán)轉(zhuǎn)移客戶倉庫員收款到賬銀行存款增加、應(yīng)收債權(quán)減少客戶財(cái)務(wù)人員這張表一出來整個(gè)流程的語義就清晰了。每個(gè)事件都在資源層面有明確影響、在參與人層面有明確責(zé)任體。后續(xù)無論是開發(fā)接口、設(shè)計(jì)權(quán)限還是做審計(jì)追溯都能直接從這張表出發(fā)。這里有一個(gè)細(xì)節(jié)需要注意應(yīng)收債權(quán)在這個(gè)表里出現(xiàn)在收款到賬事件中但它并不是一個(gè)獨(dú)立的資源實(shí)體而是訂單確認(rèn)和收款到賬兩個(gè)事件共同形成的派生狀態(tài)。上表為了表達(dá)方便寫了減少實(shí)際建模時(shí)不要把它作為資源落表。3.4 落成四張核心表SQL建表與索引思路在很多文本中rea被描述為純概念模型但落到工程上完全可行。我在模擬項(xiàng)目X里就是用四張核心表實(shí)現(xiàn)了這套模型agents表參與者檔案區(qū)分內(nèi)部/外部。resources表資源檔案例如庫存商品、銀行存款。events表核心事件表記錄事件類型、發(fā)生時(shí)間、參與的內(nèi)部與外部參與者。event_resource_links表事件與資源的關(guān)聯(lián)表記錄方向流入/流出和數(shù)量金額。一個(gè)典型的表結(jié)構(gòu)定義大概是這樣以通用SQL風(fēng)格展示CREATE TABLE agents ( agent_id INT PRIMARY KEY, agent_type VARCHAR(20), -- internal / external agent_name VARCHAR(100) ); CREATE TABLE resources ( resource_id INT PRIMARY KEY, resource_name VARCHAR(100), unit VARCHAR(20) ); CREATE TABLE events ( event_id INT PRIMARY KEY, event_type VARCHAR(40), -- e.g. order_confirmed, shipment_made occurred_at DATETIME, internal_agent_id INT, external_agent_id INT, CONSTRAINT fk_events_internal FOREIGN KEY (internal_agent_id) REFERENCES agents(agent_id), CONSTRAINT fk_events_external FOREIGN KEY (external_agent_id) REFERENCES agents(agent_id) ); CREATE TABLE event_resource_links ( link_id INT PRIMARY KEY, event_id INT, resource_id INT, direction VARCHAR(10), -- inflow / outflow quantity DECIMAL(18,4), amount DECIMAL(18,2), CONSTRAINT fk_links_event FOREIGN KEY (event_id) REFERENCES events(event_id), CONSTRAINT fk_links_resource FOREIGN KEY (resource_id) REFERENCES resources(resource_id) );注意這張表里我沒有為銷售訂單發(fā)貨單回款單這三類單據(jù)各建一套獨(dú)立結(jié)構(gòu)而是讓它們統(tǒng)一并入events表再通過event_type區(qū)分。這樣設(shè)計(jì)有一個(gè)直接好處任何業(yè)務(wù)查詢都只需要過濾事件類型而不需要跨多張業(yè)務(wù)單據(jù)表做join。索引方面我通常會(huì)為event_type和occurred_at建聯(lián)合索引因?yàn)閹缀跛袌?bào)表和追溯查詢都會(huì)以這兩個(gè)字段為過濾條件。event_resource_links表則一定要對event_id建索引這直接決定了派生余額的查詢性能。3.5 財(cái)務(wù)報(bào)表由事件流派生應(yīng)收賬款的計(jì)算示例最令我驚喜的部分是財(cái)務(wù)報(bào)表不再需要過賬環(huán)節(jié)。以應(yīng)收賬款為例它的定義可以直接寫成事件投影應(yīng)收余額 訂單確認(rèn)事件中流出的商品金額之和 - 已核銷的收款事件金額之和把這個(gè)邏輯落到數(shù)據(jù)庫里就是兩條SQLSELECT COALESCE(SUM(amount), 0) AS receivable_generated FROM event_resource_links l JOIN events e ON l.event_id e.event_id WHERE e.event_type order_confirmed AND l.direction outflow;SELECT COALESCE(SUM(amount), 0) AS receivable_settled FROM event_resource_links l JOIN events e ON l.event_id e.event_id WHERE e.event_type payment_received AND l.direction inflow;余額等于兩者的差完全不需要一張單獨(dú)維護(hù)的余額表。這聽起來簡單但背后帶來的架構(gòu)變化是巨大的賬務(wù)數(shù)據(jù)從被動(dòng)的結(jié)果存儲(chǔ)變成了由事件實(shí)時(shí)推導(dǎo)的活動(dòng)圖任何一筆余額波動(dòng)都能追蹤到源頭事件。4. 從模型到架構(gòu)rea如何與DDD、事件溯源結(jié)合4.1 事件即領(lǐng)域事件rea天然貼近事件溯源我在設(shè)計(jì)模擬項(xiàng)目X的時(shí)候只需要問自己一個(gè)問題系統(tǒng)的歷史數(shù)據(jù)是否足夠支撐任意時(shí)點(diǎn)的回放如果需要那么事件溯源幾乎是必然的選擇。而rea的事件恰恰就是事件溯源里需要的領(lǐng)域事件。兩者結(jié)合得如此自然是因?yàn)樗鼈兌荚诨卮鹜活悊栴}歷史到底發(fā)生了什么而不是現(xiàn)在賬上還剩多少。事件溯源把系統(tǒng)當(dāng)前狀態(tài)看作對歷史事件流的累積投影rea則告訴我們事件流如何與資源和參與者關(guān)聯(lián)如何從事件流中恢復(fù)出業(yè)務(wù)語義。用rea建模再配事件溯源等于直接把業(yè)務(wù)事實(shí)作為系統(tǒng)的唯一真相來源。會(huì)計(jì)數(shù)字、庫存數(shù)量、客戶余額全都只是投影視圖可以隨時(shí)按需重建這就是數(shù)據(jù)與賬本不再分家的實(shí)現(xiàn)方式。4.2 聚合邊界跟隨事件鏈劃分而不是按單據(jù)劃分引入rea之前我在劃分DDD聚合邊界時(shí)經(jīng)常猶豫訂單聚合要不要包含發(fā)運(yùn)信息發(fā)運(yùn)聚合要不要包含應(yīng)收記錄如果各選各的又回到數(shù)據(jù)不一致的怪圈。rea給了個(gè)比較清晰的判斷依據(jù)一組事件如果它們之間存在觸發(fā)關(guān)系而且一個(gè)內(nèi)部參與者對另一個(gè)事件負(fù)責(zé)那么這些事件往往應(yīng)該落在同一個(gè)聚合邊界內(nèi)或者至少通過事件同步保持一致。以銷售到回款為例訂單確認(rèn)、出庫發(fā)貨、客戶簽收、收款到賬這條事件鏈共享同一個(gè)客戶、同一張訂單上下文放在一個(gè)聚合里會(huì)讓數(shù)據(jù)一致性最直觀代價(jià)是聚合略微變大拆成多個(gè)聚合也可以但需要接受最終一致性帶來的復(fù)雜度。聚合方案一致性復(fù)雜度適用場景全部事件放一個(gè)聚合強(qiáng)一致低-中訂單量不大單體系統(tǒng)訂單發(fā)貨放一個(gè)聚合收款獨(dú)立訂單側(cè)強(qiáng)一致收款最終一致中以銷售為中心的企業(yè)推薦起點(diǎn)每個(gè)事件一個(gè)聚合最終一致高高并發(fā)、復(fù)雜分銷網(wǎng)絡(luò)我在實(shí)際項(xiàng)目中傾向于選擇中間方案把訂單確認(rèn)與出庫發(fā)貨放在一個(gè)聚合把收款到賬作為另一個(gè)聚合兩者通過領(lǐng)域事件通知進(jìn)行協(xié)調(diào)。這樣既保持高頻路徑的強(qiáng)一致性又不至于讓聚合無限膨脹。4.3 庫存與余額從存儲(chǔ)字段變成派生投影在這個(gè)模型下庫存數(shù)量、應(yīng)收余額這些傳統(tǒng)意義上的主數(shù)據(jù)全部變成了派生視圖。你不再需要在庫存表里維護(hù)一個(gè)實(shí)時(shí)扣減的數(shù)字而是通過庫存事件流計(jì)算得出當(dāng)前庫存。這種思路恰恰是CQRS架構(gòu)所提倡的寫模型中只追加不可變事件讀模型中維護(hù)面向查詢的投影。庫存的投影可以是一個(gè)物化表每次出庫或入庫事件發(fā)生后就增量更新也可以是一張按需重算的動(dòng)態(tài)視圖。使用派生視圖最大的好處是杜絕了分布式事務(wù)。兩個(gè)系統(tǒng)不需要在同一個(gè)事務(wù)里同步扣減庫存和記錄銷售只需要保證事件流的順序一致。這個(gè)轉(zhuǎn)變讓系統(tǒng)的擴(kuò)展方式從改數(shù)據(jù)庫變成了追加新的事件類型變化很輕影響很可控。4.4 審計(jì)與內(nèi)控控制關(guān)系直接復(fù)用傳統(tǒng)財(cái)務(wù)系統(tǒng)在審計(jì)時(shí)最痛苦的就是追溯一張憑證對著一堆流水流水又對應(yīng)一堆業(yè)務(wù)單據(jù)中間任何一步丟了映射審計(jì)就卡殼。rea模型天然把業(yè)務(wù)單據(jù)、業(yè)務(wù)事件、資源和參與者全部串聯(lián)在一起因此審計(jì)追溯的路徑大幅縮短。審計(jì)人員可以直接從一條收款記錄反向跟蹤到對應(yīng)的銷售事件、出庫事件、甚至當(dāng)初的訂單確認(rèn)操作以及操作人。這種透明性不是靠事后補(bǔ)錄而是建模時(shí)就把控制和授權(quán)關(guān)系放進(jìn)了事件結(jié)構(gòu)里??刂脐P(guān)系在rea中還有一個(gè)額外的作用它天然支持權(quán)限設(shè)計(jì)。內(nèi)部參與者和外部參與者被放在不同的字段里系統(tǒng)中查某個(gè)客戶名下的所有訂單或者查某個(gè)銷售員名下已經(jīng)確認(rèn)但未回款的訂單都只是一次簡單的事件過濾不需要額外維護(hù)復(fù)雜的權(quán)限視圖。5. 落地過程中踩過的四個(gè)坑5.1 坑一把資源建模成科目翻版我第一次嘗試用rea時(shí)想著資源不就是錢和貨嗎于是順手把應(yīng)收賬款建成了資源。這個(gè)選擇看起來方便實(shí)際上打亂了整個(gè)模型的語義。因?yàn)閼?yīng)收賬款不是一個(gè)基礎(chǔ)業(yè)務(wù)實(shí)體而是銷售事件與收款事件共同投影出的派生狀態(tài)。把它作為資源就等于在事件之外又維護(hù)了一套賬戶體系模型又會(huì)退回到復(fù)式記賬的老路上。正確做法是把應(yīng)收留給派生層資源層只保留客戶實(shí)際獲得的商品、服務(wù)以及貨幣資金這類基礎(chǔ)實(shí)體。這個(gè)教訓(xùn)我后來又驗(yàn)證到庫存上庫存量同樣不是資源庫存對應(yīng)的基礎(chǔ)資源是具體的商品實(shí)體而庫存量是累計(jì)流入流出事件的投影。5.2 坑二事件粒度是最大的敗筆來源事件粒度是最難拿捏的部分。太小的事件會(huì)把系統(tǒng)變成流水賬例如前面說的點(diǎn)擊了詳情頁一旦混入模型后續(xù)聚合邊界和報(bào)表語義都會(huì)被干擾。太大的事件則會(huì)掩蓋細(xì)節(jié)例如把客戶簽收和客戶付款合并成一個(gè)銷售完成事件你會(huì)丟失收款時(shí)間與簽收時(shí)間之間的差異這對現(xiàn)金流分析至關(guān)重要。我的經(jīng)驗(yàn)是每當(dāng)猶豫要不要把某個(gè)活動(dòng)設(shè)成事件就檢查它是否引起可識(shí)別資源的狀態(tài)變化以及它的發(fā)生時(shí)間對業(yè)務(wù)決策是否有價(jià)值。這兩個(gè)條件同時(shí)滿足才值得成為模型中的事件。我在項(xiàng)目里曾經(jīng)把倉庫內(nèi)部移庫也建模成獨(dú)立事件后來發(fā)現(xiàn)這個(gè)動(dòng)作對財(cái)務(wù)和外部客戶沒有任何意義白白增加了事件量??车糁蟛樵冃拭黠@提升聚合邊界也清晰很多。5.3 坑三把業(yè)務(wù)規(guī)則塞進(jìn)事件模型rea擅長表達(dá)發(fā)生了什么但并不擅長表達(dá)應(yīng)該發(fā)生什么。折扣規(guī)則、信用額度校驗(yàn)、審批流閾值……這些業(yè)務(wù)規(guī)則可以在應(yīng)用層實(shí)現(xiàn)不需要塞進(jìn)rea模型。我在模擬項(xiàng)目X的早期就犯了把太多校驗(yàn)邏輯塞進(jìn)事件定義里的錯(cuò)誤結(jié)果每個(gè)事件類型都要寫一堆if-else模型反而被規(guī)則淹沒。后來把規(guī)則全部移到應(yīng)用服務(wù)層rea專心作為事實(shí)記錄層代碼結(jié)構(gòu)清爽了很多。可以這樣理解rea是數(shù)據(jù)庫的事實(shí)表業(yè)務(wù)規(guī)則是服務(wù)層的過濾器。把它們分層之后每個(gè)部分都能獨(dú)立演進(jìn)而不是耦合在一起。5.4 坑四歷史數(shù)據(jù)遷移與期初余額事件引入rea時(shí)最難的是處理歷史數(shù)據(jù)。舊系統(tǒng)里長期積累的科目余額、未核銷憑證怎么遷入新模型我的做法是引入一個(gè)期初余額事件概念把歷史存量轉(zhuǎn)化為幾個(gè)特定事件。例如遷移日之前的所有應(yīng)收賬款匯總成為一條期初應(yīng)收確認(rèn)事件遷移日之前的所有庫存數(shù)量匯總成為一條期初庫存盤點(diǎn)事件。歷史數(shù)據(jù)轉(zhuǎn)化為的期初事件涉及資源舊系統(tǒng)庫存數(shù)量期初庫存盤點(diǎn)事件庫存商品舊系統(tǒng)應(yīng)收余額期初應(yīng)收確認(rèn)事件商品/服務(wù)待核銷舊系統(tǒng)應(yīng)付余額期初應(yīng)付確認(rèn)事件采購服務(wù)/商品待結(jié)算舊系統(tǒng)銀行余額期初資金到位事件銀行存款這樣設(shè)計(jì)雖然看起來新增了一個(gè)特殊事件但換來的是所有后續(xù)邏輯的統(tǒng)一。舊賬不再需要特殊的歷史余額表而是和其他事件一樣參與投影運(yùn)算這大大簡化了遷移代碼。這里有一個(gè)額外提醒期初事件一定要核對原系統(tǒng)的明細(xì)。曾經(jīng)有一次遷移我們把應(yīng)收余額只按總額導(dǎo)入結(jié)果后續(xù)老客戶發(fā)起退貨時(shí)找不到對應(yīng)的銷售事件可沖銷處理起來特別麻煩。后來我調(diào)整策略凡是能追溯到原單據(jù)的應(yīng)收盡量逐筆導(dǎo)入為獨(dú)立事件只有確實(shí)無法追溯的散單才以總額方式入賬。結(jié)尾在這個(gè)方向投入了很多時(shí)間之后我最后想分享幾個(gè)實(shí)踐層面的體會(huì)。rea并不是要取代會(huì)計(jì)學(xué)而是一種重新組織業(yè)務(wù)事實(shí)的方式。它最打動(dòng)我的地方是逼迫我從記賬結(jié)果退回到業(yè)務(wù)事實(shí)把每個(gè)動(dòng)作看成一條不可變的事件。這個(gè)思考習(xí)慣對我設(shè)計(jì)DDD聚合、選擇事件溯源架構(gòu)、甚至是評(píng)審別人的數(shù)據(jù)模型都有很直接的幫助。最后給你一個(gè)小技巧。下次評(píng)審任何業(yè)務(wù)模型時(shí)先問三個(gè)問題這里最核心的資源是什么哪些動(dòng)作直接改變了資源狀態(tài)是誰執(zhí)行和推動(dòng)的如果團(tuán)隊(duì)討論始終繞不開這三個(gè)問題說明業(yè)務(wù)建模往正確的方向走了一大步。哪怕不引入全套rea這套提問方式也能讓你快速發(fā)現(xiàn)模型里的裂縫。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美日韩国产三级黄色| 色99久草| 国产丝袜高跟美女av免费观看| 伊人网高清| 亚洲国产尤物yw在线观看| 激情五月天网站| 91操人| 国内伊人久久久久久网站视频| 亚洲欧美在线观看2021| 久久久久久久久久久久黄色 | 色青青久久影视| 99999精品成人| 78精品在线| av日韩在线观看电影| 中日无幕一二三四区| 99热色这里只有精品| 干美女人妻| 乱伦1色页| 高跟伊人julia ann| 亚洲图片激情小说| 成年女人一区| 欧美天天弄| 99综合视频一体| 东北女人| 四虎国产精品永久地址入口| 麻豆AV96熟妇人妻| 国产精品视频麻豆入口| 美女诱惑在线一区| www.yeyecao| 日日干日日操五月天伦理视频| 东京热天堂网| 91色黑人少妇| WWW黄片COM| 97久久精品不卡| 国产三级资源在线观看| 啊啊啊com| 啊啊嗯嗯好爽| 亚洲天堂另类美腿| 欧美日韩午夜精品一区二区三区| 婷婷激情五月| 91精品人| 97超碰人操| 国产一级αv免费看片| 亚洲清纯唯美| 久青草影院| av网站免费线看| 日韩电影天堂视频一区二区| 久久亚洲AV无码专区国产精品| 国产伦精品免编号公布| 国产免a费看黄片在线| 91天天爽| 青青伊人加勒比海| 九九久久99| 亚洲性猛| 97人人干| 少妇无码av专区线| 欧美 亚洲 另类 综合| 亚洲乱伦图片视频| 91美女网站| 99re69| 亚洲一区二区三区中文字幕| 男女香蕉一区二区| 国内三级自拍小视频在线观看| 97久久久久| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 日韩三级一区 | 成年女人黄网站| 夜夜免费视频| 骚乳在线| 乱伦系列一区二区| 日韩亚洲欧美中文字幕| 亚洲限制级在线| 男女激情黄色网址| 亚洲最新Av| #NAME?| 91小视频| 国产精品香蕉| 蜜臀Av一区二区三区| 禁止观看美女黄| 蜜臀AV秘一区翔田千里| 欧美性爱一区| 日韩成人精品视频自拍| 水多多映视AV| 日韩内| 成人天天看站长推荐| 婷婷午夜| 91小视频| 亚洲啪AⅤ永久无码| 日韩99999| 色欲色香天天天综合网www-亚洲综合国| 亚洲一区二区性爱电影| 日韩性爱毛片操骚逼| 夜夜高潮夜夜爽夜夜爱爱一区| 日韩三级一区| 秋霞无码av鲁丝片一区| 国产精品成久久久久午夜午夜| 亚洲天堂久久| 校园春色家庭伦理欧美激情| 欧美日韩美女精品久草一区二区三区| 久久嫩草国产成人一区| 亚洲色图久久成人| 久视频在线观看| 亚洲天堂99| 黄色香蕉视频网站一区| 久热99999| 日韩精品高清资源在线| 美女诱惑在线一区| 丝袜视频一区二区在线播放国产中文| 丁香五月天激情综合| 日日夜夜精品| 国产久久成人| 国产一区二区成人av在线播放| 九久9精品| 少妇熟女视频一二三区| 99热伊人| 亚洲国产ⅴ高清在线观看| 亚洲无992tv| 大香久久| 97在线免费看视频| 国产精品视屏| 性久久久| 欧美日韩激情无码专区| 无码高清国产AV| 欧美一级A片不卡视频。| 久久精品欧美一区二区三区不卡| 亚洲?V无码专区在线电影| 欧美激情性爱视频网站| 免费看黄视频亚洲网站| 大伊香蕉在线视频免费| 天天干天天爽| 91超碰人人| 亚洲成人精品久久久| 久久久9视频| 婷婷五月天成人网| 中文字幕一二三区| 色网1| 久9久精品视频| 久久免费中文字幕在线观看| 激情亚洲天堂| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 亚洲欧美综合网站| 酒色综合网| 亚洲av性爱电影| 久久这里只精品免费福利| 女性喷水高潮在线观看| av网页一区二区三区| 久操视频资源站公开| 欧美一级黄片免费播放| 日本熟妇熟色97一本在线观看| 偷窥自拍亚洲色图| 欧美影音在线| 激情小说在线视频| 五月天婷婷在线看| 日韩性爱播放| 天天影视网综合少妇| 中文字幕乱碼在线| 99999re| 欧美激情 一区| 牛牛AV人人夜夜澡人人爽| 91性高朝久久久久久久久| 亚洲乱伦图片视频| 六月丁香婷| 精品人妻一区二区免费蜜桃| 中文字幕精品亚洲熟女| 大香蕉一级黄色片久久| 蜜桃无码AV一区二区| 口爆综合网| 大香蕉综合久久| 久久精品免费| 亚洲精品九九九九九九| 亚洲无无码αⅴ每日更新| 人妻-91porn| 色月天AV导航| 日韩综合第八区国产精品| 欧美视频一| 在线观看精品国产免费| 色九九九综合| 亚洲欧美电影| 色一情一乱一乱一区91Av| 亚洲黄日韩无码专区| 夫妻AV网站| 一个国产在线综合网站| 青青网三级视频| 亚洲资源网| 欧美一级美片在线观看免费| 色欧美天天| 久热久操| 囯戸精品高潮呻吟旡码| 九九久久九九久久| 东京男人天堂| 中日韩久久久| 久操操| 亚洲美女AV无码| 97精品综合久久| 97av,com| 欧美一区二区三区四区综合| 亚州成人A√| 色哟哟av| 国产午夜无码片在线观看影视 | 色香伊人| 超碰97.com| 噜噜噜在线视频| 美腿色图| 婷婷av在线中文字幕| 久久99久久99精品免视看婷婷| 久久久男人的天堂| 影音先锋每日最新资源在线观看 | 四虎影视在线| 九九九久久久| 亚洲美欧999| 翔田千里AV无码秘 三区| 丁香五月天啪啪| 99久久免费看精品国产一区| 国产欧美一区激情交| 日韩精品国模| 98人妻精品一区二区色欲| 色五月婷婷网| 高潮9999外国| 国产九月婷婷| 青青操网| 天天拍天| 岛国精品视频在线观看| 中文字幕国产| 欧洲天天在线| 国产美女自拍AV| 99只有精品| 成全在线观看免费观看| 蜜臀人妻少妇久久在线观看| 国产亚洲女v在线观看| 和协影院中文字幕三区| 人人做天天爱| 亚洲精品久| 久久精品久久久久久久久| 日本一区二区三区精品| 久久精品日韩| 日日干男人的天堂| 97国产高清视频在线观看| 97欧美色| 96免费视频在线| 欧美日韩操逼动图| 中国特猛少妇色xxx| 精品91摸| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 久热久操| 亚洲日本成人动漫| 久久天天艹| 亚洲吊色| 色综合色综合网| 一中国女人毛片水真多| 美国三级日本三级久久99| www.久久99| 被操高清无码视频| 神马久久久久久久久久| 萌白酱自拍视频| 99色热| 裸模AV女优| 天堂种子在线www网资源| 四虎国产精品永久在线囯在线| 久久久久久久六六 | 亚洲一二三四区在线免费看视频| 97超碰逼| 亚洲精品男人的天堂| 大香蕉综合网| 中文字幕女同在线| 中文字幕人妻色偷偷久久皮| 欧美很很操视频| 亚洲欧美色图片| 91处女视频在线观看| 狠狠激情综合狠狠操中文字幕| 超碰九7免费| 国产亚洲精品农村妇女| 人人摸人人舔一区二区| 99爱久久视频频| 欧美精品一区二区少妇免费A片| 超碰社区97| 久久99手机免费视频| 大香蕉久| JULIA一区二区三区在线播放| 老熟女乱伦一区| 欧美一二三| 欧美成人精品欧美一级乱黄一区二…| 亚洲成人在线乱码色午夜| 九九九九九九视频| 91成人社区| 人妻熟女一区二区三区在线| 国产精品天干天干综合网麻豆| 强上我不卡卡| 91殴美大片| 丝袜喷水在线| 91亚洲欧美色图| 色婷婷婷五月天激情四射| AV色天香在线| 色老汉色| 大香蕉宅男伊人| 亚洲情色第一页| 精品久久无码午夜福利| 囯产精品久久久久久久久久梁医生 | 欧美 亚洲 大香| 日本三级人妻a人妻一在线| 人妻少妇视频在线播放| 综合色图,成人综合网| www.色五月| 99热精品在线在线| 日韩三级网址| 国产传媒一区日韩| 91黑丝美女| 欧美 亚洲 综合 制服 另类| 亚州Av天美传媒| 亚洲高清在线se| 亚洲狠狠入| 蜜臀网 一区| 亚洲色图一区二区三区| 91国产操逼视频| 国产在线强奸视频| 国产 热久久久久国产精品| 日韩欧美一级特黄大片| 国产久久久久久久久一区二区| 天天干少妇| 高清不卡一二三区视频......| 97爱欧美| 91熟女.com| 大香久久| 国产成人精品必看| 高跟丝袜AV专区国产| www激情| 97舔舔| 97 超碰 人人做 人人爱| WWW.加勒比人妻一区不卡.com| 青青草伊人久久| 亚洲熟妇自偷自拍另欧美| 性欧美另类高清| 天天澡天天爽日日av| 男人的天堂日韩| 天天92av| α√在线| 伊人国产视频| 狠狠爱夜夜| 中文字幕精品一区欧美| 大香蕉伊人色偷偷在线| 蜜桃臀久久| 国产传媒av天美传媒在线| 欧美日韩日产免费网站看| 国产激情综合| 美女91在线观看| 亚洲丝袜少妇在线| 日韩人妻中文视频| 国厂麻豆77q4| 精品黄色电影| 看一级黄色视频| 欧美精品偷拍| 九九九网站| 久久直播国产| 91偷拍欧美亚洲| 欧美男人的天堂| 国产女人和拘做爰视频| 九九九九九九亚洲| 天堂网亚洲区手机版| 国产精品女生av| 激情深爱五月天| 免费97视频| 懂色aV一区二区天美传媒| 国产一区二区欧美日本| 99热日| 欧美性生活男人的天堂| 嗯嗯啊在线视频| 91殴美大片| 人妻丝袜肏逼| 网站A V在线| 伊人五月天| 无码视频一区二区| 国产午夜在线观看| 色婷婷久久| 午夜AV污污污| 黄骗免费| 啊啊啊啊啊啊啊网址在线观看| 亚洲乱妇p22| 国产福利精品最新在线| 亚洲校园激情| 亚洲无码久久久久久久| 国产精品国产| 日韩一性一交一A片俄罗斯| 久久97资源 网| 激情小说亚洲色图| 97舔舔| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 密乳无码| 日日日大屁股骚女人精品| 蜜乳视频网站| 伊人伊人LD| 岛国毛片在线观看免费| 97精品国产手机| 欧美性爱91| 欧美精品双插| 国产女人高潮嗷嗷嗷叫小说| 国产精品视频播放| 色色色欧美| Aa东京男人的天堂| 亚洲精品xxx| 91n免费处女| 人妻系列无码专区中文有码| 日韩精彩视频| 超碰免费人人| 91综合中文字幕| 神马久久久久眼| a片自拍直播视频| 67914在线精品观看| 亚洲成人色情五月天丁香花| 午夜无遮挡男女啪啪视频| 91逼逼女人91| 成人无码电影在线观看网| 精品9区| 亚洲阿v天堂无码z2018| 欧美九九99久久精品| 大香蕉欧美| 亚洲中文字幕乱码无码一区二区| 性videos欧美熟妇hdx| 绑缚麻绳人妻寝取完整版| 尤物视频一区| 97伦综合| 青青草吊丝| 亚洲国产奇米影视久久| 欧日韩一二三f区| 日韩一级二级| 国产一级高跟丝袜| 人妻娇喘 激情视频| 美女啊啊啊啊pc| 免费黄色片。| 啊v在线观看视频| 欧美一区二区在线资源| 一区二区三区精品视频| 九七超碰| 久久风骚城市| 天天干天天日天天射黄色大片| 日韩欧美成人综合在线| 久久久精精精| 亚洲天天精品| 日本精品国产视频| 久久超碰久| 亚洲 欧美 偷拍 唯美| 青青操日韩| 加勒比综合九九99视频在线播放| 综合色色网| 国产一级137片内射麻豆| 色97欧美| 亚洲日本天堂| 四虎免费看黄| 999日韩中文精品观看视频。| 人妻少妇被猛烈进入中| 美女裸体无遮挡永久免费观看网站| 人妻丝袜肏逼| 色老汉色| 欧美亚州手机在线| www.99在线| 四虎影视永久在线免费| a级免费在线观看| 日韩在线观看AV| 操死我了嗯嗯嗯| 成人AV素股で擦久久| 日韩乱伦视频| 日本东京热加勒比久久| jazzjazz国产精品麻豆| 天天射日日干| 欧美se综合| 91欧美丝袜| 伊人991| 精品对白久久不卡| 青青操日韩| 欧美一区二区三区成人性生活| 97内射偷拍| 色爽爽文学| 欧美日综合| 日亚韩精品视频二区三| 欧美亚洲中文字幕| 日韩av在线播放不卡| 久久社区一区二区三区| 亚洲日韩视频二区| 精品无码久久久久久久杏吧| 蜜臀99久久精品久久久懂爱| 欧美日韩久久精品爱爱| 亚洲少妇在线观看| 欧美色涩| 日韩av性爱在线播放| 黑人综合网| 97欧美日韩| 99在线精品视频| 超碰九区| 成人线上超碰| 色欲三区| 中日韩熟女| 欧美性爱伊人| 美女自卫慰黄网站免费| 亚洲成人网站在线观看| 欧美男人一区| 日韩精品高清资源在线| 亚洲污一污二| 少好三P| 黄页网站成人免费| 啊啊啊好大好深| 久久这里只有精品9| 亚洲欧美另类图片| 日韩视频精品在线观看| 乱论91| 国产日本久久免费精品| 天天日天天爽| 久久本道| 亚洲蜜臀视频精品久久| 日本久久久久久久久久| 久久久久九九九| 嫩草美女久久| 亚洲黄色网址视频| 97精品一区| 97这里有精品| 狠狠色噜噜狠狠狠狠2018| 人人操人人操人人人操| 99啪啪视频| 人妻天天操天天爽视频免费| m欧洲一级午老| yazhouzaixian| 欧美色性情| 亚洲密乳AV| 影音先锋国产精品| 免费看污网站| 熟女熟妇一区二区三区视频| 久热热| 日本国产亚洲一区在线观看| 91精品啪在线观看国产城中村| 91丨九色丨43老版熟女| 天天舔九色婷婷| 97中文字幕一区| 五月丁香黄色网| 无码国产精品久久久久| 色999人与兽| 中文字幕视频免费| 国产精品成人AV片免费看网站| 亚洲 国产 精品一区| 男人天堂2019亚洲| 二级毛片| 亚洲国产91精品一区二区久久| 大香蕉黄色一区| 激情欧美日韩女同久久| 97在线视频网站| 中文字幕中文字幕一区二区| 中文字幕一区二区三区蜜臀| 小电影欧美91| 中国大陆国产高清AⅤ毛片| 伊人影院中文字幕| 午夜福利 成人 91| 免费的很黄很污的全部视频| 六月婷激情福利天堂69| 久久超碰天天| 午夜电影在线观看无码专区| 亚洲熟妇熟在线电影视频| 亚洲丝袜少妇在线| 福利在线黄片| 久热大香蕉网站| 日韩字幕一区| 久久春色| 97干在线| 天美传媒精品久久视频| 亚洲第2页| 在线观看视频91| 欧美色www亚洲国产阿娇要播| 在线播放中文字幕| 蜜桃天美传媒AV一区二区三区| 精品视频免费在线一区| 欧美婷婷久久| 综合国产影视三级| 亚洲乱色视频一区、二区在线| 97精品一区二区三区免费| www.色操逼| 熟女露脸激情自拍视频| 久操网无码在线| 亚洲精品蜜桃久久久久久久| 一个国产在线综合网站| 99操| 日本成人A片网站| 97干天天| 中国zzijzzijzzwww精品| 久久久久久波多野吉衣高潮| 人人操,人人插| 韩国女主播青草在线| 极品欧美一区二区三区| 久久久久久久久久久久黄色 | 97国产天堂岛| 操高情无码| 操91| 爱我干综合| 99re黄| 麻豆人妻精品一区二区| 国产乱婷婷精品二区三区| 又粗又长又爽在线观看| 国产 码在线成人网站| 97爱爱官网| 99激情视频| 色婷婷一区二区三区久久| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 女人 A一级| 激情久久日韩精品中文字幕麻豆| 97摸视频| 中文字幕在线免费观看| 97精品一二区| 中文字幕中文字幕一区二区| 黄色高清久久无码依人| 婷婷亚洲综合| 久久久久久99999国产精品| 亚洲成av人片色午夜乱码| 天天操妹子| 欧美制服另类丝袜| 国产精品永久免费10000| 亚洲色图伊人网| 色色婷婷五月天| 国产性爱强奸乱伦大全| 中国熟女网站| 99在线精品观看99| 肏逼视频日本| 日本一级不卡一二区| 深爱五月婷婷| 无码区蜜乳| 国产美女高潮视频| 密臀在线免费观看| 欧洲亚洲国产综合在线| 九九热男人天堂| 精吧天堂| 亚殴在线| www.四虎在线| 俺去俺来也在线www| 婷婷五月天av| 伊人操你| 91久久久久久久| 91中文精品日韩欧美在线| 久热精品色情| 亚洲一区二区三区婷婷| 高清一区AV无码| 日韩精品大香蕉伊人在线| 乱伦熟妇一区二区| 99性爱在线观看| 欧美日韩国内不卡| 蜜桃视频精品一区二区| 美女人妻色网站| 941超碰| 精品久久青青草| 男人的天堂在线有码| 亚洲 欧美 小说| 二级毛片| 久久久久久九九九九-美女久久久久久久-成人AV | 日韩乱伦影音先锋| 国产偷人伦激情在线观看| 蜜桃臀一区二区aV| 99久久综合| 韩国久久97| 黄网色一区二区三区四区精品| 亚洲一区中文精品| 少妇熟女一区二区三区| 蜜臀av网址| 日韩少妇丰满亚洲| 天天爽夜夜操| 强奸a片网| 中文字幕交换人妻| 国内毛片无遮挡国产| 欧美97爱| 国产一区在线看| 曰本特级特黄特色黄色A级网站高清在线免费看 | 天天肏夜夜肏| 久操视频资源站公开| 无码外流操逼视频| 99亚洲国产精品色一区二区三区| 欧美色图亚洲色| 亚洲黄色电影| 欧美人妖内射| 美女91网址| 久久九九精品一区二区| 呻吟 欧美 日本 中出| 一区二区视频你懂的| 日日日啊啊啊| 九九英色视频| 亚洲黄日韩无码专区| 操人妻丝袜高跟| 日韩伦理久 久久 清纯| 99re6国产精品99re在线| 人人摸人人干| 日本超碰在线国产一区| 一区二区日韩欧美久久| 狠狠久久亚洲欧美专区| 97资源站国产精品| www.成人无码| 老熟女阿 国产91| 高精欧美色| 色五月av| 青娱乐淫乱1314| av一区二区三区不卡| 日本成人免费一区二区三区 | 粉嫩久久久极品| 99最新日韩偷拍视频| 妇女乱色二区| 久久嫩草| 国产女同在线观看视频| 人妻二区| 黄色区免费观看中文字幕| 黄色小视频日本txt| 亚洲天堂无码| 高清无码网址| 97激情97激情| 加勒比五月天| 99久久久| a男人的天堂久久一级A毛片| 日本成人A片免费看| 精品毛片久久久精品毛片| 美女自卫慰黄网站免费| 校园春色综合| 大香蕉国产中文自拍| 超碰97在线中文| 天干天干天干天天做| 久久久久久久久999| 超碰97人人cao| 黑人无码一区二区| 蜜臀av一区二区三区免费观看| 99久久无色码| 欧美高潮| 国产一区二区二区按摩精品啪视频| 91伊人久| 色婷婷九月| 四季AV综合网址| 麻豆区久久久久亚| 亚洲啪啪综合?v一区综合精品区| 久操com| 色五月婷婷在线| 天天舔九色婷婷| 人妻熟妇一区二区三区| 综合影院永久入口国产| 日韩中文字幕视频在线观看| 亚洲日韩肥臀视频在线观看| 亚洲熟妇综合久久久久久| 校园春色 欧美| 日韩国产成人自拍视频| 欧美性爱97超碰| 日本不卡一区二区三区| 无码天堂| 亚洲色综合| 2017大香蕉国产精品久久| 欧美亚洲首页| 久久精品国产亚洲AV无码电影| 无码人妻一区二区三区免费九色| 95自拍视频在线观看| 91蜜臀熟女| 日本操逼无码| 91日本在线观看| 久久‘黄片视频| 日少妇亚洲版| 久久久久99999| 国产成人精品日本视频| 超碰 另类 欧美| 亚洲丝袜在线观看| 大香网站| 黄日韩| 久久亚洲AV无码白度| 亚洲色图欧美视频| 亚洲色图 图片| 国产无马在线| 麻豆天美国美国产| 麻豆天美在线| 日本精品成人无码| 另类成人首页一区| 在线免费观看日韩一区| 欧美综合色站| 欧美大香蕉久| 射丝袜高跟鞋99| 国内伊人久久久久久网站视频| 日本 欧美 国产一区| 九九人妻| 久精品无码av一区二免费国产在线观看 | 曰韩操B| 亚洲天堂第一页| 91免费看一区二区三区| 青青国产精品在线| 国产乱子伦一区二区三区在线观看| 亚洲夜夜欢无码一区二区| 久久↗↗| 无遮挡h肉动漫在线观看| 亚州男人的天堂| 在线综合色| 欧美在线视频观看一二三四区高清| 久久五月天婷婷丁香中文字幕| 夜夜嗷嗷一区二区| 啪啪啪东京| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 九9精品| 国产精品久久成人免费| 色色青青久久| 夜夜草网站| 超碰97男女| 女优免费一区二区永久| 久久精品熟妇丰满人妻99| 亚洲色鬼| 无码不卡八戒| 亚洲另类小说卡通动漫| 久久久久9999妇女| 日韩亚洲中文有码视频| 综合性视频99| 久久婷综合| 中文乱码字幕观看视频| 精品久久久久9999| 国产最新小视频在线播放下载| 神马久久69| 97任你吞精| 男人精品区| 欧美精品第四五页中文字幕在线观看| 国产一区二区三区视频在线看| 熟女网站最新| 91干熟女| 久久精品一区二区三区四区五区| 久久人人爽爽爽人久久久| 国产日产精品久久快鸭的功能介绍| 亚洲资源网| 婷婷色婷婷| 日韩一级久久毛片| 日产成人久久| 中文字幕五区| 久久精品福利影院| 久草综合网| 精品人人| 色呦呦呦在线观看视频| 欧美性爱一区二区三区| 久久神马影院| 爱做久久久久久| 97在线免费观看| 国产精品久久久九九九| 五月婷婷激情| 国产精品国产自产高清AV| 国产97综合| 男人的天堂成人的社区| 美女国产一区二区久久| 97视频在线免费观看| 欧美亚洲高清不卡| 偷拍 亚洲| 手机在线视频国内精品| 97日韩| 欧美日本视频一区| 亭亭丁香激情| 久久五月丁香| 国产高清免费不卡av| 蜜臀网 一区| 色偷综合| 玖玖爱综合| 9久久精品| 国产欧美成人第一页在线观看| 欧美色另类| 国偷自 一区| 乱码熟妇人妻久久久| 一区二区日韩欧美久久| 久久久精品无码亚免费| 一级做a爰片性色毛片久久| 深喉吞精| 久久高清无码夜夜操| 偷窥自拍亚洲色图| 99精品在线| 日本操嫩b网| 亚洲国产一区二区日韩专区| 97视频在线播放| 超碰色美女| 国产精品电影推荐| 国产一区二区三区不卡手机在线| 九九性视频| 女人双腿搬开让男人桶| 国产乱伦亚洲| 爱妃国产亚洲视频中文字幕| 亚洲欧美色图片| 久草电影网| 超碰69| 日本淫穴在线| 欧美白嫩女HD| 日韩二级| 色女网日韩| 欧美另类色| 资源在线观一 二| 婷婷五月天基地| 婷婷久久网| 极品色www影院| 把腿张开老子CAO烂你| 国产日韩欧美中文在线播放| 国产婷婷综合在线观看| 国产丝袜美女诱惑| 日本熟妇一区二区三区| 五月丁香六月婷| 亚洲精品男人的天堂| 超碰99热| 丁香激情五月| 99色悠悠| 老熟女91av| 18一区二区三区| 91是天天| 熟女中出视频| 日本久久综合| 久草精品一区| 中文在线视频| 一本色道久久综合亚洲二区三区| 欧美综合在线第一页| 台湾佬中文娱乐网久久久久久久久久com| 动漫av中文| 日本亚欧爱爱| 欧美人妖内射| 女色综合| 久久性爱视频99| 国产成人99久久亚洲综合| 天天日天天搞天天干| 免费的很黄很污的全部视频| 操逼1区| 国产AV高清AV无码| 91人妻爽爽人人做人人澡| 999狠狠综合| 九九英色视频| 欧美91久久久久| 久久熟女嫩草成人片免费 | 亚洲美欧999| 欧美青青视频| 91网站在线播放| 久久久不卡| 波多野结衣之双飞调教在线播放| 色y情视频免费看| a天堂视频| 亚洲综合五月天| 夜夜操老骚逼视频网站| 97超级欧美| 人人操人人精品影片| 啊啊啊啊好疼| 亚洲无线码欧洲精品区别| 国产精品无码论坛| 天天摸,夜夜摸| 激情终合网| 色香网| а√天堂资源官网在线资源| 美中日韩无码| 亚洲一区二区麻豆影院| 91五月天| 日本欧美不卡| 东北丰满熟女国产一区| 狠狠五月天| 婷婷丁香一区二区三区| 日韩精品三级| 亚洲欧洲自拍图片专区满春格| 女人喷水视频在线观看| 九九毛片这里只有精品| 狠狠2050在线观看| 东京热毛片177b2viP| 无码操逼网| 极品色社| 天堂精品| 国产无马在线| 91碰碰| 欧美日韩青操| 91亚洲综合| 亚洲日韩国产欧美综合v| 91扒丝袜综合在线| 天天舔日美女视频| 精品国产91av一区二区三区| 大奶啊啊好爽 | a片亚洲一本通视频| 九九九网站| 深田咏美亚洲精品福利社| 德国一二三不卡| 啊啊啊啊嗯嗯在线久久久| 亚洲图片婷婷五月天| 97中文天堂| 日本一二三免费久久| 日韩人妻有码免费视频| 97资源超碰| 婷婷人妻激情| 久久男女激情视频网站| 大肉棒导航| 人人操人人爽人人操人人| 天天天天干| 国产日韩中文字幕欧美| 一区二区三区四区理论片| 黄片www.| 婷婷视频在线免费观看| 亚洲 图片 综合91| 白嫩国模丰满一二三区| 久久这里精品国产99丫e6| 一本久久久精品| 91三级理论片播放器| 国产精品网站免费| 97超碰人人模人人拍人人| 99色综合| 精品女同一区二区三区| 欧美午夜视频精品久久| 亚洲 另类 丝袜 自拍 动漫| 国产无码久久高清| 国产精品一区二区在钱播放| 欧美日韩制服| 99热网站| 国产又粗又长又大的视频| 岛国成人av在线播放网址| 亚洲欧美啪啪| 国产九九九九九九九九| 欧美最大综合网| 国产熟女乱论| 久操视频免费观看| 3P乱轮视频| 亚洲一区制服诱惑| 欧美人妻久久精品二区三区 | 96AV久久久| 日本人妻最新在线中| www鬼畜国产男人的天堂| 国产强奸乱伦第1页| 91n美女视频| 男女啪啪啪18禁网站| 精品人妻一区二区免费蜜桃| 成人性爱免费播放| 久久伊人青青草| 国产Aα| 和协影院中文字幕三区| 欧美久久人人网| 久久9精品网站| 婬女免费一二三区A片| 99热在线只有精品| 这里只有精品视频在线| 蜜臀中文字幕| 99操| 亚欧高清在线| 亚洲丝袜在线观看| 亚洲伊人久久精品狠狠在线| 欧洲亚洲国产综合在线| 亚洲熟女乱综合一区二区三区| 久久精品国产亚洲AV嘿嘿| 91色人| 理论久久婷婷网 8| 少妇厨房愉情理伦片bd在线观看| 成人久久精品| 91人人臊| 欧美色宗合| 牛牛久久国产精品视频一二三| 2021久久国产综合精品青草| 中文字幕一二三av| 麻豆久久视频在线地址| 一区二区三区亚洲| 啊啊在线| 日韩伦理久 久久 清纯| 日韩性爱毛片操骚逼| 九久久精品| 天天操av懂色| 国产精品蜜乳AV| 久久香蕉国产线看观看亚洲女人| 超碰国产情侣自拍网| 亚洲第一黄色av网站| 台湾佬大香蕉| 欧美白嫩在线放| **一级毛片国产| 日韩免费簧片| 亚洲第二页| 欧美精品丝袜久久久中文字幕| 伊人网综合在线视频| 蜜臀久久99精品久久久久久成人小说 | 日本免费专区| 国产精品不卡少妇白| 男生女生啊啊啊啊| 久久久中文| 欧美偷拍区| 欧美性爱一区二区三区| 四虎884a| 亚州精人品大香蕉| 久久无码电影| 日韩欧美福利视频看看| 99精品综合久久久久五月天| 91扒丝袜综合在线| 大香蕉五月天婷婷| 377p欧洲日本亚洲大胆| 91春色| 欧美97av| 亚拍在线| 91色图片| 综合影院亚洲| 思思热免费视频观看| 日本1区2区不卡视频| 91熟女在线| 天天天做天天天爱天天天爽| 四虎884a| 青青草吊丝| 又大又白奶子| 日本福利二区视频| 天天色黄色影院天天操| 校园春色综合网| 国产路线专区| 欧美综合色| 天天拍天| 国产九区| 色老汉色| 91在线美女| 久久久爆乳翘臀一线天伦理视频| 亚洲砖码砖专无区2023| 国产女人高潮嗷嗷嗷叫小说| 黄色免费网| 一区二区高清视频| 欧综合网| 漂亮人妻被强中文字幕hd| 国产一| 啊啊啊啊啊啊啊网址在线观看| 欧美在线大香蕉| 久久天天躁日日躁狠狠躁 | 亚洲少妇中文字幕网址| 国产欧美成人第一页在线观看| 在线观看不卡一区二区三区| 午夜小电影在线插入淫高潮| 中文字幕一二三| 人妻久久一区二区三区 | 久久久久久久久9| 欧洲站一级二级三级h| 97视频在线免费播放| 99精品人人爽| 色在线69堂| 青青草国产一区二区三区| 夜夜青青无码影院| 综合97久久| 97视频免费在线| 久久婷婷一区| 夜夜欧美| 91精片| 久久在线观看免费视频| 草草电影院| 欧美不卡在线一区二区| 久久久久久人妻一区精品色欧美| 日本一区视频在线观看| 韩国一级婬片A片无码天美 | 九九碰九九爱97超碰| 午夜小电影在线插入淫高潮| 中文字幕精品探花视频| 日韩欧美大片免费高清啪啪| 性饥渴少妇av无码毛片| 淫荡熟女乱伦网| 天天色播亚洲综合网站| 色五月丁香五月| 成人综合色网| 闷骚老熟女15P| 夜色97| 97碰碰色| 91福利网在线观看| 色欲无码人妻日韩欧美精品| 久久精品日韩专区免费观看| 97久久久久久久久久| 伊人九九九| 一级黄色性爱裸体视频| 人人 操人人 操人人| 国产强奸超碰AV| 男人的天堂啪啪| 国产性感在线观看| 91国精产品| 亚洲精品91| 日韩精品一区二区高清| 欧美日韩 强奸乱伦| 99色婷婷| 91撸色网 玖玖网 欧美| 9ⅰ久久久天天| 色香av| 亚洲色图欧美色图日韩色图| 成视频在线观看免费看| 91人妻丝袜无码| 久久综合久色欧美综合狠狠| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 日本视频在线观看污污污| 欧美99| 2000亚洲男人天堂| 日日夜夜骑|