Open dev-hamster opened 1 year ago
reduce
p313 reduce()로 할 수 있는 것들 시간 여행 디버깅
p313 reduce()로 할 수 있는 것들
시간 여행 디버깅
reduce로 시간 여행을 어떻게 할 수 있는지 알아보았습니다.
event
reduce를 활용해 일련의 events 이후 account 의 잔고 변화를 알 수 있습니다.
events
account
const events = [ { type: 'open', id: 'account1', balance: 150 }, { type: 'open', id: 'account2', balance: 0, }, { type: 'transfer', fromId: 'account1', toId: 'account2': amount: 50 } ] const accounts = events.reduce((accounts, event) => { if (event.type === 'open') { accounts[event.id].balance = event.balance } else if (event.type === 'transfer') { accounts[event.fromId].balance -= event.amount accounts[event.toId].balance += event.amount } return accounts }, {}) // { // account1: { balance: 100 }, // account2: { balance: 50 } // }
const accounts = events.splice(-1).reduce((accounts, event) => { if (event.type === 'open') { delete accounts[event.id] } else if (event.type === 'transfer') { accounts[event.fromId].balance += event.amount accounts[event.toId].balance -= event.amount } return accounts }, {}) // { // account1: { balance: 150 }, // account2: { balance: 0 } // }
참고-https://blog.risingstack.com/event-sourcing-with-examples-node-js-at-scale/
132p 하단 "되돌리기" 에 대한 답이 될 수 있겠네요!
reduce
로 시간 여행 하기reduce
로 시간 여행을 어떻게 할 수 있는지 알아보았습니다.reduce
로event
종료 후 상태 계산하기reduce
를 활용해 일련의events
이후account
의 잔고 변화를 알 수 있습니다.마지막 이벤트 되돌리기
참고-https://blog.risingstack.com/event-sourcing-with-examples-node-js-at-scale/