Đây là bài 3 của chương 2: Mô hình miền và quyền sở hữu, thuộc khóa demo System Design. Nội dung được dùng để trải nghiệm cấu trúc chương trình học; hãy thực hành trên dữ liệu và môi trường thử nghiệm riêng. Trong dự án xuyên suốt, bạn sẽ xây dựng bản thiết kế nền tảng học trực tuyến với danh mục, video, tiến độ và thông báo.
Mục tiêu cụ thể
Ranh giới miền giúp xác định nơi sở hữu dữ liệu và quy tắc. Bắt đầu bằng các khái niệm người dùng hiểu trước khi chọn database hay hàng đợi.
Đề bài thực hành
Vẽ ranh giới cho các miền và đánh dấu ai được ghi vào từng loại dữ liệu.
Quy trình từng bước
- Xác định đầu vào, đầu ra và trạng thái trước khi bắt đầu. Với mô hình miền và quyền sở hữu, hãy ghi lại kết quả bạn mong muốn trước khi chạy ví dụ.
- Tạo bản thử nhỏ nhất trong một thư mục hoặc môi trường riêng. Chỉ dùng dữ liệu giả; không sao chép token, tài khoản hoặc dữ liệu cá nhân vào bài tập.
- Thực hiện yêu cầu: Vẽ ranh giới cho các miền và đánh dấu ai được ghi vào từng loại dữ liệu.
- Quan sát kết quả và so sánh từng điều kiện chấp nhận. Khi chưa đạt, thay đổi một yếu tố mỗi lần để biết thay đổi nào tạo ra tác động.
- Lưu kết quả cùng ghi chú giải thích quyết định. Người khác cần tái hiện được thao tác mà không phải đoán cấu hình hoặc dữ liệu ban đầu.
Điểm khởi đầu
Catalog: khóa học, chương, bài học.
Enrollment: đăng ký học và quyền truy cập.
Learning: tiến độ và lịch sử học.
Media: nguồn video và bản phát.
Notification: yêu cầu gửi và kết quả gửi.
Đối chiếu kết quả
- Mỗi dữ liệu có chủ sở hữu
- Luồng nghiệp vụ đi qua ranh giới rõ
- Không có nhiều nơi sửa cùng quy tắc
Nếu kết quả khác dự kiến
Chia service chỉ theo bảng dữ liệu dễ làm mọi tác vụ phải gọi nhiều hệ thống. Một modular monolith có thể là lựa chọn ban đầu hợp lý.
Chụp hoặc ghi lại đầu vào và đầu ra trước khi sửa. Xác nhận tệp đã lưu, đúng môi trường đang chạy và dữ liệu thử vẫn giữ nguyên. Sau khi sửa, chạy lại cả trường hợp ban đầu lẫn một trường hợp biên để tránh sửa được một nhánh nhưng làm hỏng nhánh khác.
Sản phẩm cần lưu
- Mã nguồn hoặc sơ đồ của bản thử.
- Dữ liệu đầu vào có thể dùng lại.
- Ba kết quả kiểm tra kèm giải thích.
- Một ghi chú về điều bạn sẽ làm khác nếu triển khai cho người dùng thật.