แต่ฉันสงสัยเกี่ยวกับข้อดี (แนวความคิด) ของการแยกผลลัพธ์ออกจากสถานะ (แม้ว่าฉันจะดูเหมือนว่าคน ๆ หนึ่งอาจแย้งว่าข้อผิดพลาดและการยกเลิกนั้นแตกต่างจากรัฐที่ทำเสร็จไปแล้ว)
มีข้อได้เปรียบที่ดีในการให้รายละเอียดความคืบหน้าและการระบุจุดล้มเหลว (ภายในขีด จำกัด ที่สมเหตุสมผล) เช่นเดียวกับในกรณีของคุณ ฉันคิดว่าความสับสนเกิดขึ้นจาก 'สถานะ' ของคำและ 'รัฐ' - เราต้องมีคุณสมบัติตามข้อกำหนดเหล่านั้น ตัวอย่างเช่น "สถานะงาน" แม้จะไม่แม่นยำมากดังนั้นเราอาจต้องการใช้ "สถานะการปฏิบัติงาน" แต่นี่เป็นสิ่งที่ผิดเพราะคุณมีขั้นตอนการดำเนินการอยู่แล้ว เราอาจใช้ชื่อ "สถานะการประมวลผลงาน" และค่าของ: "เริ่มต้น - ตรวจสอบ - ดำเนินการ - เสร็จสมบูรณ์" เหมาะสมแล้ว แน่นอนเราสามารถเพิ่ม 'ยกเลิก' ในรายการ อย่างไรก็ตาม 'ข้อผิดพลาด' ไม่ตอบคำถามเช่น: สถานะการประมวลผลงานเป็นอย่างไร ดูเหมือนว่า 'ข้อผิดพลาด' เป็นสถานะย่อยของเสร็จสมบูรณ์แล้ว ดังนั้นสิ่งที่เราจะทำ? เราสามารถเปลี่ยนชื่อ เสร็จสมบูรณ์เป็นเสร็จสมบูรณ์ตกลงแล้วเราสามารถเพิ่มเสร็จสมบูรณ์พร้อมข้อผิดพลาดในรายการ ดังนั้นรายการสุดท้ายของค่าสถานะการประมวลผลงานคือ:
เริ่มต้น
การตรวจสอบ
รัน
ยกเลิก,
เสร็จสมบูรณ์ตกลง
เสร็จสิ้นโดยมีข้อผิดพลาด
แก้ไข: ตอนนี้รายการข้างต้นยังคงต้องใช้งานบางอย่าง 4 รายการแรกไม่มีคำว่า 'ตกลง' ในรายการ ดังนั้นถ้าอยู่ที่นั่นให้ตรงกับสถานะ "เสร็จสมบูรณ์" ดีกว่า อีกอย่างคือรายการ 4 รายการแรกไม่มี "with error" - หมายความว่าอย่างไร จะเกิดอะไรขึ้นเมื่อ "การดำเนินการ" สิ้นสุดลงอย่างผิดปกติ - การเรียกสถานะใหม่ของ "ดำเนินการโดยมีข้อผิดพลาด" นั้นเป็นอย่างไร ณ จุดนี้อาจจำเป็นต้องมีการป้อนข้อมูลและการวิเคราะห์มากขึ้น