Чи слід завжди використовувати "є" як префікс для булевих змінних? [зачинено]


50

Чи слід завжди використовувати isв якості префікса булеві змінні? А що з булевими, які щось вказують на минуле? Треба писати isInitializedчи wasInitialized? Чи слід писати для властивостей IsManyMembersабо HasManyMembers?

Чи є найкращі практики? Або я просто повинен писати відповідно до англійських правил?



2
Пов'язані (і закриті) програмісти.stackexchange.com
questions/221868/…

Відповіді:


54

Насправді, оскільки булеви не завжди використовуються для вказівки на те, що об’єкт "є" чимось.

"має" є однаково допустимим префіксом "був", "можна", також є дійсними при певних обставинах, також я бачив використаний суфікс "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

Все залежить від того, що робить програму читабельною.


37
Я думаю, що я вибрав би canBeEaten або isEbleble over eatAble.
кж

3
@kzh - isEdible - це добре! Не настільки впевнений у canBeEaten як у чомусь, що відбувається з об'єктом, а не в тому, що об'єкт може зробити. Пікі Пікі я знаю :-).
Джеймс Андерсон

1
Що з прапором, щоб вказати, чи щось дозволено чи ні? Чи зрозуміло "Дозволити розширення"? Чи "Ясніше розширення" стане чіткішим, навіть якщо довше?
Інженер з

1
якщо ви використовуєте -able як суфікс, я б не став його великим, а це не слово. наприклад, носіння, а не зношування
jk.

2
@kzh: Я спочатку читав eatAbleяк "вміє їсти", а не "вміє їсти". Загалом, це неоднозначно і було б дійсно краще уникати.
Флатер

8

Я б пішов з англійськими правилами. Я схильний думати про наступний кодер, який буде розглядати вашу роботу як маніяка, що володіє сокирою, який збирається прийти за мною, якщо код важко зрозуміти. Коли я пам’ятаю про це, найкращим варіантом для мого здоров’я є збереження коду чистим та легким для читання, що означає найкращу англійську та доменну мову.


3
"якщо тріску занадто важко зрозуміти", що дотримується теми риби / кота іншої відповіді, яку я бачу
scottyseus
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.