kostyaBro
может лучше билдер взять?
Может. Он быстрее?
Илья
в сравнении с fmt.Sprintf медленее
kostyaBro
Ну пока допишу сначала
kostyaBro
А почему лучше
Илья
А почему лучше
ну будет понятнее
Александр
Ну в целом да он думают что инъекция походу.
Не, просто все что в этих кавычках ide считает за валидный sql код, и никаких процентов тут быть не должно
kostyaBro
ну будет понятнее
Да тут и так понятно
Кіт ✙
Просто количество полей динамическое
попахивает либо говнецом, либо монгой
Илья
где ты тут монгу видишь?
kostyaBro
попахивает либо говнецом, либо монгой
Попахивает тем что приходит структура, а в ней не все поля заполнены и надо апдейтить только то что заполнено. Чтобы не занулять поля
Кіт ✙
где ты тут монгу видишь?
а что в "динамическое количество полей" должно НЕ намекать на монгу?
kostyaBro
но почему не билдер, в самом деле?
Просто не привык им пользоваться
kostyaBro
Кіт ✙
Why
называется "нормальный подход"
Кіт ✙
можно вот так извернуться под каждое поле в sql запросе
хотя вот имхо лучшее решение на данный момент - тут. Пусть бд сама решает, что пустое, а что надо обновить
Александр
ну там апдейт надо вообще но суть примерно такая
kostyaBro
называется "нормальный подход"
Ну хз, глянул интерфейс билдера, там нет ничего что добавило бы понятности и удобства.
kostyaBro
Вкусовщина не аргумент
kostyaBro
Темболее он медленнее как говорит Илья
Кіт ✙
kostyaBro
Кіт ✙
Но го передаст 0 или "" это же не null
значит, проверить на соответствующий zero-value
Александр
ну так измени на "" или 0
Илья
Темболее он медленнее как говорит Илья
медленее, но тут разница в наносекундах
Илья
Если для тебя этот код понятный, то пусть так и будет
kostyaBro
Кароч я не услышал ни одного аргумента в пользу билдера, Хотя возможно в сумме весь код выиграет. Я напишу бенч на свой кейс
Илья
С орм можно было бы сделать omitempty, короче вариантов куча
kostyaBro
А мне просто интересно
kostyaBro
Бенч написать секундное дело
kostyaBro
Кол понятнее не станет явно
kostyaBro
Этож огромное количество конкатенаций, чтобы собрать SQL Тут мы видим из чего как что собралось
Кіт ✙
не думаю, что тебе нужно аж бенч писать
если ты так заботишься о производительности, то будешь хранить рядышком буфер, в котором будешь формировать кверю, после чего совать в движок, не забыв перед этим свапнуть в строку
kostyaBro
Хотя... И так и так одинакого понятно
kostyaBro
Не вижу разницы
kostyaBro
А ну в билдере можно заалоцировать сколько надо сразу
Александр
Но го передаст 0 или "" это же не null
я мб чето не понял, чем этот вариант не подходит?
Кіт ✙
Я завел разговор про производительность вопрос. Лишь потому что не понимаю почему вы говорите что билдер лучше
тогда я тебе ответ дал. если ты хочешь золотую середину - beauty peak - тогда убираешь спринтф (он медленный) и берёшь свой билдер, который заранее знает размер итоговой строки, и эффективно всё билдит
Кіт ✙
но опять же, это всё на мой субъективный взгляд костыли. Лучше в бд
Null
⭐️ termdash – инструмент для отрисовки дашбордов прямо в терминале Сам проект кроссплатформенный, а также имеет открытое API для создания плагинов 🖥 Github #Go #Terminal @Golang_google
Khikmat
Всем салют ребят) сам среднего уровня go разраб, ищу проект в котором можно прокачать навыки с работой kafka , rabitmq , если у кого то есть проект с интересным стеком и нужны лишние руки (помогу безвозмездно) то пишите в лс)
Melbourne Channel
is this the fastest tcp server for golang or there is faster? https://github.com/maurice2k/tcpserver
Бузург
Люди подскажите пж как сделать upload файла через websocket
Бузург
В инете инфы не смог найти
Бузург
Не там через чат могут скрин отправить
Khalid
как остановить ReadAll в os.Stdin?
Khalid
я подаю туда json и не понимаю как остановить считывание
kostyaBro
но у меня промелькнула идея сделать base64, покромсать на кусочки и отослать
Бузург
может лучше не через websocket?
Если было бы так просто я бы и сам сделал
Khalid
я подаю туда json и не понимаю как остановить считывание
у меня просто он считывается бесконечно
kostyaBro
Не там через чат могут скрин отправить
загрузить скрин через отдельную ручку POST запросом, получить ссылку
kostyaBro
отправить ссылку
kostyaBro
Ну или ебитесь с отправкой кусочков base64 но лучше не еьаться
Kirill
Люди, у вас на работе используется какой-нибудь фреймворк по типу джина и если да, то какой?
kostyaBro
это на прошлой работе на еще одной прошлой был gin
kostyaBro
сейчас тут full grpc
Артем
Господа, такой вопрос. grpc он же больше про микросервисы да? Фронт с бэком им не особо подружишь
Артем
Почему? Фронт отлично работает с gRPC
А, если правильно понял ты генеришь js для клиента и тупа пользуешься?
MDWIT
А, если правильно понял ты генеришь js для клиента и тупа пользуешься?
Да, тут все верно. Есть особенности языков которые добавляют боли при проектировании proto. Но в этом и вся особенность контракта, дать возможность общаться по нему одинаково
Илья
Почему? Фронт отлично работает с gRPC
Там вроде урезанный gRPC, нет?
kostyaBro
Там вроде урезанный gRPC, нет?
Там проблема в том что браузер не дружит с http/2
kostyaBro
По крайней мере раньше
MDWIT
MDWIT
все там поддерживается и дружит)
kostyaBro
не вникал
kostyaBro
давал както фронтендерам сделать они заплакали пришлось мидлварю крутить