Czy zawsze powinienem używać „is” jako prefiksu dla zmiennych boolowskich? [Zamknięte]

50

Czy zawsze powinienem używać isjako prefiksu dla zmiennych logicznych? Co z booleanami, które wskazują coś w przeszłości? Powinienem napisać isInitializedczy wasInitialized? Czy powinienem pisać o nieruchomościach IsManyMembersczy HasManyMembers?

Czy są jakieś najlepsze praktyki? Czy powinienem po prostu pisać zgodnie z angielskimi przepisami?

Mark Twain
źródło

Odpowiedzi:

54

Nie bardzo, ponieważ booleany nie zawsze są używane do wskazania, że ​​obiekt „jest” czymś.

„has” jest równie poprawnym prefiksem „was”, „can” są również ważne w szczególnych okolicznościach, również widziałem używany przyrostek „Able”.

So Object herring:-
 isFish = true
 isCat = false
 hasScales = true
 hasFur = false
 canSwim = true
 wasEgg = true
 eatAble = true

Object moggy:-
 isFish = false
 isCat = true
 hasScales = false
 hasFur = true
 canSwim = false
 wasEgg = false
 eatAble = false

Wszystko zależy od tego, co czyni program czytelnym.

James Anderson
źródło
37
Myślę, że wybrałbym canBeEaten lub isEdible zamiast eatAble.
kzh,
3
@kzh - isEdible is good! Nie tak pewny co do CanBeEaten, ponieważ jest to coś, co dzieje się z obiektem, a nie coś, co ten obiekt może zrobić. Picky Picky Wiem :-).
James Anderson
1
Co powiesz na flagę wskazującą, czy coś jest dozwolone, czy nie? Czy „AllowsExtensions” jest jasne? Czy też „CzyAllowExtensions” byłoby jaśniejsze, chociaż dłuższe?
Odwrócony inżynier
1
jeśli użyjesz -able jako sufiksu, nie użyłbym go jako słowa. np. do noszenia zamiast wearAble
jk.
2
@ kzh: Początkowo czytałem eatAblejako „jest w stanie jeść”, a nie „jest w stanie jeść”. Podsumowując, jest to niejednoznaczne i rzeczywiście lepiej byłoby go uniknąć.
Flater,
8

Postawiłbym na angielskie zasady. Mam tendencję do myślenia o kolejnym koderze, który spojrzy na twoją pracę jako maniak władający toporem, który przyjdzie po mnie, jeśli kod będzie trudny do zrozumienia. Kiedy o tym pamiętam, najlepszą opcją dla mojego zdrowia jest utrzymanie kodu w czystości i łatwy do odczytania, co oznacza najlepszy możliwy język angielski i język domeny.

Klee
źródło
3
„jeśli dorsz jest zbyt trudny do zrozumienia” trzymanie się tematu ryb / kotów z innej odpowiedzi, którą widzę
szkocki