
Александр
25.09.2018
16:14:44

Roman
25.09.2018
16:15:08
репродуцируемых?
reproducible, repeatable.. называйте как хотите
я предпочитаю reproducible, от слова produce

Александр
25.09.2018
16:15:25
повторяемых? ?

Алексей
25.09.2018
16:15:30
Удивительно что мы вообще тут обсуждаем столь очевидные вещи из категории must have.

Google

Илья
25.09.2018
16:15:47

Alexander
25.09.2018
16:16:00

Александр
25.09.2018
16:16:06
ну у меня лично он каждый раз забирается dep
не хочу гадить историю гита
потом мержить очень больно чужие либы

Roman
25.09.2018
16:16:28
генерировать только тогда, когда изменился DSL образ

Илья
25.09.2018
16:17:11

Alexander
25.09.2018
16:17:17
а можно я нескромно спрошу? А что за кодогенерация такая постоянно? Зачем это?

Daniel
25.09.2018
16:17:47
в любом случае - это тупо.

Алексей
25.09.2018
16:18:10
потому что я человек

Google

Daniel
25.09.2018
16:18:21

Alexander
25.09.2018
16:18:35
ой

Илья
25.09.2018
16:18:45

Daniel
25.09.2018
16:18:50

Алексей
25.09.2018
16:19:00
и да, если программа скомпилировалась и даже если тесты отработали - это ещё не значит что всё нормально будет

Roman
25.09.2018
16:19:15

Алексей
25.09.2018
16:19:19

Александр
25.09.2018
16:19:35

Daniel
25.09.2018
16:19:37
а!

Roman
25.09.2018
16:20:03

Daniel
25.09.2018
16:20:03
* уменьшение кодовой базе в репе
* страховка от ошибок "забыл запустить"
Daniel Podolsky admin, [25 Sep 2018 19:17:47]:
если проект компилируется без результатов генерации - так, может, и не нужна она?
а если нет - вы же компилируете свою программу, прежде чем пушнуть?
или вы хотите оставить программисту возможность компилировать локально другой код, нежели будет использовать CI?
в любом случае - это тупо.

Алексей
25.09.2018
16:20:03
и уж точно я против запуска кодогенерации руками

Daniel
25.09.2018
16:20:36
а чем? такой длины член далеко не у всех...

Pavel
25.09.2018
16:20:45

Daniel
25.09.2018
16:21:04
и так не надо, если руки из плеч

Alexander
25.09.2018
16:21:15

Александр
25.09.2018
16:21:21
я помню "забыл запустить" - easyjson в одном из пакетов, после обновления структуры. Было больно отлаживать

Daniel
25.09.2018
16:22:04

Алексей
25.09.2018
16:22:09

Google

Roman
25.09.2018
16:22:44

Daniel
25.09.2018
16:22:49

Александр
25.09.2018
16:23:01

Daniel
25.09.2018
16:23:53

Alexander
25.09.2018
16:23:57
это как?
да хоть с помощью того же RCS :)

Daniel
25.09.2018
16:24:13

Roman
25.09.2018
16:24:54
каким это образом? технически?
чексуммы? проверить чексумму исходников образа, проверить название генерированного файла.go и сравнить, были ли изменения, если не было - компилить, если были - заново сгенерить и компилить

Алексей
25.09.2018
16:25:53
скорее всего сама компиляция примерно также и работает
только надо было бы ещё на кодогенерацию это всё распространить

Александр
25.09.2018
16:28:57
.gitattributes
вы имеете введу изменение стратегии слияния для vendors?
c помощью .gitattributes

Алексей
25.09.2018
16:29:46

Alexander
25.09.2018
16:30:54
А почему любимого Славы Бахмутова на воскресном митапе не бвло?

snip
25.09.2018
16:31:02
Результат кодгена это такой же код как и написанный руками, аргументы типа забыть сгенерить и запушить в репозиторий - очень тупой

Alexander
25.09.2018
16:31:39
пашет, наверное....

Алексей
25.09.2018
16:32:16

snip
25.09.2018
16:32:29
Нет

Александр
25.09.2018
16:32:57

Алексей
25.09.2018
16:33:38
Или это тот случай из разряда "если этого нет в Go, значит это не нужно"?

Google

Александр
25.09.2018
16:34:46
гоу религия подрузомевает что у вас все сделано максимально "чисто"
поэтому и нет всяких дженерикой
и куча "копипаста"

Алексей
25.09.2018
16:35:17
Мы сейчас не про дженерики вообще говорим

Александр
25.09.2018
16:35:41
коммитить кодген это нормально

Алексей
25.09.2018
16:36:15

snip
25.09.2018
16:36:18
Код независимо от того как он написан является кодом программы, если вы запушили код в репо не сгенерировав код значит вы запушили код который не компилится, значит вам не место в профессии

Алексей
25.09.2018
16:36:54
так понятно

Александр
25.09.2018
16:36:59
у вас IDE например тоже создает файл main.go и функцию main в нем, не скажите же вы что это коммитить нельзя и надо юзать генерацию на CI?

Алексей
25.09.2018
16:38:32
как я объяснял предыдущие два раза:
1) пушьте сгенерированный код сколько угодно
2) не надо кодогенерацию на CI выносить
3) не надо кодогенерацию доверять человеку, когда достаточно легко сделать так, чтобы доверять было не нужно
4) надо кодогенерацию выполнять при сборке

Admin
ERROR: S client not available

Alexander
25.09.2018
16:38:45
вот, суко, девопских докладов в воскресенье и не было в мыле... про кодогенерацию и все, что с этим связано
кто-нибудь возьмется подготовить такой доклад про кодогенерацию и ответить на вопросы благодарных слушателей?
сразу все замолчали... :)

Vasily Romanov
25.09.2018
16:55:40
Раньше запускалось при сборке, но это в итоге медленно

Dmitri
25.09.2018
16:56:27

Roman
25.09.2018
16:59:27

Александр
25.09.2018
17:00:19
кстати вопрос про моки
если мы берем неsql базу, то ее стоит оборачивать для кормежки в репозиторий?

Google

Roman
25.09.2018
17:01:49

snip
25.09.2018
17:01:51

Roman
25.09.2018
17:02:43

snip
25.09.2018
17:03:06
Это примерно тоже самое самое что забыть запушить часть исходников написанных руками

Roman
25.09.2018
17:04:45

Aleksandr
25.09.2018
17:05:13
Что за бред
скомпилировал по схеме 1000 методов апи-клиента, в одном из которых поменялась сигнатура. либа скомпилится. если тестов нет, то ошибка обнаружится только на бою, когда апи начнет отдавать 400

snip
25.09.2018
17:06:06
Как можно править код и забыть его запушить?

Nyan
25.09.2018
17:06:47
его не забыли запушить
забыли сгенерировать новую версию

Roman
25.09.2018
17:07:35
Что за бред
уточню: ты мог забыть перегенерировать код после изменения исходников. Если обратная совместимость интерфейса генерированного кода не нарушена, но изменения произошли внутри имплементации - тогда беда, которую в лучшем случае отловит тест а в худшем вообще никто не заметит пока не заметят баг в продакшне

snip
25.09.2018
17:07:47

Roman
25.09.2018
17:08:46
рассинхрон исходного кода и генерированного кода это potential security issue а делать ответственным за это человека, который по своей природе часто ошибается, довольно опасная затея

Aleksandr
25.09.2018
17:08:55

snip
25.09.2018
17:09:13

Roman
25.09.2018
17:10:22

snip
25.09.2018
17:10:53
Это же ошибка идиота, зачем идиоты в команде

Roman
25.09.2018
17:12:45

Александр
25.09.2018
17:12:57
так народ, давайте закончим

Aleksandr
25.09.2018
17:13:28