Dmitri
1. Серверу ок
Aleksandr
на этапе напсания кода мне иде подскажет что поля то нет
Dmitri
2. Серверу не ок.
Dmitri
Если уж она умеет файлы сохранять при изменении, то, видимо, и автоматический запуск кодогенерации при изменении схемы прикрутить тоже можно
Aleksandr
можно
Dmitri
Если иде нет, то несколько сложнее
Dmitri
Оно либо скомпилилось, либо нет
Dmitri
И вот тут вам либо гитхуками обвешиваться
Dmitri
К слову, почему бы и нет
Dmitri
Либо думать на тему "что будет, если на сервер неполный жсон уйдет"
Dmitri
И тут либо все норм, либо сервер просто нафиг пошлет
Aleksandr
да. я все же считаю что код сгенерить должен разработчик, а не ci или что-то там на стороне, поэтому бы написал гитхук, который перед пушем генерит код из схемы, проверяет получившиеся файлы на идентичность с файлами из последнего коммита, и в случае не соответствия реджектил бы с сообщением
Dmitri
Ну вот да, проблема несгенеренных апишек где-то на этом уровне должна решаться
Dmitri
А автозапуск генерации сильно много поломать может
Dmitri
Так что я против такого "умного" компилятора
Aleksandr
да и вообще это странно, что у тебя в репо и релиз уйдет код, который разработчик даже не видел
Dmitri
Видеть-то видел. Просто не в запущенном состоянии)
Aleksandr
вчера продвигали тему, что генерить должен ci например. то есть я запушил, ci сгенерил по схеме код, протестил, сбилдил бинарники, разлил на бой
Aleksandr
при таком подходе разраб не видел новый код)
Dmitri
Свят-свят
Dmitri
При этом он его и не запускал
Dmitri
Вообще, мне кажется, что такие кейсы - они уже не в компетенции гошного компилятора
Roman
Dmitri
Если оно реально требует контроля, то уж билд-систему пилить всяко надо
Dmitri
Ага, читал
Dmitri
Там было про "сгенеренный код кодом не считается, и держать его в Гите не надо"
Dmitri
Вот такая позиция, вроде, была
Алексей
Ну не знаю какая там у других людей была позиция, но у меня была позиция - кодогенерация обязательно должна запускаться при компиляции (точнее перед), чтобы полностью исключить ситуацию когда человек забыл запустить кодогенерацию.
Roman
Алексей
А ci/не ci, коммитить/не коммитить - это уже другое дело.
Алексей
Алексей
Roman
Алексей
ну для автокомплита уж руками, или может ide сможет
Алексей
вот да
Roman
но, это не отменяет нужду генерации при сборке, просто она пройдёт из кеша
Алексей
точнее можно при сохранении запускать каждый раз генерацию
Алексей
если есть кеширование, то будет быстро
Roman
и при сохранении исходника и при сборке
snip
Алексей
и при сохранении исходника и при сборке
Алексей
вот это вот
snip
Какого исходника?
snip
Любого файла? Файла го? Джисон?
Алексей
Я даже не знаю как на это реагировать
Алексей
ну ведь можно же наверное прочитать сообщения выше и понять о чём идёт речь
snip
Я почитал, там не сказано, там просто говорится что при изменении исходника
snip
Схема на основе которой генерится коды может быть в JSON, xml, yaml, а может в го коде
snip
Вот я и спрашиваю при изменении чего должна запускаться генерация
snip
Roman
Roman
go run make.go -g
Roman
оптимизировать можно дальше, конечно
snip
А зачем? Почему просто не запустить генерацию, если мейк файл все равно руками запускаем?
Roman
в VSC есть такие полезные вещи как workspaces, где можно прописать выполнение скрипта на разные файлы: generated_api.json -> go run make.go -g generated_api.json
Roman
snip
Автоматизация ради автоматизации без реальной пользы и это я не про vsc
Roman
Roman
Vadim
Watch "JavaScript: Understanding the Weird Parts - The First 3.5 Hours" on YouTube
https://youtu.be/Bv_5Zv5c-Ts
Vadim
"The first 3.5 hours"
snip
Roman
Roman
hamper 𓅝
А почему может не работать ldflags? Делаю в пакете system переменную var Branch string, собираю через go build -ldflags "-X system.Branch=master" и при запуске в переменной пустая строка все равно.
🏁Александр
эм
🏁Александр
насколько я помню это работает только для пакета main
🏁Александр
но могу нагло врать
Илья
нагло
Илья
это работает везде
Anonymous
hamper 𓅝
Вот у меня в main работает а в отдельном пакете почему-то нет.