關於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框架入門實踐架構框架
- 關於主資料的實踐和思考
- 關於效能優化的一些實踐優化
- 關於C# Span的一些實踐C#
- 關於 JS 模組化的最佳實踐總結JS
- 快手關於海量模型資料處理的實踐模型
- 【原創】關於JAVA複習的最佳敏捷實踐Java敏捷
- 關於訂單庫存扣減的最佳實踐
- 駭客新聞上最近CQRS的討論和實踐經驗分享
- [譯] 關於 PHP 7.4 的最新訊息PHP
- keycloak~關於授權碼認證中的scope的實踐
- 百度關於互聯互通的思考與實踐
- 關於Python一等函式的一點實踐Python函式
- Facebook團隊關於網頁快取的再實踐網頁快取
- 領域驅動設計DDD和CQRS架構模式落地實踐架構模式
- 最新進展|關於Python治理模式的投票Python模式
- 關於Java健壯性的一些思考與實踐!Java
- 關於Python中math 和 decimal 模組的解析與實踐PythonDecimal
- 利用 Watermill 實現 Golang CQRSGolang
- 領域驅動設計(DDD)實踐之路(二):事件驅動與CQRS事件
- 使用TypeScript和nextjs實現基於CQRS的微服務的銀行API原始碼TypeScriptNextJS微服務API原始碼
- 一個關於php兩個陣列compare實踐PHP陣列
- 一下科技關於docker實踐分享摘錄Docker
- 關於CNNet,cnwap j2me聯網實踐。CNN
- ECommerce Microservices:基於DDD+CQRS的實用電子商務.NET原始碼ROS原始碼
- 收藏 | Google 釋出關於機器學習工程的最佳實踐Go機器學習
- 關於 es 資料同步的一次效能優化實踐優化
- 基於github的CICD實踐Github
- C/C++關於結構的緊湊填充的幾條最佳實踐C++
- vivo 海量微服務架構最新實踐微服務架構
- 【實踐篇】基於CAS的單點登入實踐之路
- 關於 React 效能最佳化和數棧產品中的實踐React
- 基於DevOps的容器安全實踐dev
- 深析filemap.js——關於JS的演算法及優化的實踐JS演算法優化
- 關於學習.NET的歷程回顧與今後的探索實踐方向
- vue專案實踐-前後端分離關於許可權的思路Vue後端
- 網易互娛基於 Flink 的支付環境全關聯分析實踐
- Android 中關於增刪改查資料庫表實踐Android資料庫
- 【整理】CocoaPods打包私有庫實踐 | 最新版