關於CQRS的最新實踐
開發的node-cqrs庫已經完成了,我還是喜歡實踐出真知。
另外,我們知道cqrs內部是eventStore儲存,那麼如何讓資料和資料庫非同步同步呢?說白了就是儲存到另一個資料庫中,然後讓 query路徑去查詢那個DB,其實很簡單,就是弄個監聽器就可以了
/eventHandles/ChangeUserName.js 這個是個event處理者,也是監聽者,CQRS框架會自動觸發它。
虛擬碼如下:
先寫這麼多, node-cqrs 將從0.0.3版本不斷完善,希望代替 node.js 的expressjs框架。努力!!
下一步會簡化開發流程,儘量讓容器和框架把複雜部分遮蔽;並充分利用JS優勢。
理論很重要,落地更重要,能用起來最重要。
https://github.com/brighthas/node-cqrs/
這是lib和test,不過很多example還在整理,下面我說一下我實踐CQRS的過程。
我需要一個命令生成CQRS框架。
cqrs -c myapp 透過這個命令我們生成了如下目錄,
run.js // 啟動檔案
aggres
- User.js
eventHandles
- UserchangeName.js
commands
- ChangeUserName.js
commandHandles
- ChangeUserNameHandle.js
其實我叫CQRS這個框架應該是CRS,因為QUERY查詢可以用event Handle的方式監聽處理和擴充套件出來。
run.js 大概的程式碼如下:
var cqrs = require('node-cqrs'); var cmd = new cqrs.commands.ChangeUserName('brighthas'); var callback = function(result){ ... } cqrs.commandBus.publish(cmd,callback); <p class="indent"> |
另外,我們知道cqrs內部是eventStore儲存,那麼如何讓資料和資料庫非同步同步呢?說白了就是儲存到另一個資料庫中,然後讓 query路徑去查詢那個DB,其實很簡單,就是弄個監聽器就可以了
/eventHandles/ChangeUserName.js 這個是個event處理者,也是監聽者,CQRS框架會自動觸發它。
虛擬碼如下:
function ChangeUserName(e){ var data = e.data; db.save(data); } <p class="indent"> |
先寫這麼多, node-cqrs 將從0.0.3版本不斷完善,希望代替 node.js 的expressjs框架。努力!!
下一步會簡化開發流程,儘量讓容器和框架把複雜部分遮蔽;並充分利用JS優勢。
理論很重要,落地更重要,能用起來最重要。
[該貼被brighthas於2012-08-28 20:29修改過]
相關文章
- 關於物聯網框架的實踐框架
- CQRS架構和Axon框架入門實踐架構框架
- 關於主資料的實踐和思考
- 關於CQRS及非同步一致性的疑惑非同步
- 關於《推薦系統實踐》
- 關於實踐CMMI高成熟度等級的實踐步驟
- 關於 JS 模組化的最佳實踐總結JS
- 關於效能優化的一些實踐優化
- 關於C# Span的一些實踐C#
- 關於 vue 全家桶的四個 “最佳實踐”Vue
- 8月最新基於kubernetes的應用編排實踐
- CQRS與OO思想的關係
- 駭客新聞上最近CQRS的討論和實踐經驗分享
- 【原創】關於JAVA複習的最佳敏捷實踐Java敏捷
- 關於訂單庫存扣減的最佳實踐
- 快手關於海量模型資料處理的實踐模型
- 收藏 | Google 釋出關於機器學習工程的最佳實踐Go機器學習
- [譯] 關於 PHP 7.4 的最新訊息PHP
- CQRS實用DEMO
- CQRS模式要好於MVC模型模式MVC模型
- Facebook團隊關於網頁快取的再實踐網頁快取
- 百度關於互聯互通的思考與實踐
- 關於Netty的一些理解、實踐與陷阱Netty
- 關於備份和恢復的10個最佳實踐
- Java 理論與實踐: 關於異常的爭論Java
- 《推薦系統實踐》關於Latent Factor Model
- 關於Python一等函式的一點實踐Python函式
- 關於Java健壯性的一些思考與實踐!Java
- 關於 iOS HTTP2.0 的一次學習實踐iOSHTTP
- 關於隱式型別var使用最佳實踐的討論型別
- 關於Python中math 和 decimal 模組的解析與實踐PythonDecimal
- 領域驅動設計DDD和CQRS架構模式落地實踐架構模式
- 最新進展|關於Python治理模式的投票Python模式
- 一下科技關於docker實踐分享摘錄Docker
- 基於github的CICD實踐Github
- 基於 KubeVela 的機器學習實踐機器學習
- vivo 海量微服務架構最新實踐微服務架構
- 關於 es 資料同步的一次效能優化實踐優化