Adlandırma kuralları: “Durum” ve “Durum” [kapalı]


175

Kısa soru: "Foo.currentState" vs "Foo.status" ve "enum FooState" vs "enum gibi türlerin her ikisini de adlandırırken" Durum "yerine" Durum "ne zaman kullanılacağına dair düşüncelerinizi duymak istiyorum. FooStatus". Orada tartışılan bir sözleşme var mı? Sadece birini mi kullanmalıyız? Eğer öyleyse hangisini, eğer değilse, nasıl seçmeliyiz?


14
Heh. Geçen gün işte "devlet" adında bir üyesi ve "statü" adında başka bir üyesi olan bir yapıya rastladım ve bunlar farklı şeylerdi. Kelimelerin ne anlama geldiğini ve değiştirilip değiştirilmeyeceğini düşünmeye başladım, ancak kod eski ve acımasız ve çalışıyordu, bu yüzden uyuyan köpeğin yalan söylemesine izin verdim. Oh .. bu muhtemelen "cevap" yerine "yorum" olmalı, yorum, cevap, durum, durum ... her neyse.
smcameron

9
Ve elbette bu kapalı. Güzel SO.
jn1kk

2
@jsn sadece kapalı değil (bugünlerde ne değil?), ama yine de burada katkıda bulunduğum en popüler şey :)
Sophistifunk

8
Bu meşru bir programlama sorusudur. martinfowler.com/bliki/TwoHardThings.html

2
Durum "sağlıklı", "bozulmuş", "mevcut değil" vb. Gibi basit bir etikettir. Durum tüm kanlı detayları içerir; CPU kullanımı ve yük ortalamaları, bellek kullanımı, JVM ölçümleri, disk kullanımı vb.

Yanıtlar:


107

Bu koşullara bağlıdır

Devlet genellikle bir varlığın tüm durumunu ifade eder - belirli bir zamandaki (genellikle mevcut) tüm değerleri ve ilişkileri

Durum, bir sürecin veya iş akışındaki bir şeyin olduğu bir zaman noktasıdır - kirli mi (bu nedenle tasarruf gerektirir), tamam mı, beklemede mi, vb.

Umarım bu kararınıza yardımcı olur.


211

IMO:

status == nasılsınız? [İyi kötü]

state == ne yapıyorsun? [Dinlenme / çalışma]


17
2009'da neredeydin? Bu cevap, teknik jargonda (cpu durumu, iş parçacığı durumu, durum makinesi; dönüş durumu, baskın hacmi durumu, vb.) Ve hatta diğer her şeyde (uygulama durumu, hesap durumu, vb.) En anlamlı olanıdır. Düşünebildiğim tek şey tutarsız, "durumunuz" veya "şeylerin durumu" gibi şeylerdir, ki bu sizin durumunuz (durumunuz) yerine, devam eden şeyler hakkında iyi / kötü fikirdir. devam et).
Peter

4
Devlet aynı zamanda sadece "dinlenme / çalışma" dan daha fazla bilgi içerdiğini, ancak yaptığı iş (ya da dinlenme) ile ilgili tüm detayları içerdiğini ima eder.
BrainSlugs83

3
"Kardeşimin arka bahçesinde bir ağaç evi inşa ediyorum", daha ayrıntılı bir devlet örneği olabilirdi, önerdiğin gibi, @ BrainSlugs83. Bu örnekte benim durum yorgun / terli / enerjik / mutlu olabilir.
spemble

4
Bu örneği çok seviyorum. Temiz ve özlü. Pratik kullanımım için, Stateaçıklamanın kolayca sözel bir sıfat olabileceği (genellikle " -ing "), Statusnesnenin basit bir özelliği, bir tetikleyici tarafından veya durumu değiştirme (veya tutma) kararı için gözlemlenen değer olarak kullanılabilen düz bir sıfattır. Muhtemelen bunu düşünüyorum. Bunu yaparım ..
Alan McBee - MSFT

6
Kabul ediyorum: STATUS, STATE durumundaki bir değişikliğin sonucu veya ilerlemesidir.
Neil

16

Tipik olarak, bir nesnenin veya sistemin bir bütün olarak mevcut durumunu ifade etmek için State'i kullanacağım. Bazı eylemlerin sonucunu temsil etmek için statüyü kullanıyorum. Örneğin, bir nesnenin durumu kaydedilebilir / kaydedilemez, geçerli / geçersiz olabilir. Bir yöntemin durumu (sonuç) başarılı / başarısız / hata. Bunun durumun " koşullara göre durum veya koşul " olarak tanımlanması ile oldukça iyi olduğunu düşünüyorum , bu durumda koşullar bir eylemin / yöntemin uygulanmasıdır.


8

Devleti statüye tercih etmenin bir başka (tamamen pragmatik) nedeni, çoğulun doğrudan olmasıdır:

  • devlet -> devletler
  • durum -> durumları

Ve inan bana, er ya da geç bir liste veya dizi veya kodunuzda herhangi bir durum olacak ve değişkeni adlandırmak zorunda kalacak.


3
sadece merak, statü çoğul statüsü olmamalı?
BiAiB

Vikisözlük durumlar diyor: en.wiktionary.org/wiki/status#Noun . Diğer diller bunun için farklı çoğullara sahiptir.
robinst

9
Latince çoğul "statūs" dir, stati değil, uzun bir u ile.
Paŭlo Ebermann

6

Bence "Devlet" ten başka bir nedenden ötürü ABD'nin politik bir bölünmesini ifade etmiyorsa, birçok insan "Statüsü" bir nesnenin durumunu temsil etmek için kullanır.


11
bu yüzden hiç kullanmadım, ya da çalıştığım veya okuduğum herkes ...
Luke Schafer

4
Ne olmuş yani? Geçerli bir sebep. Bu bir adlandırma kuralı.
Dave Markle

4
Evet. Avustralya'da da 1901 yılında Commonwealth'de birleşmiş olan eski münferit kolonileri tanımlamak için Devlet terimini kullanıyoruz. Bu nedenle, yalnızca .status'u, adrese sahip veri yapılarında sıklıkla kullanılır.
Matthew Schinckel

Yani address.state = Tazmanya; mantıklı, ancak device.state'in coğrafyayı içermesi beklenmez.
spemble

3

Sanırım denkleme başka bir bakış açısı ekleyebilirsin, yani 'gönderen-istek sahibi'.

Gönderenler açısından, durumumu dinlemeye istekli herkesle iletirim. Talep edenlerin bakış açısıyla bakarken, birinin statüsünü isterdim.

Yukarıdakiler de belirsizlik açısından yorumlanabilir:

  • Tanımlı = durum
  • Tanımsız = durum

Durumun nedir? Rahat bir durumdayım.

Eminim ki bu sadece sizin durumunuz için geçerli olmayan bir yorumdur.


1

Hızlı sözlük kontrolü, durumun durumla eşanlamlı olduğunu, ancak başkalarına göre konum hakkında ek bir yorumu olduğunu gösterir .

Ben kullanırsınız Yani devlet bir birbirine herhangi örtülü sipariş verme veya konumunu yok devletlerin seti ve için statü yapmak olanlar için (belki dışı bekleme açma?). Ama bu güzel bir ayrım.


1

Anlaştığım varlıkların çoğunun (hesaplar, müşteriler) bir Durumu (TX, VA, vb.) Ve bir Durumu (Etkin, Kapalı vb.) Olabilir.

Yani yanıltıcı olma teriminin anlamı mümkündür. Bir durumun adlandırıldığı ST_CDve bir durumun olacağı standart bir veritabanı adlandırma kuralına (kişisel seçimim değil) sahibizACCT_STAT_CD .

OO milieux'unda bir numaralandırma ile bu sorun o kadar önemli değildir, çünkü katı tip güvenliğiniz varsa, derleyici kimsenin bunu yapmaya çalışmadığından emin olacaktır:

theCustomer.State = Customer.Status.Active;

Dinamik bir ortamdaysanız, daha fazla endişelenirim!

Devlet makinelerinin veya diğer devlet bilgilerinin olduğu ve bu terminolojinin baskın olduğu bir alanla uğraşıyorsanız, Devletin gayet iyi olduğunu düşünürdüm.


Adres, müşterinin değil, müşterinin adresine aittir; örneğin, Müşteri.MailingAddress.State = Iowa;
spemble

@spemble Muhtemelen ve muhtemelen değil. Ayrıca, adres olmayan bir kişiye bağlandığında doğum durumu veya ikamet durumu olabilir ve elbette adresler, lisanslar, izinler vb. bir durum makinesine / bayrağa / statüye özgü bir uygulamaya yönelik olarak Devlet gibi ortak bir sorun etki alanı terimini kullanma konusunda belirsizlik olup olmadığı sorusuyla ilgilidir. Ve sonra devletin ya da statünün farklı anlamları olup olmadığı.
Cade Roux

0

Bir süre önce şu anki projemle ilgili tam bir tartışma yaşadık. Gerçekten bir tercihim yok, ama tutarlılık önemli bir husustur.

Sharp PW-E550 (harika bir sözlük, ekleyebilirim) içindeki "durum" un ilk (birkaç tane) tanımı "birinin ya da bir şeyin belirli bir zamanda olması özel durumdur". "Statü" nin ilk tanımı "göreceli sosyal, profesyonel veya birinin veya başka bir şeyin durumu" dur. "Statü" nin ikinci (ve son) tanımı bile bu bağlamda "devlet" ten daha düşüktür: "işlerin belirli bir zamanda, özellikle politik veya ticari bağlamlarda konumu".

Dolayısıyla, sözlüğümü kullanan biri için mümkün olduğunca kolay olmasını isteseydik (New Oxford American Dictionary, 2001'i kullanır), "durum" en iyi seçim olacaktır.

Ayrıca, Dörtlü Çetenin Devlet Paterni adlı kitabında, bilgisayar sözlüğünde terimi kesin olarak belirleyen bir tasarım deseni vardır.

Bu nedenlerden dolayı "devlet" i öneririm.

PS Bu sen DDM misin? Hâlâ "devlet" e karşı "statü" konusunda acı mısınız? !!!!!!! LMAO!


-1

Aynı şey demek istiyorlar. Birinin diğerine karşı büyük bir tercihini ilan etmenin gerekli olduğunu düşünmüyorum, ancak genellikle "statü" ile devam edeceğim, çünkü Latince ve klasikçi gibi görünen şeyleri seviyorum. Yani, benim dünyamda, çoğul şema şemadır, bu yüzden benimle gitmesi için başka bir yol yoktur.


Aynı anlama gelmiyorlar.
BrainSlugs83

Bu sorunun bağlamı yazılımdır, bu yüzden soru geçerlidir. Bilgisayar sistemleri hemen hemen her zaman sistemin çeşitli bölümlerinin durumunu / durumunu belirlemek ve raporlamak zorundadır ve yazılımda hata ayıklayan veya geliştiren kişiler için tanımlayıcı bir şekilde adlandırma yapmak çok önemlidir.
1919'da

-1

Sofistifunk, eminim hem Devlet hem de Durum için argümanlar alacaksınız. Yapılacak en önemli şey, birini seçip yalnızca birini kullanmanızdır. Bunu ekibinizle tartışmanızı ve herkesin neyi kabul ettiğini görmenizi öneririm.

Bununla birlikte, önerim aşağıdaki gibidir.

Nesneye yönelik bir programlama dili kullandığınızı varsayarsak, bir nesnenin "durumu" nesnenin kendisi tarafından temsil edilir. SomeObject.state imo yanıltıcıdır. Örneğinizde "durum" un neyi temsil ettiğinden emin değilim, ama doğal sezgim bunu belirtmeyi tercih etmektir.


1
Birini seçmek ve sadece biriyle yapışmak saçmadır. İkisinin farklı anlamları ve anlamları vardır. Örneğin "GameState" veya "GameStatus" a karşı düşünün - ikisinin çok farklı sonuçları vardır ve birbirinin yerine kullanılamazlar.
BrainSlugs83

-2

Aynı şey değil. Durdu ve başladı devletler. Durdurma ve başlatma durumlardır.

Onları aynı hale getirirseniz, aracı nasıl durdurulmuş olarak tanımlarsınız, ancak şu anda başlıyor. Ya da halihazırda yapılmış ancak henüz onay sürecine girmemiş ya da onaylanmış ancak şu anda imza bekleyen bir hata koşulu ile bekleyen bir başvuru?


1
OP birini ya da diğerini kullanmayı soruyordu; ikiside değil. StartingGerçekten bunun Statetamamen farklı olduğu iddia edilebilir Stopped. Sisteminizin anlambilimine bağlıdır . Örneğin, Windows Hizmetlerini kontrol edin.
Andrew Barber
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.