function isBanned() или function getIsBanned()?

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Ответить
Токагэ
Сообщения: 27
Зарегистрирован: 2011.04.21, 14:04

function isBanned() или function getIsBanned()?

Сообщение Токагэ »

Всем добрый день.
А как вы именуете функции, отдающие булёвое значение? С приставкой get, чтобы можно было обратиться как $user->isBanned, либо без приставки: $user->isBanned() ?
Как вы считаете, как правильнее и лучше? :)

P.S. Или вообще как function getBanned() ?
Аватара пользователя
Neval
Сообщения: 107
Зарегистрирован: 2011.10.24, 22:59
Откуда: Киев
Контактная информация:

Re: function isBanned() или function getIsBanned()?

Сообщение Neval »

Это холиварная тема :)
С одной стороны, логичнее isBanned, а с другой, сеттер setIsBanned уже звучит криво :)
Человек без чувства юмора - не серьёзный человек ;)
Jampire
Сообщения: 207
Зарегистрирован: 2011.01.28, 11:45
Откуда: Гомель
Контактная информация:

Re: function isBanned() или function getIsBanned()?

Сообщение Jampire »

Neval писал(а):С одной стороны, логичнее isBanned, а с другой, сеттер setIsBanned уже звучит криво :)
А разве должен быть подобный сеттер? is это такая же приставка, как и set. Поэтому если нужно установить признак, используется метод setBanned.
А вообще, в данном случае, признак бана не должен устанавливать сторонний код. Для стороннего кода должен существовать метод вроде makeBan($user, $bannedBy, $unBanDate, $banReason), а уже этот метод вызывает приватный метод setBanned или напрямую меняет приватное свойство.
Изображение
Человек, говорящий, что это невозможно сделать, не должен мешать тому, кто это делает.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: function isBanned() или function getIsBanned()?

Сообщение samdark »

Именую без get.
Токагэ
Сообщения: 27
Зарегистрирован: 2011.04.21, 14:04

Re: function isBanned() или function getIsBanned()?

Сообщение Токагэ »

Я вот тоже больше склоняюсь к варианту без get. Мне он кажется более интуитивно понятным. Хотя у именований с get-ом тоже есть свой плюс: функции удобно расположены в навигаторе класса и их удобно искать (все методы модели, что либо возвращающие, имеют префикс get - очень прозрачно).
Для стороннего кода должен существовать метод вроде makeBan($user, $bannedBy, $unBanDate, $banReason), а уже этот метод вызывает приватный метод setBanned или напрямую меняет приватное свойство.
Имеет ли смысл использовать "make" для слова, которое само может выступать в качестве глагола? :) $user->ban(...);
Jampire
Сообщения: 207
Зарегистрирован: 2011.01.28, 11:45
Откуда: Гомель
Контактная информация:

Re: function isBanned() или function getIsBanned()?

Сообщение Jampire »

Токагэ писал(а):Имеет ли смысл использовать "make" для слова, которое само может выступать в качестве глагола? :) $user->ban(...);
Зависит от того, как вы назвали флаг. Если флаг называется $ban, то использовать метод с тем же именем нежелательно. Если же флаг называется как-то по другому, то почему бы и нет.
Изображение
Человек, говорящий, что это невозможно сделать, не должен мешать тому, кто это делает.
Ответить