@jvmchat

Страница 512 из 2890
Мытко
17.08.2016
15:47:59
вот он проглотит любой вызов метода

и find("guga", "vloger")

и find("guga")

и вызовет именно этот метод public User find(String... args)

Google
Yan?
17.08.2016
15:49:08
как 3 точки в java называются?

Мытко
17.08.2016
15:50:38
хз

Andrey
17.08.2016
15:50:42
Мытко
17.08.2016
15:50:44
я ими никогда не пользуюсь

Yan?
17.08.2016
15:50:50
varar feature

Мытко
17.08.2016
15:51:15
аргументы переменной длинны

Yan?
17.08.2016
15:51:16
Пользоваться ими плохой тон или из-за личных предпочтений?

я ими никогда не пользуюсь

Мытко
17.08.2016
15:51:18
на русском

да просто никогда не нужно было

типа

я всегда делаю разные классы для всего

телефон был бы у меня не строкой, а отдельный классом phone

Google
Мытко
17.08.2016
15:52:45
может имя было бы просто строкой

и то не уверен

Andrey
17.08.2016
15:53:20
Пользоваться ими плохой тон или из-за личных предпочтений?
Это вкусовщина, так как туда можно передать массив.

Мытко
17.08.2016
15:53:34
ну да

тебе никто не мешает правда сделать find(String[] args)

и будет так же

Yan?
17.08.2016
15:54:49
А зачем тогда varargs, если можно через String[]?

Мытко
17.08.2016
15:55:11
ну

не так же

типа вот это ты делать не сможешь

и find("guga", "vloger")

и find("guga")

сможешь делать find(new String[] {"guga", "vloger"})

Andrey
17.08.2016
16:04:36
Andrey
17.08.2016
17:38:20
Блин, люди! Почему в джаве нет значений по-умолчанию?? Какая причина так не делать была?

Andrey
17.08.2016
17:45:09
Потому что сложно
А что сложного?

Pavel
17.08.2016
17:45:33
Делать отдельный код для значений по умолчанию

Не забывай там одни указатели

Google
Pavel
17.08.2016
17:46:01
А при значении по умолчанию значение еще надо создать где то

Alexey
17.08.2016
17:47:49
Не забывай там одни указатели
*минутка занудства* то есть ссылки

Pavel
17.08.2016
17:49:04
Pointer все таки указатель

Andrey
17.08.2016
17:49:10
А при значении по умолчанию значение еще надо создать где то
А при явном вызове нигде не надо создавать значение?

Почему нельзя было сделать сахаром? Чтобы компилятор сам делал вызовы конструктора с подставленными туда необязательными полями?

Pavel
17.08.2016
17:49:58
Надо, только это делает jvm при явном указании на то

Andrey
17.08.2016
17:51:16
Например, чтобы new Clazz(foo) компилятор воспринимал как new Clazz(foo, default_value). Это же сахар и на байт-код не влияет никак. А язык становится гибче.

Pavel
17.08.2016
17:53:24
Andrey
17.08.2016
17:54:48
Сложно. Основная причина появления джавы именно попытка уйти от сложности си.
Это гораздо проще, чем понять что будет во время такого кода: try { return foo; } finally { do_smth(); }

Pavel
17.08.2016
17:55:31
Ну смысл прыгать по разным структурам языка.

Andrey
17.08.2016
17:56:01
+ сложности в значениях по умолчанию нет никакой. Основная сложность в низкоуровневой работе с памятью. В функциях со значениями по умолчанию сложности нет.

Тебе что больше нравится Document doc = Jsoup.parse(file, Charset.DefaultEncoding(), "/"); Или же Document doc = Jsoup.parse(file); ? Вот мне нравится второй вариант. И он очевидно что делает. В первом случае аргументы тупо избыточны.

Pavel
17.08.2016
18:01:10
Мне нравится создать jsoup с нужными полями, инжекнуть в сервис и норм. И использовать второй вариант записи.

Andrey
17.08.2016
18:03:01
Alexey
17.08.2016
18:05:00
офтопик

Timur
17.08.2016
18:05:08
потому что код не только писать, но и читать потом надо. И поддерживать. А имплиситы потом аукнутся после того, как ты через неделю посмотришь на код и не поймёшь, что вообще происходит.

Andrey
17.08.2016
18:10:09
потому что код не только писать, но и читать потом надо. И поддерживать. А имплиситы потом аукнутся после того, как ты через неделю посмотришь на код и не поймёшь, что вообще происходит.
Да? Можно пример кода, который будет не понятен через время, но понятен при написании. Выше написанный код я и через год смогу прочитать.

Timur
17.08.2016
18:12:23
Ты его и приводил. Document doc = Jsoup.parse(file); От того, что ты коротко напишешь, разбираться потом не проще будет.

Timur
17.08.2016
18:14:03
Это сейчас всё понятно, вернись к нему через неделю, увидишь.

Google
Andrey
17.08.2016
18:15:07
Это сейчас всё понятно, вернись к нему через неделю, увидишь.
Я враппер вокруг Jsoup делал 2 месяца назад. Пришёл к такому варианту. Читается всё отлично.

Или создание отдельного конструктора положительно сказывается на читаемости?

Timur
17.08.2016
18:16:50
Наличие неявно присвояемых аргументов негативно сказывается.

Andrey
17.08.2016
18:23:49
Наличие неявно присвояемых аргументов негативно сказывается.
Почему? Я не понимаю этого. Давайте я приведу пример очень популярной библиотеки: FileUtils.writeStringToFile(file.toFile(), document.toString(), Charset.defaultCharset(), false); Супер понятно, что я хотел сделать, правда? Я больше скажу. Они задепрекейтили метод с двумя аргументами, так как есть вот такой всё умеющий делать монстр. Зато супер читаемо всё, правда?

Берял
17.08.2016
18:29:28
можно юзать аннотации для дефолт значений, но сигнатуру метода это не изменит, поэтому все равно уродство

Timur
17.08.2016
18:30:51
Для своих нужд ты напишешь обёртку, функциональность, предоставляемая обёрткой, будет инкапсулирована внурти так, что если для тебя будет условно "не важно" с какими аргументами будет вызываться writeStringToFile . Используя эту обёртку, ты сможешь решать свои задачи, не заботясь о деталях. А если надо будет, то пойдёшь и посмотришь внутрь и увидишь. Но скрывать по умолчанию от любого, читающего код было бы неверно и делать неявными параметры, которые ты считаешь неважными.

Мытко
17.08.2016
18:35:16
Мне кажется, значения по умолчанию - это тема для оффтопа

Andrey
17.08.2016
18:39:01
Мне кажется, значения по умолчанию - это тема для оффтопа
Возможно, но я не вижу вреда, которые они несут. Всё равно Java код без IDE не пишут, а там уже подсказки будут. А значения по умолчанию значительно улучшают читаемость.

Admin
ERROR: S client not available

guga
17.08.2016
18:44:17
А в месте с дефолтными значениями пришлось бы еще и именованные параметры сделать.

guga
17.08.2016
18:46:06
В реализации дефолтные значений, значение которое задано можно опустить, значить компилятор должен знать не только его позицию

Берял
17.08.2016
18:47:42
Прости, но я не понял, что ты написал.
параметр с дефолтным значением может стоять между другими

guga
17.08.2016
18:47:50
допустим у тебя есть метод foo(int a, int b = 2, int c), ты его можешь вызнать как foo(1, 2)

guga
17.08.2016
18:48:22
lol

Google
guga
17.08.2016
18:48:32
а какой тогда профит от дефолтных значений?

чем тебя не устроила цепочка методов foo(int a, int c){ foo(int a, 2, int c) }

Митко Соловец?
17.08.2016
18:49:55
но выглядит не очень, когда куча такой лапши вложенной

оберточная наркомания я это называю

Мытко
17.08.2016
18:50:56
По моему с пивасом потянет

Митко Соловец?
17.08.2016
18:51:30
алкоголь и кодинг не совместимы

guga
17.08.2016
18:51:54
алкоголь и кодинг не совместимы
главное в мастер не мёрджить, а так всё отлично идёт

Митко Соловец?
17.08.2016
18:52:00
на новый год 2015 мы с другом 2 часа пытались написать хеллоу ворлд

guga
17.08.2016
18:53:39
Но, если честно, я не понимаю, почему в жабу не добавят именованных параметров и дефолтных значений. Это же изменения на уровне javac

Митко Соловец?
17.08.2016
18:54:00
не все так просто, очевидно

иначе бы сделали

guga
17.08.2016
18:54:36
ну как бы в скале это есть

Andrey
17.08.2016
18:54:52
не все так просто, очевидно
Да, я согласен. Но я не понимаю почему так.

guga
17.08.2016
18:55:21
в котлине тоже

https://kotlinlang.org/docs/reference/functions.html#named-arguments

Митко Соловец?
17.08.2016
18:55:48
там есть активисты

которые за все новое

но не все утверждают

Andrey
17.08.2016
18:56:03
Симпотично выглядит. Беру своё мнение назад. Именованые параметры неплохи.

Митко Соловец?
17.08.2016
18:56:07
значит что-то это ломает и будет стоить дорого

Andrey
17.08.2016
18:57:32
значит что-то это ломает и будет стоить дорого
Сейчас внедрение - это проблема, так как код может сломаться. Я понимаю, почему это не внедряют. Обратная совместимость - это же главное)

guga
17.08.2016
18:58:18
А что это ломает? о_О

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