Krótkie pytanie: Chciałbym usłyszeć, co myślisz o tym, kiedy używać określenia „Stan”, a kiedy „Status”, podczas nazywania obu pól, takich jak „Foo.currentState”, „Foo.status” i typów, takich jak „wyliczenie FooState” kontra „wyliczenie” FooStatus ”. Czy jest tam dyskutowana konwencja? Czy powinniśmy używać tylko jednego? Jeśli tak, który z nich, a jeśli nie, to jak wybrać?
naming-conventions
nomenclature
Sophistifunk
źródło
źródło
Odpowiedzi:
To zależy od kontekstu
Stan ogólnie odnosi się do całego stanu bytu - wszystkich jego wartości i relacji w określonym momencie (zwykle jest to bieżące)
Status jest raczej punktem czasowym, powiedzmy, w którym coś jest w trakcie procesu lub przepływu pracy - czy jest brudne (dlatego wymaga zapisania), czy jest kompletne, czy oczekuje na wprowadzenie danych itp.
Mam nadzieję, że pomoże ci to w podjęciu decyzji.
źródło
IMO:
status == jak się masz? [dobry zły]
stan == co robisz? [odpoczynek / praca]
źródło
State
powinien on odzwierciedlać „wskazany węzeł” w grafie węzłów stanu maszyny stanu (lub przepływu pracy), gdzie opis może łatwo być przymiotnikiem słownym (często kończy się na „ -ing ”), podczas gdyStatus
jest prostą właściwością obiektu, zwykłym przymiotnikiem, który może być użyty przez wyzwalacz lub jako wartość obserwowana dla decyzji o zmianie (lub utrzymaniu) stanu. Prawdopodobnie za dużo się nad tym zastanawiam. Robię to…Zwykle używam stanu na oznaczenie bieżącego stanu obiektu lub systemu jako całości. Używam statusu do przedstawienia wyniku jakiegoś działania. Na przykład stan obiektu może być zapisany / niezapisany, ważny / nieprawidłowy. Status (wynik) metody jest pomyślny / nieudany / błąd. Myślę, że dość dobrze współgra to z definicją statusu jako „ stan lub warunek w odniesieniu do okoliczności ”, przy czym okolicznościami w tym przypadku jest zastosowanie działania / metody.
źródło
Innym (całkowicie pragmatycznym) powodem, dla którego warto przedkładać stan nad status, jest to, że liczba mnoga jest prosta:
I wierz mi, prędzej czy później będziesz miał listę lub tablicę lub cokolwiek innego ze stanów w swoim kodzie i będziesz musiał nazwać zmienną.
źródło
Myślę, że wiele osób używa określenia „Status” do przedstawienia stanu obiektu, jeśli nie z innego powodu niż „Stan” odnosi się do politycznego podziału Stanów Zjednoczonych.
źródło
Myślę, że mógłbyś dodać inną perspektywę do równania, mianowicie „nadawca-żądający”.
Z punktu widzenia nadawcy informowałbym o swoim stanie każdego, kto chciałby słuchać. Z punktu widzenia osób proszących o podanie statusu.
Powyższe można również interpretować z punktu widzenia niepewności:
Jaki jest twój status? Jestem w stanie odprężenia.
Jestem prawie pewien, że to tylko jedna interpretacja, która może nie mieć zastosowania w twojej konkretnej sytuacji.
źródło
Szybkie sprawdzenie słownika ujawnia, że status jest synonimem stanu, ale zawiera dodatkową interpretację pozycji w stosunku do pozycji innych .
Więc użyłbym stanu dla zestawu stanów, które nie mają żadnej niejawnej kolejności lub pozycji względem siebie, i statusu dla tych, które to robią (być może wyłączony w trybie gotowości?). Ale to dobre rozróżnienie.
źródło
Wiele podmiotów, z którymi mam do czynienia (rachunki, klienci) może mieć stan (TX, VA itp.) I Status (aktywny, zamknięty itp.)
Zatem kwestia dotycząca tego terminu jest myląca. Mamy znormalizowaną konwencję nazewnictwa baz danych (nie jest to mój osobisty wybór), w której stan jest nazywany
ST_CD
i statusACCT_STAT_CD
.W przypadku wyliczenia w środowisku OO ten problem nie jest tak ważny, ponieważ jeśli masz ścisłe bezpieczeństwo typów, kompilator zapewni, że nikt nie spróbuje tego zrobić:
Jeśli jesteś w dynamicznym środowisku, martwiłbym się bardziej!
Jeśli masz do czynienia z domeną, w której maszyny stanowe lub inne informacje o stanie są dominujące, to myślę, że stan jest w porządku.
źródło
Taką właśnie debatę na temat mojego obecnego projektu przeprowadziliśmy jakiś czas temu. Naprawdę nie mam preferencji, ale spójność jest ważną kwestią.
Pierwsza (jest kilka) definicja „stanu” w moim Sharp PW-E550 (niesamowity słownik, mogę dodać) to „szczególny stan, w którym ktoś lub coś jest w określonym czasie”. Pierwsza definicja „statusu” to „względna społeczna, zawodowa lub inna pozycja kogoś lub czegoś”. Nawet druga (i ostatnia) definicja „statusu” jest gorsza od „państwa” w tym kontekście: „stan rzeczy w określonym czasie, zwłaszcza w kontekście politycznym lub handlowym”.
Więc gdybyśmy chcieli, żeby ktoś korzystał z mojego słownika tak łatwo, jak to tylko możliwe (korzysta z New Oxford American Dictionary, 2001), najlepszym wyborem będzie „stan”.
Ponadto istnieje wzorzec projektowy opisany w książce Gang of Four, zwany State Pattern, mocno utrwalający ten termin w leksykonie komputerowym.
Z tych powodów proponuję „stan”.
PS Czy to ty DDM? Nadal jesteś zgorzkniały, jeśli chodzi o „stan” kontra „status”? !!!!!!! LMAO!
źródło
Cóż, mają na myśli to samo. Nie sądzę, aby konieczne było promulgowanie wielkiej preferencji jednego względem drugiego, ale generalnie wybrałbym „status”, ponieważ lubię rzeczy, które brzmią latyno i klasycystycznie. Mam na myśli, że w moim świecie liczba mnoga schematu to schemata, więc ze mną nie ma innego wyjścia.
źródło
Sophistifunk, jestem pewien, że dostaniesz argumenty zarówno za stanem, jak i statusem. Najważniejszą rzeczą do zrobienia jest wybranie jednego i użycie tylko jednego. Proponuję omówić to ze swoim zespołem i zobaczyć, na co wszyscy się zgadzają.
To powiedziawszy, moja sugestia jest następująca.
Zakładając, że używasz języka programowania zorientowanego obiektowo, „stan” obiektu jest reprezentowany przez sam obiekt. SomeObject.state wprowadza w błąd imo. Nie jestem pewien, co reprezentuje „status” w twoim przykładzie, ale moja naturalna intuicja jest taka, że wolę to niż stwierdzenie.
źródło
Wcale nie to samo. Zatrzymane i uruchomione to stany. Zatrzymywanie i uruchamianie to status.
Jeśli uczynisz je tak samo, jak określisz pojazd jako zatrzymany, ale właśnie się uruchamia. A może wniosek w takiej postaci, w jakiej został złożony, ale nie wszedł jeszcze do procesu zatwierdzania lub jest zatwierdzany, ale jest obecnie wstrzymany z błędem oczekującym na podpis?
źródło
Starting
jest to rzeczywiścieState
całkowicie odmienne odStopped
. To zależy od semantyki twojego systemu . Sprawdź na przykład usługi Windows.