Thứ Bảy, 31 tháng 3, 2018

Command bus thật chất chính là service layer nhưng được implement cung cấp thêm các tính năng để giải quyết các điểm yếu của service layer


Service Layer
  • Mỗi service có 1 interface riêng, gần như không có gì chung
  • khó có thể thêm được phần nào phía trước hay phía sau
  • 1 Service thường thực hiện nhiều việc, dễ phụ thuộc vào nhiều domain điều này thường dẫn tới vi phạm tính SRP trong lập trình, cũng như nguyên tắc Open/Close
Command Bus
  • Chung 1 Interface
  • Với việc tất cả đều được thực hiện chung 1 interface cho ta khả năng wrap 1 hành động nào trước khi thực hiện 1 Command, như start 1 transaction, validator… Lưu ý: điều này rất quan trọng, tất cả việc thực hiện trong 1 command chỉ nên trong 1 transaction.
  • 1 Command chỉ thực hiện 1 việc, có 1 nhiệm vụ riêng, tăng tính SRP
  • Hệ thống làm việc thông qua các command, tăng tính Hexagon của hệ thống (1 code có thể được dùng với nhiều endpoint) dễ tiếp cận theo hướng microservice

Reactions: