Những lợi thế của việc tách 'kết quả' khỏi 'trạng thái' là gì


11

Giả sử bạn có một số quy trình tự động thường đi qua các trạng thái sau; đã lên lịch - bắt đầu - xác nhận - thực hiện - hoàn thành

Trên hết, các quy trình này có thể kết thúc sớm do lỗi hoặc hủy người dùng rõ ràng.

Sự thúc đẩy đầu tiên của tôi chỉ đơn giản là thêm lỗihủy vào danh sách các giá trị trạng thái có thể, nhưng tôi đã tự hỏi về lợi ích (khái niệm) của việc tách kết quả khỏi trạng thái (mặc dù đối với tôi, người ta có thể lập luận rằng lỗi và bị hủy cũng đơn giản là các trạng thái khác với trạng thái hoàn thành ).

Câu trả lời:


12

Trạng thái bạn gán cho các quy trình của bạn sẽ phản ánh những gì chương trình của bạn (hoặc người dùng, nếu bạn chỉ đang hình dung trạng thái) sẽ làm gì với thông tin này. Vì vậy, bạn có yêu cầu đánh giá / hiển thị trạng thái của các quy trình của mình miễn là chúng đang chạy và không có lỗi? Sau đó tách kết quả khỏi trạng thái . Nếu bạn chỉ cần trạng thái khi một quá trình kết thúc, thì đừng tách ra.

Bạn không nên mô hình hóa bất cứ điều gì chỉ vì lợi ích của mô hình. Kiểm tra tốt hơn các yêu cầu của bạn. Và nếu bạn không chắc chắn về những gì bạn có thể cần sau này, hãy chọn giải pháp nhỏ nhất, đơn giản nhất cho các yêu cầu bạn biết chắc chắn. Nếu bạn chỉ "đoán", trong 90% tất cả các trường hợp bạn sẽ đoán sai, vì vậy bạn sẽ phải thay đổi mô hình của mình sau này.


1

nhưng tôi đã tự hỏi về những lợi thế (về mặt khái niệm) của việc tách kết quả khỏi trạng thái (mặc dù đối với tôi, người ta có thể lập luận rằng lỗi và bị hủy cũng chỉ đơn giản là các trạng thái khác với trạng thái đã hoàn thành).

Có một lợi thế lớn trong việc chi tiết tiến độ và xác định các điểm không thành công (trong giới hạn hợp lý) như trong trường hợp của bạn. Tôi nghĩ rằng sự nhầm lẫn bắt nguồn từ các điều khoản 'trạng thái' và 'trạng thái' - Chúng ta phải đủ điều kiện cho các điều khoản đó. Vì vậy, ví dụ: "Trạng thái tác vụ", thậm chí không chính xác lắm, vì vậy chúng tôi có thể muốn sử dụng "Trạng thái thực thi tác vụ", tuy nhiên điều này là sai vì bạn đã có một bước thực thi. Chúng tôi có thể sử dụng tên "Trạng thái xử lý tác vụ" và các giá trị của: "bắt đầu - xác thực - thực thi - hoàn thành" có ý nghĩa hoàn hảo. Thật vậy, chúng tôi có thể thêm 'Đã hủy' vào danh sách. Tuy nhiên, 'Lỗi' không trả lời một câu hỏi như: Trạng thái xử lý tác vụ rất tốt. Có vẻ như 'Lỗi' là trạng thái phụ của Đã hoàn thành . Vậy ta phải làm sao? Chúng ta có thể đổi tên Hoàn thành đượcĐã hoàn thành OK và sau đó chúng tôi có thể thêm Hoàn thành với Lỗi vào danh sách. Vì vậy, danh sách cuối cùng của các giá trị Trạng thái xử lý tác vụ là:

  • Khởi xướng,

  • Xác thực,

  • Thi công

  • Đã hủy,

  • Đã hoàn thành

  • Đã hoàn thành với lỗi

Chỉnh sửa: bây giờ danh sách trên vẫn yêu cầu một số công việc. 4 mục đầu tiên không có từ 'OK' trong đó. Vì vậy, nếu nó tốt hơn để phù hợp với trạng thái "Hoàn thành OK". Một điều khác là 4 mục đầu tiên không có "lỗi" - Điều đó có nghĩa là gì? Điều gì xảy ra khi "Thực thi" kết thúc một cách bất thường - Điều đó có kêu gọi trạng thái mới "Đã thực hiện với Lỗi" không? Tại thời điểm này, nhiều đầu vào và phân tích có thể được yêu cầu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.