@gogolang

Страница 1455 из 1630
Александр
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:16:06
ну у меня лично он каждый раз забирается dep

не хочу гадить историю гита

потом мержить очень больно чужие либы

Roman
25.09.2018
16:16:28
Удивительно что мы вообще тут обсуждаем столь очевидные вещи из категории must have.
вопрос как этого добиться... кодогенерация до каждого билда это дорого, слишком дорого. нужен некий механизм кеширования

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

Илья
25.09.2018
16:17:11
уже описал выше, главная причина: нет гарантированной синхронизации DSL и генерированного запушенного кода
Если изменение затронуло какое то поведение, то на это, наверное, есть тест и он упадет

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

Daniel
25.09.2018
16:17:47
Кодогенерация - это не написание кода. А его генерация. Ваш кэп. И ответственность за запуск этой самой генерации просто опасно возлагать на такое часто ошибающееся существо как человек.
если проект компилируется без результатов генерации - так, может, и не нужна она? а если нет - вы же компилируете свою программу, прежде чем пушнуть? или вы хотите оставить программисту возможность компилировать локально другой код, нежели будет использовать CI?

в любом случае - это тупо.

Google
Alexander
25.09.2018
16:18:35
ой

Илья
25.09.2018
16:18:45
вопрос как этого добиться... кодогенерация до каждого билда это дорого, слишком дорого. нужен некий механизм кеширования
В easyjson пробовали такое сделать, но там сложно, нужно еще дерево импортов крутить каждый раз

Daniel
25.09.2018
16:18:50
я могу тупо забыть запустить кодогенерацию
и что? какую проблему решит кодогенерация на CI?

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

Roman
25.09.2018
16:19:15
Алексей
25.09.2018
16:19:19
и что? какую проблему решит кодогенерация на CI?
да никакой, я же как раз против кодогенерации в CI выступал

Александр
25.09.2018
16:19:35
и что? какую проблему решит кодогенерация на CI?
* уменьшение кодовой базе в репе * страховка от ошибок "забыл запустить"

Daniel
25.09.2018
16:19:37
а!

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
* уменьшение кодовой базе в репе * страховка от ошибок "забыл запустить"
Точно. И не надо потом в PR смотреть диф кодогена.

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

Alexander
25.09.2018
16:21:15
а чем? такой длины член далеко не у всех...
Вот кто б тебя забанил иногда? ?

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

Алексей
25.09.2018
16:22:09
и так не надо, если руки из плеч
нет гарантий что скажем у всех джунов за час перед дедлайном все руки из плеч растут

больно, да. но какие варианты-то?
автоматический запуск перед компиляцией с кешированием

Google
Roman
25.09.2018
16:22:44
больно, да. но какие варианты-то?
генерить до каждого билда? (с кешированием)

Daniel
25.09.2018
16:22:49
нет гарантий что скажем у всех джунов за час перед дедлайном все руки из плеч растут
проблема дифа генеренного кода решается один раз и навсегда

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

Daniel
25.09.2018
16:24:13
это как?
.gitattributes

да хоть с помощью того же RCS :)
поздно. я же хочу компильнуть до пуша

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

Раньше запускалось при сборке, но это в итоге медленно

Roman
25.09.2018
16:59:27
Результат кодгена это такой же код как и написанный руками, аргументы типа забыть сгенерить и запушить в репозиторий - очень тупой
нет, не такой-же, он не считается исходным кодом. Исходниками считаются те файлы которые писал человек (или сопостовимый высший интеллект).

Александр
25.09.2018
17:00:19
кстати вопрос про моки

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

Google
snip
25.09.2018
17:01:51
нет, не такой-же, он не считается исходным кодом. Исходниками считаются те файлы которые писал человек (или сопостовимый высший интеллект).
Это чушь, это такой же код программы и если вы запушили без него, то вы не тестили свой код и запушили код который не компилируется, таких людей надо гнать из профессии

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

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

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
Тогда либо не было правок, либо код не тестировал я Во всех этих случаях человеку явно надо дать по рукам
сгенерили по схеме 1000 методов. Один метод поменял сигнатуру в схеме. Перегенерить забыли. Метод закоммичен старый.

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
Перегенерить надо после того как поменяли сигнатуру, а не когда вздумается
нет, просто "надо перегенерить". Я тебе показываю как может попасть на бой рабочий код, нетестированный разработчиком, необязательно с изменением, инициированным изнутри.

Страница 1455 из 1630