Command những điều nên biết

1 Command chỉ nên là 1 DTO với các properties với các kiểu dữ liệu thuần tuý của ngôn ngữ như: string, int, float, array. Không nên là 1 object điều này giúp Command có khả năng di chuyển nhanh trong hệ thống, lưu xuống queue hay phục hồi lên dễ dàng.
1 Command nên bảo đảm tính không thể thay đổi được của nó, các thuộc tính chỉ nên được set value vào 1 lần tại hàm construct. Không nên thực hiện các hàm set value cho command. Điều này đảm bảo tính đúng đắn của 1 Command ngay từ đầu.
1 Command chỉ gắn với 1 Command Handler mà thôi, nó giúp dễ kiểm soát và thực thi.
Tất cả công việc trong command phải đảm bảo chỉ thực hiện trong 1 transaction mà thôi, để đảm bảo tính consistent của hệ thống.
1 Command phải luôn là đúng. Điều 1: Command phải đúng, Điều 2: nếu command sai thì nhìn lại điều 1 mà đi fix code. do vậy nên validate ngay khi tạo 1 command để đảm bảo nó đúng, và với tính không thể thay đổi, nó sẽ luôn đúng khi di chuyển trong hệ thống.
1 Command chỉ nên là Edit state không nên là Query (CQRS)

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s