Konvensi penamaan: "Status" versus "Status" [ditutup]

175

Pertanyaan cepat: Saya ingin mendengar pendapat Anda tentang kapan harus menggunakan "Status" versus "Status" saat memberi nama kedua bidang seperti "Foo.currentState" vs "Foo.status" dan ketik, seperti "enum FooState" vs "enum Status Foo ". Apakah ada kebaktian yang dibahas di sana? Haruskah kita menggunakan satu saja? Jika demikian yang mana, dan jika tidak, bagaimana kita memilih?

Sophistifunk
sumber
14
Heh. Suatu hari di tempat kerja saya menemukan beberapa struktur yang memiliki anggota bernama "negara" dan anggota lain bernama "status," dan mereka adalah hal yang berbeda. Saya mulai berpikir tentang apa arti kata-kata itu, dan apakah akan mengubahnya, tetapi kodenya sudah tua dan kasar dan berfungsi, jadi saya membiarkan anjing tidur itu berbohong. Oh .. ini mungkin seharusnya menjadi "komentar," daripada sebuah "jawaban, eh? Komentar, jawaban, status, status ... apa pun.
smcameron
9
Dan tentu saja ini sudah ditutup. Bagus, SO.
jn1kk
2
@ jsn tidak hanya ditutup (apa yang tidak hari ini?), tapi masih merupakan hal yang paling populer yang saya kontribusikan di sini :)
Sophistifunk
8
Ini adalah pertanyaan pemrograman yang sah. martinfowler.com/bliki/TwoHardThings.html
2
Status adalah label sederhana, seperti "sehat", "terdegradasi", "tidak tersedia", dll. Negara mencakup semua detail berdarah; misalnya, utilisasi CPU dan memuat rata-rata, util memori, metrik JVM, penggunaan disk, dll.

Jawaban:

107

Itu tergantung pada konteksnya

Negara umumnya mengacu pada seluruh keadaan suatu entitas - semua nilai dan hubungannya pada titik waktu tertentu (biasanya, saat ini)

Status lebih merupakan titik waktu, katakanlah, di mana ada sesuatu dalam proses atau alur kerja - apakah kotor (karena itu memerlukan penyimpanan), apakah lengkap, apakah masih menunggu input, dll.

Saya harap ini membantu Anda dalam keputusan Anda.

Luke Schafer
sumber
211

IMO:

status == apa kabar? [baik / buruk]

negara == apa yang kamu lakukan? [istirahat / bekerja]

spemble
sumber
17
Di mana Anda pada tahun 2009? Jawaban ini paling masuk akal dalam jargon teknis (status cpu, status utas, status mesin, status pengembalian, status volume serangan, dll.), Dan bahkan banyak hal lainnya (status aplikasi, status akun, dll.). Satu-satunya hal yang saya anggap tidak konsisten adalah hal-hal seperti "keadaan" atau "keadaan" yang lebih seperti "status" Anda (gagasan baik / buruk tentang hal-hal yang sedang terjadi, daripada hal-hal yang lanjutkan sendiri).
Peter
4
Negara juga menyiratkan bahwa ia menyimpan lebih banyak informasi dari sekadar "beristirahat / bekerja" - tetapi semua detail tentang pekerjaan (atau istirahat) yang dilakukannya.
BrainSlugs83
3
"Saya sedang membangun rumah pohon di halaman belakang saudara saya" akan menjadi contoh yang lebih rinci tentang keadaan , seperti yang Anda sarankan, @ BrainSlugs83. Dalam contoh ini status saya mungkin lelah / berkeringat / berenergi / bahagia.
spemble
4
Saya suka contoh ini. Bersih dan ringkas. Untuk penggunaan praktis saya, saya mungkin menggeneralisasikannya ke aksioma dengan mengatakan bahwa itu Stateharus mencerminkan "node yang ditunjukkan" dalam grafik node state-machine (atau workflow) state, di mana deskripsi mungkin dengan mudah menjadi kata sifat verbal (sering berakhir dengan " -ing "), sedangkan Statusadalah properti sederhana dari objek, kata sifat sederhana, yang dapat digunakan oleh pemicu atau sebagai nilai yang diamati untuk keputusan untuk mengubah (atau menjaga) keadaan. Saya mungkin terlalu memikirkannya. Saya melakukan itu ..
Alan McBee - MSFT
6
Saya setuju: STATUS adalah hasil atau kemajuan dari perubahan NEGARA.
Neil
16

Biasanya saya akan menggunakan State untuk mengartikan kondisi saat ini dari suatu objek atau sistem secara keseluruhan. Saya menggunakan status untuk mewakili hasil dari beberapa tindakan. Misalnya, keadaan suatu objek dapat disimpan / tidak disimpan, valid / tidak valid. Status (hasil) dari suatu metode berhasil / tidak berhasil / salah. Saya pikir jibes ini cukup baik dengan definisi status sebagai " negara atau kondisi sehubungan dengan keadaan ," keadaan dalam kasus ini adalah penerapan suatu tindakan / metode.

tvanfosson
sumber
8

Alasan lain (sepenuhnya pragmatis) untuk lebih memilih status daripada status adalah bahwa jamak itu jelas:

  • negara bagian -> negara bagian
  • status -> statuses

Dan percayalah, cepat atau lambat Anda akan memiliki daftar atau larik atau status apa pun dalam kode Anda dan harus memberi nama variabel.

robinst
sumber
3
hanya ingin tahu, bukankah status jamak menjadi stati?
BiAiB
Wiktionary mengatakan status: en.wiktionary.org/wiki/status#Noun . Bahasa lain memiliki bentuk jamak yang berbeda untuk itu.
robinst
9
Bentuk jamak latin adalah "statu", dengan panjang u, bukan stati.
Paŭlo Ebermann
6

Saya pikir banyak orang menggunakan "Status" untuk mewakili keadaan suatu objek jika tanpa alasan lain selain "Negara" mengacu pada pembagian politik Amerika Serikat.

Dave Markle
sumber
11
itu bukan alasan yang pernah saya gunakan, atau siapa pun yang saya punya setiap bekerja dengan atau teks membaca dari ...
Luke Schafer
4
Terus? Itu alasan yang sahih. Ini adalah konvensi penamaan.
Dave Markle
4
Ya. Di Australia juga, kami menggunakan istilah Negara untuk menggambarkan bekas koloni individu yang disatukan dalam Persemakmuran pada tahun 1901. Jadi, saya cenderung hanya menggunakan status, karena status. Sering digunakan dalam struktur data yang memiliki alamat.
Matthew Schinckel
Jadi address.state = Tasmania; masuk akal, tetapi device.state tidak akan diharapkan melibatkan geografi.
spemble
3

Saya pikir Anda bisa menambahkan perspektif lain ke persamaan, yaitu 'pengirim-pemohon'.

Dari sudut pandang pengirim, saya akan mengomunikasikan keadaan saya dengan siapa pun yang mau mendengarkan. Sementara dari sudut pandang pemohon, saya akan meminta status seseorang.

Hal di atas juga bisa ditafsirkan dari sudut pandang ketidakpastian:

  • Defined = state
  • Tidak ditentukan = status

Apa statusmu Saya dalam keadaan santai.

Saya cukup yakin ini hanya satu interpretasi, yang mungkin tidak berlaku untuk situasi khusus Anda.

Michel Verkaik
sumber
1

Pemeriksaan kamus cepat mengungkapkan bahwa status adalah sinonim untuk keadaan, tetapi memiliki interpretasi tambahan tentang posisi relatif terhadap yang lain .

Jadi saya akan menggunakan negara untuk satu set negara yang tidak memiliki urutan atau posisi implisit relatif satu sama lain, dan status untuk mereka yang melakukannya (mungkin off-standby-on?). Tapi itu perbedaan yang bagus.

Brian Agnew
sumber
1

Banyak entitas yang saya tangani (akun, pelanggan) mungkin memiliki Status (TX, VA, dll.) Dan Status (Aktif, Tertutup, dll.)

Jadi poin tentang istilah yang menyesatkan adalah mungkin. Kami memiliki konvensi penamaan basis data standar (bukan pilihan pribadi saya) di mana suatu negara dinamai ST_CDdan statusnya akan seperti itu ACCT_STAT_CD.

Dengan enum di milieux OO, masalah ini tidak begitu penting, karena jika Anda memiliki keamanan tipe yang ketat, kompiler akan memastikan bahwa tidak ada yang mencoba melakukan ini:

theCustomer.State = Customer.Status.Active;

Jika Anda berada di lingkungan yang dinamis, saya akan lebih khawatir!

Jika Anda berurusan dengan domain di mana mesin negara atau informasi negara lainnya dan terminologi itu dominan, maka saya akan berpikir Negara baik-baik saja.

Cade Roux
sumber
Alamat milik alamat pelanggan, bukan pelanggan sendiri, misalnya, theCustomer.MailingAddress.State = Iowa;
spemble
@spemble Mungkin, dan mungkin juga tidak. Ini juga bisa menjadi kondisi kelahiran atau keadaan tempat tinggal ketika dilampirkan ke seseorang yang tidak memiliki alamat, dan tentu saja dapat dilampirkan ke banyak entitas lain seperti alamat, lisensi, izin, dll. Dalam kasus apa pun, saya tidak yakin itu relevan dengan pertanyaan apakah ada ambiguitas dengan penggunaan istilah domain masalah umum seperti Negara untuk implementasi khusus dari mesin / bendera / status negara. Dan kemudian apakah status atau status memiliki atau tidak memiliki arti yang berbeda.
Cade Roux
0

Kami memiliki debat yang tepat tentang proyek saya saat ini beberapa waktu lalu. Saya benar-benar tidak punya preferensi, tetapi konsistensi adalah pertimbangan penting.

Definisi pertama "(ada beberapa)" keadaan "di Sharp PW-E550 saya (kamus yang bagus, saya dapat tambahkan) adalah" kondisi khusus di mana seseorang atau sesuatu berada pada waktu tertentu. " Definisi pertama "status" adalah "status sosial, profesional, atau status relatif seseorang atau sesuatu". Bahkan definisi "status" kedua (dan terakhir) lebih rendah daripada "negara" dalam konteks ini: "posisi urusan pada waktu tertentu, terutama dalam konteks politik atau komersial."

Jadi, jika kita menginginkannya semudah mungkin bagi seseorang yang menggunakan kamus saya (ini menggunakan New Oxford American Dictionary, 2001), "negara" akan menjadi pilihan terbaik.

Selain itu, ada pola desain yang dijelaskan dalam buku Gang of Four yang disebut Pola Negara, yang dengan kuat menetapkan istilah dalam leksikon komputasi.

Untuk alasan ini saya sarankan "negara".

PS Apakah itu Anda DDM? Apakah Anda masih pahit tentang "status" versus "status"? !!!!!!! LMAO!

les2
sumber
-1

Ya, mereka memiliki arti yang sama. Saya tidak berpikir perlu untuk mengumumkan preferensi besar satu dari yang lain, tapi saya biasanya akan pergi dengan "status", karena saya suka hal-hal yang terdengar Latinate dan klasik. Maksud saya, di dunia saya, bentuk jamak dari skema adalah schemata, jadi tidak ada cara lain untuk itu, dengan saya.

kekacauan
sumber
Mereka tidak bermaksud hal yang sama.
BrainSlugs83
Konteks untuk pertanyaan ini adalah perangkat lunak, itulah mengapa pertanyaan itu valid. Sistem komputer hampir selalu harus menentukan & melaporkan keadaan / status berbagai bagian sistem dan penamaan hal-hal secara deskriptif menjadi sangat penting bagi orang-orang yang men-debug atau meningkatkan perangkat lunak.
spemble
-1

Sophistifunk, saya yakin Anda akan mendapatkan argumen untuk Status dan Negara. Yang paling penting untuk dilakukan adalah Anda memilih satu, dan hanya menggunakan satu. Saya sarankan mendiskusikan hal ini dengan tim Anda dan melihat apa yang disetujui semua orang.

Yang mengatakan, saran saya adalah sebagai berikut.

Dengan asumsi Anda menggunakan bahasa pemrograman berorientasi objek, "keadaan" objek diwakili oleh objek itu sendiri. SomeObject.state menyesatkan imo. Saya tidak yakin apa yang "status" wakili dalam contoh Anda, tetapi intuisi alami saya adalah lebih suka menyatakan ini.

hobodave
sumber
1
Memilih satu dan bertahan hanya dengan satu adalah tidak masuk akal. Keduanya memiliki makna dan implikasi yang berbeda. Pertimbangkan misalnya "GameState" versus "GameStatus" - keduanya memiliki implikasi yang sangat berbeda dan tidak dapat dipertukarkan.
BrainSlugs83
-2

Bukan hal yang sama sekali. Berhenti dan mulai adalah status. Berhenti dan mulai adalah status.

Jika Anda membuat mereka hal yang sama bagaimana Anda menggambarkan kendaraan itu berhenti tetapi saat ini mulai. Atau aplikasi yang saat ini diajukan tetapi belum memasuki proses persetujuan atau sedang disetujui tetapi saat ini ditahan dengan kondisi kesalahan menunggu tanda tangan?

Andy Robinson
sumber
1
OP bertanya tentang menggunakan satu atau yang lain; tidak keduanya. Orang bisa berargumen bahwa Startingmemang benar- Statebenar berbeda dari Stopped. Itu tergantung pada semantik sistem Anda . Periksa, misalnya, Layanan Windows.
Andrew Barber