Apa keuntungan memisahkan 'hasil' dari 'status'

11

Katakanlah Anda memiliki beberapa proses otomatis yang umumnya melalui status berikut; dijadwalkan - diinisiasi - memvalidasi - mengeksekusi - selesai

Selain itu, proses ini dapat berakhir sebelum waktunya karena kesalahan atau pembatalan pengguna secara eksplisit.

Dorongan pertama saya adalah menambahkan kesalahan dan membatalkan ke daftar nilai status yang mungkin, tetapi saya bertanya-tanya tentang keuntungan (konseptual) dari memisahkan hasil dari status (walaupun bagi saya mungkin ada yang berpendapat bahwa kesalahan dan dibatalkan juga hanya negara yang berbeda dari negara selesai ).

menandai
sumber

Jawaban:

12

Status yang Anda tetapkan untuk proses Anda harus mencerminkan apa yang akan dilakukan oleh program Anda (atau pengguna, jika Anda hanya memvisualisasikan status) dengan informasi ini. Jadi, apakah Anda memiliki persyaratan untuk mengevaluasi / menunjukkan keadaan proses Anda selama mereka berjalan dan tidak menunjukkan kesalahan? Kemudian pisahkan hasil dari status . Jika Anda hanya perlu status saat proses telah berakhir, maka jangan pisahkan.

Anda tidak boleh memodelkan apa pun hanya demi pemodelan. Lebih baik periksa kebutuhan Anda. Dan jika Anda tidak yakin tentang apa yang Anda butuhkan nanti, pilih solusi terkecil, paling sederhana untuk persyaratan yang Anda tahu pasti. Jika Anda hanya "menebak-nebak", dalam 90% dari semua kasus Anda akan menebak salah, jadi Anda harus mengubah model Anda nanti.

Doc Brown
sumber
1

tetapi saya bertanya-tanya tentang keuntungan (konseptual) dari memisahkan hasil dari status (walaupun bagi saya tampaknya orang mungkin berpendapat bahwa kesalahan dan dibatalkan juga hanya keadaan yang berbeda dari keadaan selesai).

Ada keuntungan besar dalam merinci kemajuan dan mengidentifikasi poin kegagalan (dalam batas yang wajar) seperti dalam kasus Anda. Saya pikir kebingungan berasal dari istilah 'status' dan 'negara' - Kita harus memenuhi syarat persyaratan itu. Jadi misalnya, "Status Tugas", bahkan itu tidak terlalu tepat, jadi kami mungkin ingin menggunakan "Status Pelaksanaan Tugas", namun ini salah karena Anda sudah memiliki langkah eksekusi. Kami dapat menggunakan nama "Status Pemrosesan Tugas" dan nilai-nilai dari: "dimulai - memvalidasi - mengeksekusi - selesai" masuk akal. Memang kita bisa menambahkan 'Dibatalkan' ke daftar. Namun, 'Kesalahan' tidak menjawab pertanyaan seperti: Apa itu Status Pemrosesan Tugas dengan sangat baik. Sepertinya 'Kesalahan' adalah sub-status Selesai . Jadi apa yang kita lakukan? Kami bisa mengganti nama menjadi Selesai menjadiSelesai OK lalu kita bisa menambahkan Selesai Dengan Kesalahan ke dalam daftar. Jadi daftar akhir dari nilai Status Pemrosesan Tugas adalah:

  • Dimulai,

  • Divalidasi,

  • Mengeksekusi,

  • Dibatalkan,

  • Selesai OK,

  • Lengkap dengan Kesalahan

Sunting: sekarang daftar di atas masih memerlukan beberapa pekerjaan. 4 item pertama tidak memiliki kata 'OK' di dalamnya. Jadi jika lebih baik berada di sana untuk mencocokkan kondisi "Completed OK". Hal lain adalah bahwa 4 item pertama tidak memiliki "dengan kesalahan" - Apa artinya itu? Apa yang terjadi ketika "Eksekusi" secara abnormal berakhir - Apakah itu memerlukan status "Eksekusi dengan Kesalahan" yang baru? Pada titik ini, lebih banyak input dan analisis mungkin diperlukan.

Tidak mungkin
sumber