2009-09-03 7 views
31

Mam interfejs w języku C#, który pomaga odzyskiwanie danych z niestandardowego archiwum na serwerze. Interfejs wygląda następująco:Konwencje nazewnictwa: Jak nazwać metodę zwracającą wartość logiczną?

public interface IRetrieveData 
{ 
    bool OkToRetrieve(SomeData data); // Method in question... 
    bool RetrieveToLocal(SomeData data); 
} 

Interfejs ten jest implementowany przez klientów, którzy pobierają dane do lokalnej bazy danych. Istnieją różne smaki klientów, którzy mają dostęp do danych nawzajem. Tak więc, gdy komponent przetwarzający wywołuje IRetrieveData.OkToRetrieve tuż przed rzeczywistym pobraniem, wywołanie przechodzi do kodu klienta, gdzie podejmowana jest decyzja, czy dane mają zostać odzyskane, czy nie. W tym momencie klient może zwrócić wartość false, a ta część danych jest pomijana lub zwracana prawda, a komponent przetwarzania wywołuje funkcję RetrieveToLocal i wysyła dane do klienta, który następnie przetwarza dane.

Gdzie się mylę, to czy zmienić nazwę metody "OkToRetrieve" na "Odzyskaj" lub "CanRetrieve", czy pozostawić ją jako OkToRetrieve.

Czy ktoś ma jakieś sugestie?

Odpowiedz

52
IsRetrievable() 

Myślę, że metoda zwracająca wartość boolowską powinna być nazwana jako tak-nie pytanie.

+8

lubię 'is' udział, ale tylko dlatego, że jest odszukanie nie znaczy, że jest OK, aby ją odzyskać. Nazwałbym to 'isOKToRetrieve' –

+1

Absolutnie. Prefiks "Is" jest standardem kodowania w naszym zespole. – Rap

+1

ALl Chciałbym dodać odpowiedź TO Ariza, (A to jest nitnoi) polega na rozróżnieniu tego, co dokładnie sprawdza funkcja ... Czy to, czy dane są do odzyskania, czy też bieżący kod MOŻNA je odzyskać, lub czy POWINIEN go poprawić itd. itd. itd., np. jeśli funkcja sprawdza poprawność danych i "autoryzuje pobieranie danych, gdy dane przejdą niektóre warunki, to IsComplete() lub IsValid, lub IsTransactionallyConsistent, lub coś, co opisuje naturę kontroli, która jest wykonywana, aby "przekazać" może być nieco bardziej pouczające. –

15

nazwa Allways boolean metody o nazwach podobnych do pytania, które można odpowiedzieć tak lub nie

w przypadku, CanRetrieve byłoby dobre imię i nazwisko (tylko do korzystania z własną propozycję).

+0

'can'! =' Should'. kod klienta nie przeszkadza ci go odzyskać, tylko polecam, dlatego myślę, że 'ShouldRetrieve' to lepsze imię, jak zaproponował @ dannie.f. – problemofficer

1

CanRetrieve brzmi dla mnie dobrze. Widziałem pnia Can używane w Microsoft APIs. Jedyną inną realną opcją IMO jest IsRetrievable (z Aziz), która jakoś wydaje się zbyt lingwistycznie skręcona!

1

jeśli robisz więcej kontroli i isRetrievable() nie jest właściwe można użyć:

IsValid() 
1

wolałbym isOKToRetrieve lub isRetrieveOK nad wariantami bez „to” w ramach konwencji, że funkcje i metody powinny być czasowniki.

3

Metody średnia akcja. Dlatego preferuję nazwy metod, aby zacząć od czasownika. Co powiesz na?

CheckIsRetrievable(SomeData data) 
+12

"Jest" to czasownik ... –

+4

To zależy od znaczenia słowa "jest". –

+1

@MarcelLamothe "Is" nie oznacza akcji typu "sprawdź" lub "odbierz", ale stan. – KnorxThieus

5

W tym konkretnym przypadku, to bym chyba nazwać go:

public bool IsReady (SomeData) 

Bo to bardziej wyraźnie pokazuje, co się stanie, gdy ten wraca true.

8

Co powiesz na użycie prefiksu "powinien"?

ShouldRetrieve(SomeData data); 
+0

To jest najlepsza odpowiedź imho, ponieważ nazwa dokładnie opisuje, jakie informacje zwraca metoda. Jest to zalecenie, a nie umiejętność. – problemofficer

3

Zależy od przypadku użycia. Chciałbym poprzedzić je ze słowami takimi jak „to”, „nie” lub „Can”: IsSomePropertySoAndSo, DoesNounSupportFeature i jako przykład CanVerb

0

MayRetrieve() mogłoby być lepsze nazwisko, jeśli wynik jest określana za zgodą użytkownika/dostęp.

IsRetrievable() jest bardziej niejednoznaczny, co może być bardziej odpowiednie, jeśli oprócz pozwolenia istnieją inne względy.

0

W Konwencje nazewnictwa, jest napisane, że nazwa metody powinna być czasownik