
Rikland
10.04.2018
06:41:34

Денис
10.04.2018
06:43:37
Ну, как минимум спринговых зависимостей

Yegor
10.04.2018
06:44:32

Google

Денис
10.04.2018
06:45:24

Vladimir
10.04.2018
06:47:14
Как бы не оказалось, что почти все эти null - это проверки при работе с Reflection API или чем-нибудь ещё внешним. Тогда это количество совершенно ничего не говорит о качестве кода, а только о том, в каком окружении он работает.

Evgeny
10.04.2018
06:51:28

Yegor
10.04.2018
06:52:25

Purrrr
10.04.2018
06:53:49
The security manager is an object of type SecurityManager; to obtain a reference to this object, invoke System.getSecurityManager.
SecurityManager appsm = System.getSecurityManager();
If there is no security manager, this method returns null.
Нуллы такие нуллы

sss3 ?
10.04.2018
06:54:35
Раньше не было оптионов в джавке
Что поделать

Purrrr
10.04.2018
06:55:30
Синглтоново хотя бы

Yegor
10.04.2018
06:56:35
Что поделать
Поделать: писать ООП код, а не процедурный. Optional здесь не при чем.
NULL — это ошибка дизайна.
Допустим, Map#get() возвращает NULL, если ничего не найдено

sss3 ?
10.04.2018
06:58:11

Google

Sergei
10.04.2018
06:58:12
Странно что в статье не упоминается Optional<>, который как раз и добавлен в язык для решения проблем с возращаемым null.

Yegor
10.04.2018
06:58:17
Это кривой JDK дизайн. Так не должно быть. Вместо этого, должно быть как в C++: должен возвращаться итератор.

Гибкин
10.04.2018
06:58:22

Sergey
10.04.2018
06:58:34

Yegor
10.04.2018
06:59:16
Либо должен быть Exception. Но не NULL ни в коем случае.

sss3 ?
10.04.2018
06:59:34
Exception?

Anton
10.04.2018
06:59:36

sss3 ?
10.04.2018
06:59:37
srsly

Гибкин
10.04.2018
06:59:41

Dmitry
10.04.2018
06:59:50

Sergey
10.04.2018
07:00:01
Exception для логики?
серьезно?

sss3 ?
10.04.2018
07:00:08

Гибкин
10.04.2018
07:00:13
srsly
В статье собственный ексепшн. Написанный. Поэтому почему бы и нет

sss3 ?
10.04.2018
07:00:16
анчекед эксепшн тоже не ооп

Yegor
10.04.2018
07:00:36
Или File.listFiles() возвращает NULL, если файлов нет. Это дефективный дизайн.

Гибкин
10.04.2018
07:00:56
Мой код в любом случае говнокод ?

Sergey
10.04.2018
07:01:56

Dmitry
10.04.2018
07:02:00
конечно
в итоге все закончится ломбочной аннотацией SneakyThrows и все станет еще хуже

шлюхогон42
10.04.2018
07:02:42

Google

Yegor
10.04.2018
07:03:01
Exception выбрасывать. и чем чаще, тем лучше

шлюхогон42
10.04.2018
07:03:03
Optional оборачивать?

Yegor
10.04.2018
07:03:27
Вообще, думаю это очевидно, что чем чаще ваш код бросает Exception, тем выше будет конечное качество продукта для юзера.

baylrock
10.04.2018
07:03:41
Когда идёшь по лестнице и думаешь что осталась ещё 1, а её нет, и ловишь ексепшн хлебалушком . Дефекты дизайн лестницы, или кто то не проверяет куда шагает?

Dmitry
10.04.2018
07:03:53

Sergey
10.04.2018
07:04:43

Yegor
10.04.2018
07:05:03
Почитайте про Fail Fast, вот эту статью: https://www.martinfowler.com/ieeeSoftware/failFast.pdf

Гибкин
10.04.2018
07:05:28
В optional обернуть и все?,

Sergey
10.04.2018
07:05:30
О, знаю такое!
try {...} catch (Exception ex) {}
Я так в школе писал олимпиадные задачи

Yegor
10.04.2018
07:05:50

шлюхогон42
10.04.2018
07:05:57
а еще TRY CATCH на русском это трюкач:)

Sergei
10.04.2018
07:06:07

Dmitry
10.04.2018
07:06:09

Yegor
10.04.2018
07:06:18
Собственно, если вы его не пишете, то его за вас пишет JDK.

шлюхогон42
10.04.2018
07:06:49
и без трюкача можно в 8 джаве обойтись

Yegor
10.04.2018
07:07:07
Все равно этот TRY/CATCH верхнего уровня существует и он печатает стек трейс в консоль.

Sergey
10.04.2018
07:07:16
почти как panic в го)

Google

Yegor
10.04.2018
07:07:48
То есть любой TRY/CATCH внутри кода — это code smell. Это что-то значит не очень хорошо сделано.
В идеале их быть не должно, и весь код должен выглядеть так, будто он никогда не падает. И везде куча THROW. Это утопия, но к ней нужно стремиться)

Dmitry
10.04.2018
07:09:07

Гибкин
10.04.2018
07:09:28

Dmitry
10.04.2018
07:09:39
Либо по всему коду вместо нуллов будут трай-кетчи

Evgeny
10.04.2018
07:09:47

Yegor
10.04.2018
07:09:56

Sergey
10.04.2018
07:10:20
вообще throw должны быть тогда только на edge кейсах, когда закончилось место на диске, пропала сеть и тд

Yegor
10.04.2018
07:10:25

Митко Соловец?
10.04.2018
07:10:32
Использование рантайм эксепшенов считается хорошей практикой

Yegor
10.04.2018
07:10:44

Митко Соловец?
10.04.2018
07:10:47
Почему Егор ты считаешь их плохими?

Aleksander
10.04.2018
07:10:52

Yegor
10.04.2018
07:11:09

Митко Соловец?
10.04.2018
07:11:46

Yegor
10.04.2018
07:11:47
Кстати, коллеги, у меня есть свой канал в Телеграме (там, правда, на английском только), добро пожаловать: https://t.me/joinchat/AAAAAEJFMRzsRTRxM3ec6A

Митко Соловец?
10.04.2018
07:12:13
есть общий перехватчик для разных видов исключений, там описывается что и как делать

Yegor
10.04.2018
07:12:14

Sergey
10.04.2018
07:12:53

Yegor
10.04.2018
07:13:08

Google

Sergey
10.04.2018
07:13:27
400й ошибкой
как вариант

Yegor
10.04.2018
07:13:33
Или LOGGER.error()?

Artjom
10.04.2018
07:14:02
Особенно отлично checked exceptions выглядели когда при чтении файла в finally вызываешь close и это оборачиваешь в try catch... лепота
Очень читабельный код

Yegor
10.04.2018
07:14:29

Евгений
10.04.2018
07:14:53

Artjom
10.04.2018
07:15:18
Да именно перед autoclosable

шлюхогон42
10.04.2018
07:15:20

Aleksander
10.04.2018
07:16:15

шлюхогон42
10.04.2018
07:17:22

Aleksander
10.04.2018
07:18:21

шлюхогон42
10.04.2018
07:18:50
одним только throw
По моему так лучше?
public static List<String> readFile(String path) throws IOException {
return Files.lines(Paths.get((path)), StandardCharsets.UTF_8)
.collect(Collectors.toList());
}

Yauhen
10.04.2018
07:23:08
Привет! У меня такая проблема с сценбилдером, может кто знает че можно сделать? )
Пожалуйста, подскажите, кто знает...