ข้อดีของการแยก 'ผลลัพธ์' จาก 'สถานะ' คืออะไร


11

สมมติว่าคุณมีกระบวนการอัตโนมัติบางอย่างที่โดยทั่วไปต้องผ่านสภาวะต่อไปนี้ กำหนดเวลา - เริ่ม - ตรวจสอบ - ดำเนินการ - เสร็จสมบูรณ์

ด้านบนของกระบวนการเหล่านี้สามารถสิ้นสุดก่อนกำหนดเนื่องจากข้อผิดพลาดหรือการยกเลิกผู้ใช้อย่างชัดเจน

แรงกระตุ้นแรกของฉันคือการเพิ่มข้อผิดพลาดและยกเลิกไปยังรายการของค่าสถานะที่เป็นไปได้ แต่ฉันสงสัยเกี่ยวกับข้อดี (แนวคิด) ของการแยกผลลัพธ์จากสถานะ (แม้ว่าฉันจะดูเหมือนว่าอาจโต้แย้งว่าข้อผิดพลาดและการยกเลิกนั้นยัง แตกต่างจากรัฐที่เสร็จสมบูรณ์ )

คำตอบ:


12

สถานะที่คุณกำหนดให้กับกระบวนการของคุณควรสะท้อนถึงสิ่งที่โปรแกรมของคุณ (หรือผู้ใช้ถ้าคุณเป็นเพียงการแสดงภาพสถานะ) จะทำอย่างไรกับข้อมูลนี้ ดังนั้นคุณมีความต้องการในการประเมิน / แสดงสถานะของกระบวนการของคุณตราบใดที่พวกเขากำลังทำงานและไม่มีข้อผิดพลาด? จากนั้นแยกต่างหากผลจากสถานะ หากคุณต้องการสถานะเมื่อกระบวนการสิ้นสุดลงอย่าแยกจากกัน

คุณไม่ควรทำแบบจำลองอะไรเลยเพื่อประโยชน์ในการสร้างแบบจำลอง ตรวจสอบความต้องการของคุณได้ดีขึ้น และหากคุณไม่แน่ใจเกี่ยวกับสิ่งที่คุณต้องการในภายหลังให้เลือกโซลูชันที่เล็กที่สุดและง่ายที่สุดสำหรับความต้องการที่คุณทราบแน่นอน หากคุณเพียงแค่ "เดา" ใน 90% ของทุกกรณีคุณจะเดาผิดดังนั้นคุณจะต้องเปลี่ยนแบบจำลองของคุณในภายหลัง


1

แต่ฉันสงสัยเกี่ยวกับข้อดี (แนวความคิด) ของการแยกผลลัพธ์ออกจากสถานะ (แม้ว่าฉันจะดูเหมือนว่าคน ๆ หนึ่งอาจแย้งว่าข้อผิดพลาดและการยกเลิกนั้นแตกต่างจากรัฐที่ทำเสร็จไปแล้ว)

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

  • เริ่มต้น

  • การตรวจสอบ

  • รัน

  • ยกเลิก,

  • เสร็จสมบูรณ์ตกลง

  • เสร็จสิ้นโดยมีข้อผิดพลาด

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.