Nie wiem za bardzo gdzie umiescić ten temat - zasadniczo metody, które zwracają true / false zaczynają się od "Is" - wówczas tłumaczymy je "Czy coś jest...". A jaka jest konwencja na metody bez "jest" tzn. "Czy coś", np. "Czy uzytkownik istnieje" - czy można nazwac metodę "DoesUserExist" ??
Moja propozycja CheckIfUserExists
userExists
. ja bym to tak nazwała. jest dużo metod, które zwracają boolean a nie zaczynają się od is
bool UserExists
bool DoesUserExist
bool IfUserExists
bool CzyUzytkownikIstnieje
:-)
IsUserDead ;)
A poważnie to nie widze nic zlego w UserExists czy CheckIfUserExists. Od programowania 'po polskiemu' to bym raczej odszedl ;)
A w przypadku języka obiektowego, nie lepiej dać statyczna metodę klasy User? (User::exists())
Z powyższych głosuję za userExists, dodam jeszcze isRegisteredUser.
roSzi napisał(a):
A w przypadku języka obiektowego, nie lepiej dać statyczna metodę klasy User? (User::exists())
W przypadku języka obiektowego, taka metoda nie powinna być w ogóle w klasie User
.
userExists jest najlepsza, bo najkrótsza, a wiadomo o co chodzi.
z przodu powinien być czasownik - "Begin method names with a strong action verb "
A kto tak powiedział? Metody mają być nazywane krótko, treściwie i zrozumiale. checkUserExists nie wnosi nic do treści ponad userExists. Jeżeli głównym zadaniem metody jest zwrócić "coś", a nie wykonać jakąś akcję, i w sumie nie obchodzi nas jak to "coś" jest uzyskiwane, wtedy nazwa rzeczownikowa dużo lepiej oddaje istotę rzeczy. Czyli mamy np. indexOf a nie findIndexOf, albo substring a nie extractSubstring w bibliotece standardowej.
Jeśli masz taką możliwość, to ja osobiście polecam ci takie rozwiązanie
User.exists?
@up A jak wstrzykniesz repo do statycznej metody?
@kamilwxx, jak przy użyciu kontenera IoC wstrzykniesz obiekt repozytorium (albo jakiejkolwiek innej klasy dającej dostęp do danych w bazie) do klasy User tak, aby można ją było wykorzystać w metodzie exists
?
W końcu jesteśmy profesjonalistami, i nie piszemy ręcznie kodu SQL w metodach klasy User, prawda?