| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > "is" и "are" префикс у метода |
| Автор: Romper 31.8.2013, 17:39 |
| Привет. Какое ваше имхо, всегда писать только "is"(пример: isDataCopied) или для множество надо писать "are"(пример: areAllTasksDone) ? Cпасибо. |
| Автор: Arantir 31.8.2013, 18:12 |
| Думаю, если бы твой родной язык был английским, то ты бы не спрашивал =) В целом методы должны называться так, чтобы их можно было запомнить и использовать по памяти, что, несомненно, делает дальнейшую разработку более эффективной. С этой точки зрения при формировании названия метода из памяти, человек, часто и много использующий английский, попытается поставить are для множественного и is для единственного числа. Грамотность — это способ людей правильно понимать друг друга. Думаю и на программирование это распространяется в некоторой степени. |
| Автор: Stolzen 31.8.2013, 18:51 |
| Пишите так, как правильно с точки зрения грамматики английского языка |
| Автор: Samotnik 1.9.2013, 21:43 |
| Romper, кодконвеншен это не регламентирует, значит нужно пользоваться здравым смыслом |
| Автор: LSD 2.9.2013, 09:43 |
| Я за следование code conventions. Если мне понадобится узнать boolean свойство я буду искать свойства начинающиеся на isXXX() но не areXXX(). |
| Автор: priam220 2.9.2013, 18:26 |
| лучше попытаться объединить конвеншн+здравый смысл - попытаться переименовать метод, в Вашем случае, допустим - isAllDone. А подробности написать в javadoc. |
| Автор: Stolzen 2.9.2013, 18:49 |
isEverythingDone |
| Автор: Samotnik 2.9.2013, 20:43 | ||
если речь о getter/setter, то согласен. Но метод лучше называть осмысленно. Например: werePhotosUploaded() Кстати, мы http://www.oracle.com/technetwork/java/codeconventions-150003.pdf codeconventions читали? Там нет инфы в данном контексте про то как называть boolean методы |
| Автор: priam220 2.9.2013, 21:46 |
| Samotnik, я тоже что то не нашел на оф сайте такой инфы. Но вот http://www.cwu.edu/~gellenbe/javastyle/method.html есть. Кроме того в бинах если не ошибаюсь имена полей должны совпадать с именами геттеров. И вариантов там может просто не быть. Кстати придумал еще одно название для такого поля: hasRunningTasks |
| Автор: Samotnik 2.9.2013, 22:54 |
| priam220, Как-то университет Вашингтона слабоватый авторитет в Java для меня. |
| Автор: LSD 3.9.2013, 09:51 | ||||
Не знаю кто как, но лично я пользуюсь автокомплитом в IDE.
Если метод возвращает некое значение которое харатеризует состояние объекта и при этом само сотояние не меняется, то это вполне можно считать Java Bean property. Понятно что есть особые случаи типа того же итератора, но в данном конкретном случае я не увидил причин писать are, was, did и т.п.
Имена свойств, но не полей, поля приватные и могут называться как угодно. Например List.isEmpty() вполне себе boolean read only property с именем empty, при этом поля там вообще нет. |
| Автор: Arantir 3.9.2013, 14:17 |
| А давайте просто считать наличие надобности в префиксах are, was и т.д. плохой архитектурой приложения |
| Автор: Samotnik 4.9.2013, 11:48 | ||
| LSD, я не про данный случай, а вообще. Если говорить о чистом code convention, то там скорее речь идет про адекватность названий, а не про то что boolean всегда должно быть is. Вот например как в данном случае поступить?
Методы без is потому что это враппер булевский. Но и называть переменную isReal тоже неправильно по code convention. |
| Автор: Magistrus 4.9.2013, 19:09 |
| частенько для определение наличия множества используется "has" например hasTextured |