Size: a a a

JPoint, Java-конференция

2020 June 03

A

Artyom in JPoint, Java-конференция
Макс
F2 - позваляет переходить по ним
Спасибо, не знал
источник

ДР

Даниил Разоренов... in JPoint, Java-конференция
Artyom
Это, кстати, интересный и немного дискуссионный вопрос. Интересно было бы услышать чьё-нибудь ещё мнение.
Ну для меня главный минус филд инжекшна в том, что он способствует тому, что программист перестаёт думать сколько у него там бинов в каком-нибудь сервисе. Ведь когда у тебя в конструктор принимает 8 параметров, то ты волей-не волей задумаешься, что что-то тут не так. А когда у тебя 8 таких полей, то как-то и пофиг - добавлю ещё пару!
Я не понимаю как люди юнит тесты пишут для классов с филд инжекциями?
источник

A

Artyom in JPoint, Java-конференция
Даниил Разоренов
Я не понимаю как люди юнит тесты пишут для классов с филд инжекциями?
А в чём проблема? Мокать их можно. Или вы про state-based, когда объекту задаётся состояние через конструктор? Просто спринг, вроде, про IoC и создавать бины руками - ну такое
источник

KR

Kirill Romanov in JPoint, Java-конференция
Artyom
Да, но вряд ли ломбок кто-то для спринговых сервисов использует? Если да, то это какая-то другая степень зла
а почему нет?
источник

KR

Kirill Romanov in JPoint, Java-конференция
я это у Борисова подсмотрел вообще, по-моему
источник

ДР

Даниил Разоренов... in JPoint, Java-конференция
Artyom
А в чём проблема? Мокать их можно. Или вы про state-based, когда объекту задаётся состояние через конструктор? Просто спринг, вроде, про IoC и создавать бины руками - ну такое
Вы в юнит тесте контекст поднимаете, чтобы класс протестировать?
источник

KR

Kirill Romanov in JPoint, Java-конференция
Даниил Разоренов
Я не понимаю как люди юнит тесты пишут для классов с филд инжекциями?
@InjectMocks, например
источник

A

Artyom in JPoint, Java-конференция
Kirill Romanov
а почему нет?
Хотя бы по той причине, что я изначально назвал. Потому что будет куча полей, что не располагает к тому, чтобы программист думал хороший это класс или нет. Просто докинет ещё пару полей-сервисов к куче других
источник

A

Artyom in JPoint, Java-конференция
Даниил Разоренов
Вы в юнит тесте контекст поднимаете, чтобы класс протестировать?
Тесты разные бывают
источник

KR

Kirill Romanov in JPoint, Java-конференция
Artyom
Хотя бы по той причине, что я изначально назвал. Потому что будет куча полей, что не располагает к тому, чтобы программист думал хороший это класс или нет. Просто докинет ещё пару полей-сервисов к куче других
ничего не помешает и к обычному конструктору докинуть) Если не смущает количество полей - не смутит и размер конструктора
источник

A

Artyom in JPoint, Java-конференция
Возможно, вы правы
источник

ДР

Даниил Разоренов... in JPoint, Java-конференция
Kirill Romanov
@InjectMocks, например
Я могу ошибаться, но по-моему InjectMocks делает контекст грязным из-за чего он для каждого теста с InjectMocks контекст будет перезагружаться.
И я конечно понимаю, что можно и с помощью  ReflectionTestUtils устанавливать поля и т.д. Но зачем так мучатся, если можно просто написать нормальный конструктор?
источник

KR

Kirill Romanov in JPoint, Java-конференция
Все верно, я вполне за конструкторы. Просто привел пример, как можно использовать моки без него
источник

AK

Andrei Kogun in JPoint, Java-конференция
Artyom
Да, но вряд ли ломбок кто-то для спринговых сервисов использует? Если да, то это какая-то другая степень зла
Вы не поверите, такое часто встречается, но про зло мы уже на прошлой неделе поговорили. )
источник

A

Artyom in JPoint, Java-конференция
Andrei Kogun
Вы не поверите, такое часто встречается, но про зло мы уже на прошлой неделе поговорили. )
Тогда надо посмотреть, не видел)
источник

AI

Alex I in JPoint, Java-конференция
Nikita Gryzlov
можно для малоопытного в спринге - а какие есть проблемы с инжектом в филды?
Абсолютно никакого, просто вопрос был - самая раздражающая инспекция в IntellijIdea
источник

ch

central hardware in JPoint, Java-конференция
источник

ЖХ

Женя Х in JPoint, Java-конференция
Спасибо)
источник

AK

Alexey Konyaev in JPoint, Java-конференция
#конкурс
Всем привет!
Посмотрел в своих проектах, и наверное, инспекция "Boolean method 'xxx' is always inverted" мне не оч. нравится.
Например, есть метод:
public boolean isAuthenticated() {
   // проверка...
}

И соотв. в коде есть места вида:
if (!accessInfo.isAuthenticated()) {
   return false;
}

Другой частый пример:
public boolean isEnabled() {...}
И вызов этого метода
if ( ! isEnabled()) {...}

Понятно, что можно инвертировать и логика сохранится, но я хочу чтобы метод назывался именно isAuthenticated()/isEnabled(), а в условии проверять именно его отрицание:)
источник

AC

Anton Chistyakov in JPoint, Java-конференция
#конкурс
inspection:
Java | Java language level migration aids | Java 10 | Local variable type can be omitted
intention:
Replace explicit type with 'var'

Было бы круто, если бы инспекцию && intention можно было бы включить только для объектов ( и выключить для примитивов).

Rationale: помимо паззлеров от известного чемпиона ), столкнулись с дефектом из-за неправильного распарсивания var-ов в примитивные типы белковыми программистами. + на примитивных типов выигрыш в буквах небольшой.
Было бы круто, если бы idea поддержала стиль: примитивные типы явно, объектные var-ами.
источник