- 1
assertTrue(!reportDto.getOrder());
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+76
assertTrue(!reportDto.getOrder());
Фантазия индусов неиссякаема. Перед написанием кода читать Упанишады до просветления.
tir 01.12.2011 14:29 # −1
roman-kashitsyn 01.12.2011 14:33 # +2
3.14159265 01.12.2011 14:45 # 0
Я позитивный?
roman-kashitsyn 01.12.2011 14:58 # +2
Это очевидно даже без знания того факта, что
> Я тоже не люблю писать assertFalse
3.14159265 01.12.2011 16:00 # 0
Некоторым, к сожалению, нет.
Равно как и моя иррациональность.
roman-kashitsyn 01.12.2011 16:12 # +3
guest 02.12.2011 14:22 # −3
guest 02.12.2011 14:23 # +1
roman-kashitsyn 02.12.2011 14:36 # +4
gegMOPO4 03.12.2011 23:09 # 0
tir 01.12.2011 14:45 # 0
С названием согласен. Хотя может используется какой-нить фреймворк, которому необходимо именование get/set? А is просто не поддерживается?
roman-kashitsyn 01.12.2011 14:58 # 0
roman-kashitsyn 01.12.2011 15:08 # 0
tir 01.12.2011 15:43 # 0
roman-kashitsyn 01.12.2011 16:11 # 0
Order - заказ, т.е. существительное. Поскольку я знаю контекст, могу сказать, что здесь должно быть прилагательное "заказан".
roman-kashitsyn 01.12.2011 16:25 # 0
selffix
absolut 01.12.2011 16:56 # 0
roman-kashitsyn 01.12.2011 17:03 # 0
> полиморфизм на что?
поясните мысль.
absolut 01.12.2011 17:18 # 0
alexoy? :)
например, есть абстрактный класс - мебель. для него объявлены методы изСтол()/изДиван() ...
хотя, конечно, это у меня тоже вызывает подозрение :)
roman-kashitsyn 01.12.2011 17:24 # +2
Стол и диван - реализации, а методы могут быть, к примеру:
isSleepable()
isVisibleInTheDark()
isLovedByMyCat()
etc...
tir 01.12.2011 17:38 # 0
tir 02.12.2011 09:08 # 0
Бывают ситуации, когда это намного удобнее, чем городить отдельные классы.
roman-kashitsyn 02.12.2011 10:10 # 0
Не встречал в языках с поддержкой ООП ситуаций, где это было бы удобнее. Ваш пример мне ничего не говорит. Ещё дедушка Бьярне завещал нам не использовать меток типа там, где возможно наследование.
в Clojure иногда есть смысл использовать их для мултиметодов, но это отдельная песня, так как мультиметоды нужны довольно редко
tir 02.12.2011 10:20 # 0
roman-kashitsyn 02.12.2011 10:37 # +1
Мысли вслух: поскольку у современных аппаратов довольно много функций, наверняка есть набор операций, которые вы хотите совершать с устройством. По мне так типы девайсов тут вообще особо не нужны, достаточно одного Device. В енум помещаем возможные типы операций, в Device помещаем методы
isSupportedOperation(OperationType t): boolean
executeOperation(OperationType t, Array[Object] args): void
getSupportedOperations(): Array[OperationType]
и объявляем два инстанса Device: phone и notebook, для которых определяем набор возможных операций.
Модель можно и нужно менять в зависимости от задачи, но любой код, содержащий логику обработки меток типа, вызывает у меня подозрения.
roman-kashitsyn 02.12.2011 10:49 # 0
tir 02.12.2011 10:55 # 0
roman-kashitsyn 02.12.2011 11:04 # +1
Проблема с методами isXXX в том, что нужно будет менять ваш класс Device после добавления нового типа девайса. Если типов много, этот класс очень быстро превратиться в жуткое мясо, а код - в вермишель.
tir 02.12.2011 11:12 # 0
Метод isXXX по большей части как шорткат для type == Type.XXX. Например, для нескольких наиболее часто используемых все-таки лучше сделать шорткаты.
roman-kashitsyn 02.12.2011 11:24 # 0
tir 02.12.2011 11:29 # 0
isСуществительное имеет право на жизнь, но только в специфических ситуациях.
roman-kashitsyn 02.12.2011 11:31 # +1
gegMOPO4 03.12.2011 23:21 # 0
roman-kashitsyn 04.12.2011 14:07 # 0
> isDirectory()/isFile().
Да, я держал в уме эти методы. Есть мнение, что такое API выглядит кривоватым. Мне больше нравится, как это сделано в Python: модуль os.path умеет определять по заданному, является ли объект файлом или каталогом, а api класса File направлено на ввод-вывод в стиле юникса.
bugmenot 04.12.2011 16:59 # 0
правильная эмфаза
gegMOPO4 04.12.2011 17:16 # 0
tir 02.12.2011 09:18 # 0
roman-kashitsyn 02.12.2011 10:05 # 0