
Kirill
20.07.2018
21:31:11
типа "дженерики" :)))

Vladimir
20.07.2018
21:31:40
ну там чуваки прислали мне PR в виде +600, -1400 строк с комментарием уровня "у нас так лучше работает" )

Google

Vladimir
20.07.2018
21:32:36
в 37 коммитах
часть изменений в духе "мы тут вернули поведение полугодичной давности, потому что в новом какой-то баг но мы не поняли какой"
ну короче мне не очень понравилось такое
и вот во избежание придется учить людей пользоваться фича-флагами чтоб вот такое поведение они ревертили только для тех кто этого хочет

Kirill
20.07.2018
21:34:37

Vladimir
20.07.2018
21:35:19
как раз смотрю и ржу
ну там поинты местами валидные, реально в коде в мастере я багов кучу оставил ) но как-то я не знаю, так не делается что ли )

Daniel
20.07.2018
21:36:16
А как еще? Они бы и рады правильный набор pr подготовить, но времени нет

Vladimir
20.07.2018
21:36:58
опять же - правильное решение это feature flag'и
хотите отревертить для себя? делаете флаг, ревертите
кому надо тот включит его

Kirill
20.07.2018
21:40:25
ну - мой юзкейс для фичтоглов и сплиттестов другой: плавное переключение в рантайме, мониторинг и откат назад при возрастании эрроррейта, разделение по геолокации (если доступно) и прочее

Vladimir
20.07.2018
21:40:46

Google

Vladimir
20.07.2018
21:40:56
чтобы некоторые безопасные фичи были переключаемы в рантайме

Kirill
20.07.2018
21:43:48
ну - после релиза можешь протыкать, норм тебе, хватает или нет
anyway, если прикрутишь анализ error rate -- будет стабильнее %)

Vladimir
20.07.2018
21:44:54
точнее это должно быть две штуки - одна это либа дающая ручки и простой способ регать и проверять эксперименты
а второе - это внешний управлятор который может их тыкать туда-сюда по необходимости
но в общем пойду я спать

Daniel
20.07.2018
21:47:11
Чей-та?! Солнце еще высоко!

Vladimir
20.07.2018
21:47:30

Kirill
20.07.2018
21:47:49
и чо?)
солнце ещё высоко
то есть - мы ещё не столкнулись

Daniel
20.07.2018
21:48:20
Я шучу. Я вот как раз вечером лечу домой

Vladimir
20.07.2018
21:48:37

Daniel
20.07.2018
21:49:09
Pr такого размера? Это смешно реально

Kirill
20.07.2018
21:49:17

Vladimir
20.07.2018
21:49:27

Kirill
20.07.2018
21:49:54

Daniel
20.07.2018
21:50:05
Это десяток разных должен быть

Google

Kirill
20.07.2018
21:50:25

Vladimir
20.07.2018
21:50:28
Dep жи
Какой нибудь

Kirill
20.07.2018
21:51:06
ни одного вендора, package*.json и прочего
Dep жи
так что даже близко не угадал)

Vladimir
20.07.2018
21:52:33

Kirill
20.07.2018
21:52:45
гошный код
проприетарный проект, поэтому ни одной строчки не скопировано

Vladimir
20.07.2018
21:53:29

Kirill
20.07.2018
21:54:10

Vladimir
20.07.2018
21:55:02
не-а)
А чего там на лям строк тогда?
Документация?

Kirill
20.07.2018
21:55:52
бесконечная угадайка
это говнокод

Daniel
20.07.2018
21:56:05
Лям - это овердохера даже с докой

Kirill
20.07.2018
21:56:12
ну - как говнокод

Daniel
20.07.2018
21:56:32
И даже говнокода столько быть не должно

Kirill
20.07.2018
21:56:44
его рефакторить надо, раскидать по функциям/методам, доку какую-то написать

Daniel
20.07.2018
21:57:08
Сделать еще больше строк, ага

Google

Kirill
20.07.2018
21:57:22
дык уже поопрятнее будет
не в 20 с чем-то файлов же всё будет лежать
хотя надо с этим всё равно что-то делать
сейчас бинарь на >100 метров
(да, у меня был дед Лайн)

Roman
20.07.2018
22:13:03
ткните где бы почитать стоимость вызова интерфейсного метода

Александр
20.07.2018
22:38:46
это какого?
что есть "интерфейсный метод"

Roman
20.07.2018
22:46:15
уже намерил

Александр
20.07.2018
22:59:08
а поделись результатом
что бы не копипастить ?

Daniel
20.07.2018
23:09:43

Александр
20.07.2018
23:17:20
BenchmarkInterface-4 1000000000 2.86 ns/op
BenchmarkConcrete-4 2000000000 0.36 ns/op

Daniel
20.07.2018
23:17:55
это очевидно, да
но
код же что-то делает, кроме этих вызовов

Александр
20.07.2018
23:18:32
кстати он как то криво посчитал

Daniel
20.07.2018
23:18:34
и обычно это занимает на два порядка больше времени

Google

Александр
20.07.2018
23:18:50
итераций в два раза больше, а время на одну занимает меньше чем в два раза
по идеи там должно быть 1 и 7 миллиарда
а не 1 и 2

Mike
20.07.2018
23:21:37

Daniel
20.07.2018
23:23:05
да пофиг, на чем это делать
числодробилка упирается в скорость сопроцессора
который давно не сопроцессор, но инструкции-с-плавающей-точкой все одно особняком

Александр
20.07.2018
23:24:44
можно в принципе привести к типу
и прозводительность сразу подскочет

Daniel
20.07.2018
23:26:39
а проверь, пожалуйста

Александр
20.07.2018
23:27:15
уже
func BenchmarkRuelephant(b *testing.B) {
var s D
s = Create()
call := s.(*Virt)
for i := 0; i < b.N; i += 1 {
call.Add()
}
}
BenchmarkInterface-4 1000000000 3.07 ns/op
BenchmarkConcrete-4 2000000000 0.38 ns/op
BenchmarkRuelephant-4 2000000000 0.42 ns/op

Daniel
20.07.2018
23:27:38
ага

Александр
20.07.2018
23:28:02
я тут задумал может как с type switch извратиться ?
что бы автоматически приводить к типу
можно выскакивать в default всегда...
но идея еще не проработана
я думаю можно еще рефлектом как то

Dmitry
21.07.2018
05:20:51
Здравствуйте, друзья. Подскажите, есть ли смысловая разница между этим чатом и https://t.me/gogolang ?