@jvmchat

Страница 2383 из 2890
Rikland
10.04.2018
06:41:34
Едешь себе такой, а у тебя оом вылетел
В процессе работы безопасного ПО, выделение новой памяти не происходит.

Денис
10.04.2018
06:43:37
Немного статистики о Spring Boot: https://twitter.com/yegor256/status/983383515642433538
Сравнивать именно спрингбут в отрыве от его зависимостей с чем-либо - странная затея.

Ну, как минимум спринговых зависимостей

Yegor
10.04.2018
06:44:32
Ну, как минимум спринговых зависимостей
Там тоже нужно было NULL посчитать?)

Google
Денис
10.04.2018
06:45:24
Там тоже нужно было NULL посчитать?)
Ну да (и статистику lines per null пересчитать).

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

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, если ничего не найдено

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
value, ok := map.Get() ?
Попахивает гошечкой...

sss3 ?
10.04.2018
06:59:37
srsly

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
Мой код в любом случае говнокод ?

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

шлюхогон42
10.04.2018
07:02:42
Или File.listFiles() возвращает NULL, если файлов нет. Это дефективный дизайн.
тогда что возвращать . допустим функция возвращает Integer объект?

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, а её нет, и ловишь ексепшн хлебалушком . Дефекты дизайн лестницы, или кто то не проверяет куда шагает?

Yegor
10.04.2018
07:05:03
Не покроется ли тогда код бесконечными траями?
В идеале TRY должен быть один, на самом верху.

Почитайте про 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
О, знаю такое! try {...} catch (Exception ex) {}
Да, именно так, в одном месте, на самом верху.

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

Sergei
10.04.2018
07:06:07
В optional обернуть и все?,
Меня тоже интересует вопрос Optional (и почему он обойдет вниманием)

Dmitry
10.04.2018
07:06:09
О, знаю такое! try {...} catch (Exception ex) {}
только не Exception, а Throwable ?

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
Все равно этот TRY/CATCH верхнего уровня существует и он печатает стек трейс в консоль.
Верхний трай-кетч для логирования - это нормально. Но если эксепшены используются для управления, то одним логированием не обойтись - и там будет адский кусок кода

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

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

Yegor
10.04.2018
07:10:25
Понятно. Буду код свой рефакторить и подставлять throw ?так что насчёт optional?
Optional — это костыль. Я бы рекомендовал делать кастомные классы под задачу каждую.

Митко Соловец?
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
Почему Егор ты считаешь их плохими?
Я вот здесь описал это: http://www.yegor256.com/2015/07/28/checked-vs-unchecked-exceptions.html

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
Не только. Если входящие данные бракованные, допустим.
спорно. при кривых входящих данных просто сообщить в обратную сторону об этом и все, без бросания эксепшенов

Google
Sergey
10.04.2018
07:13:27
400й ошибкой

как вариант

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

как вариант
Ну так это THROW

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

Очень читабельный код

Yegor
10.04.2018
07:14:29
Очень читабельный код
А зачем оборачиваешь?

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

Aleksander
10.04.2018
07:16:15
а зачем в finally close? а если файл не был открыт?
так нужно будет еще проверить был ли открыт

шлюхогон42
10.04.2018
07:17:22
так нужно будет еще проверить был ли открыт
и это действительно будет читабельно?)

Aleksander
10.04.2018
07:18:21
и это действительно будет читабельно?)
можно использовать Lombok. @Cleanup

шлюхогон42
10.04.2018
07:18:50
можно использовать Lombok. @Cleanup
через стримы можно от try/catch/finally избавиться

одним только 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
Привет! У меня такая проблема с сценбилдером, может кто знает че можно сделать? )

Пожалуйста, подскажите, кто знает...

Страница 2383 из 2890