@jvmchat

Страница 1999 из 2890
Денис
04.12.2017
15:01:31
Олрайт

Artjom
04.12.2017
15:02:09
Тут скорее чем больше аргументов тем тяжелее метод тем сложнее понять четам и сложнее его протестировать

Sergey
04.12.2017
15:02:23
Да но при чем здесь количество аргументов в методе
Есть метрики которые оперируют на интерфейсах. Они учитывают в том числе и кол-во аргументов, и оно как правило обратно пропорционально cohesion

Хотя не, там не все однозначно.

Google
Artjom
04.12.2017
15:03:45
Мне скорее интереснее cyclomatic complexity метода в этом случае

Arsen
04.12.2017
15:05:01
Мне скорее интереснее cyclomatic complexity метода в этом случае
на днях попробовал включить правило линтера про cyclomatic complexity, тимлид погнал ссаными тряпками((

Artjom
04.12.2017
15:05:01
И часто, но не всегда, бывает, что чем больше параметров в методе, тем cc больше

Sergey
04.12.2017
15:05:39
Мне скорее интереснее cyclomatic complexity метода в этом случае
Cyclomatic/NPath complexity тоже не стоит игнорировать, да. Но они больше про отдельные методы классов чем про сами классы.

Александр
04.12.2017
15:07:22
обмажуться своем Егором и давай спорить

а на работе, монадки не поглажены

Sergey
04.12.2017
15:07:48
Если бы монадки\

Александр
04.12.2017
15:09:46
- почему вы решили уволиться ? - нет возможности гладить монадки

Artyom
04.12.2017
15:10:31


Sergey
04.12.2017
15:11:25
Казалось бы - при чем тут монадки)

Alexander
04.12.2017
15:13:59
:D

а всомнил, еще: no string concatention :D

Artjom
04.12.2017
15:14:55
Но сейчас же можно

Google
Artjom
04.12.2017
15:15:33
В конкатенацию стрингов

Alexander
04.12.2017
15:15:47
ну меня лично до Егора еще раздражала конкатенация, я теперь везде String.format юзаю и радуюсь жизни)

format напоминает теплый ламповый printf :D

Alexander
04.12.2017
15:16:48
да они тоже ок

главное чтобы не "x: " + x + "("+ (a+b)+"..... бля пиздец черт ногу сломит

Artjom
04.12.2017
15:17:57
А вот в грууви

Oleksandr
04.12.2017
15:18:09
s"value of x = $x"

Alexander
04.12.2017
15:18:23
еще при конкатенции можно на narrowing наступить, точнее легче это сделать

Oleksandr
04.12.2017
15:18:28
s"value of foo with x, y = ${foo(x, y)}"

идеально же

Alexander
04.12.2017
15:18:52
ну в нормальных языках такого не надо)

Artjom
04.12.2017
15:18:57
Это ты сейчас скалу пропихнул да?

Oleksandr
04.12.2017
15:19:02
конечно

guga
04.12.2017
15:19:35
s"value of foo with x, y = ${foo(x, y)}"
мне никогда не нравилась такая штука

Oleksandr
04.12.2017
15:19:36
согласись, что выглядит действительно удобно

Alexander
04.12.2017
15:19:40
пздц. как поднять бобла, куда нажать)

Arsen
04.12.2017
15:20:04
удобная фича же

в питон вот недавно добавили

Google
guga
04.12.2017
15:20:17
почему?
это как писать плейн sql в строке

Alexander
04.12.2017
15:20:22
идеально же
хорошо что в норм языках такого нет)

Oleksandr
04.12.2017
15:20:39
хорошо что в норм языках такого нет)
что такое "норм" язык и почему это хорошо ?

guga
04.12.2017
15:20:40
ни тебе типов, ни подсказок

Oleksandr
04.12.2017
15:20:55
ни тебе типов, ни подсказок
ээ, наведи мышкой с cmd в идее, будут тебе типы и подсказки

Arsen
04.12.2017
15:21:08
каких подсказок?

Artjom
04.12.2017
15:23:45
Сложурно

Alexander
04.12.2017
15:25:52
строка должна быть строкой, в идеале иммутабильной а не породией на шаблонизатор) Везде где я вижу что на строку навешивают функции шаблонов вызывает сомнения, если это не разметка какая-нить где специально строковые выражение подразумеваются как части одного большого шаблона

Artjom
04.12.2017
15:26:37
В грууви вот "hello $username "

Artjom
04.12.2017
15:26:59
Почти скала, только грууви

Oleksandr
04.12.2017
15:27:08
как если бы писал руками, только читаемее (сахар!)

Alexander
04.12.2017
15:27:36
Oleksandr
04.12.2017
15:29:05
по мне так дёготь :D
и как же было бы удобнее?

Alexander
04.12.2017
15:32:31
вот понимаешь, когда я вижу format("hello %s", ....); я понимаю что вычисляется строка 1 раз и я могу ее интернировать даже если захочу, а когда я вижу "hello $x" то я не знаю что делается в итоге как оно разматывается нам внутри, это уже не строка а шаблон, который automagicaly заполняется. Зачем мне над этим думать, если я знаю точно что при иммутабильной строке я получаю всегда строку в которую нельзя ничего дописать, переписать иди удалить. Далее, вопрос эффективности встает, что если у меня строка 2GB и я не хочу чтобы ее "сахарнэ" груви парсил на наличие спец символов? Это можно легко и быстро отключить в конкретном месте кода?

Oleksandr
04.12.2017
15:33:35
есть спека на это дело вызывается x.toString ну и там все абсолютно иммутабельно на выходе

то есть sb = new StringBuilder("hello" ) sb += x.toString return sb.toString

Александр
04.12.2017
15:34:13
//case1 String s1 = "Hello" ; for( int i = 0 ; i < 5 ; i ++){ s1 = s1+ "1" ; } //case1 String s1 = "Hello" +"!" +"!" +"!" +"!" +"!" ; Не смущает что будут выполнены разные не явные для человека оптимизации?

Alexander
04.12.2017
15:41:27
один раз посмотри как делаеться, в чем проблема ?
ну не так просто как кажется. У меня есть задача Х и инструмент Z, инструмен Z хорошо решает задачу X и даже ее производные задачи X', а тут получается полявлется интсрумент Y, который пытается собой заменить инстурмент Z, однако при любом более менее пристальном рассматрении выдает себя за собственно за инстурмент Z. Т.е теперь нужно "посмотреть один раз" не только как оно делается в инстурменте Z но еще и в этом медиаторе в лице инстурмента Y. Он конечно может разматывать там все в Java, то в long-term это создает больше вопросов чем ответов

Google
guga
04.12.2017
15:41:40
меня в string builder смущает вот такой вывод

public static void main(String[] args) { String n = null; StringBuilder stringBuilder = new StringBuilder("start "); stringBuilder.append(n); stringBuilder.append(" end"); System.out.println(stringBuilder.toString()); }

start null end

Oleksandr
04.12.2017
15:43:12
null — зло

guga
04.12.2017
15:43:46
null — зло
но это java, никогда не знаешь, когда тебе налл в лицо сунут

Admin
ERROR: S client not available

Vitalii
04.12.2017
15:43:48
null — зло
Так а если он извне приходит и потом к SB попадает? Из-за такого поведения городить тернарки/проверки приходится.

Oleksandr
04.12.2017
15:43:49
юзать его можно только в кишках либы/метода для производительности, и ни за что не надо его выставлять наружу

Oleksandr
04.12.2017
15:44:03
но это java, никогда не знаешь, когда тебе налл в лицо сунут
эээ, не совсем — у тебя же есть контроль на своим кодом?

для внешних либ котлин так же не знает

если что :)

и так же будет падать

Vitalii
04.12.2017
15:44:48
и так же будет падать
У него зато элвис есть.

Oleksandr
04.12.2017
15:45:08
У него зато элвис есть.
это типа "if (foo) a else b" ?

Alexander
04.12.2017
15:45:24
в кретсах 20 уже spaceship operator есть (будет) :D

Vitalii
04.12.2017
15:45:25
это типа "if (foo) a else b" ?
Нет, это тернарка, и она есть в жава и отсутствет в котлин.

Oleksandr
04.12.2017
15:45:37
я не про тернарку

а про то, что "все есть выражением"

Google
Oleksandr
04.12.2017
15:45:51
иф в джаве ничего не возвращает

guga
04.12.2017
15:45:56
Vitalii
04.12.2017
15:46:12
а про то, что "все есть выражением"
Ну да, но это к чему было?

Oleksandr
04.12.2017
15:46:15
в котлине вроде сделали (опять) как в скале — то есть "все есть выражением"

Ну да, но это к чему было?
ну не нужен этот элвис тогда

Igor
04.12.2017
15:47:41
если что :)
Но он упадает сразу, а не через 10 вызовов

Vitalii
04.12.2017
15:47:55
ну не нужен этот элвис тогда
Элвис — это не if (foo) a else b Это аналог тернарки Элвис (?:) — это if (a == null) b else a Там свой фетиш вокруг всего, что содержит ?

Oleksandr
04.12.2017
15:48:01
должно не компилироваться

Anton
04.12.2017
15:48:09
kotlin!
тсс... не мешай жаве разиваться, может к 2020 хотя бы автовывод типов осилит

Igor
04.12.2017
15:48:21
в рантайме? одно говно
Кстати в Scala 3.0 то же же обещали, сделать “как в Kotlin” с явным нулабилити

Oleksandr
04.12.2017
15:48:43
это было "может, сделать так?"

Igor
04.12.2017
15:48:53
должно не компилироваться
Так изначально и было, но народ взбунтовался. Видимо так писать, готовы только отдельные отщепенцы.

Oleksandr
04.12.2017
15:50:06
Элвис — это не if (foo) a else b Это аналог тернарки Элвис (?:) — это if (a == null) b else a Там свой фетиш вокруг всего, что содержит ?
мм, но ведь он заменяется на вышеуказанную строчку, почему я и пример ифа навел правда, аж на 3-4 символа больше печатать

Vitalii
04.12.2017
15:50:34
мм, но ведь он заменяется на вышеуказанную строчку, почему я и пример ифа навел правда, аж на 3-4 символа больше печатать
Как замечательно ты пришёл к холивару котлин вц скала и нужности элвиса. Но зачем?

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