Size: a a a

Golang Developers — русскоговорящее сообщество

2021 June 28

AlenaHR2021 Алена... in Golang Developers — русскоговорящее сообщество
Ребята, всем привет!)  Нам в команду требуется разработчик со знанием архитектурных паттернов, который может самостоятельно разрабатывать и
реализовывать архитектуру
высоконагруженных отказоустойчивых
решений!) Может быть есть те, кто сейчас ищет для себя интересный проект?) Или сможете кого-то посоветовать? У нас очень хорошая вилка зп и условия😊
источник

D

Dmitriy in Golang Developers — русскоговорящее сообщество
Код не покажу, но видел, что делают примерно так:
* Entity нет
* Все методы, получающие данные из БД, возвращают структуры или слайсы структур
* Когда нужно строить запрос с кучей условий, используются квери-билдеры (тот же Скриверел)
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
Каждый раз спрашиваю для чудо orm free людей… Вы как select мапите на структуры? И сразу оказывается, что человек просто использует орм, а топит на другое
источник

Г

Глеб in Golang Developers — русскоговорящее сообщество
что значит мапить на структуры?(
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
Мне тоже нужен и условия хорошие 😂 если что. Только я не девочка)
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
в запросе надо перечислять поля, в структуре они есть. нужно из результатов запроса сделать копирнуть все в структуру.
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
в database/sql это будет
var row SomeModel
Scan(&row.ID, &row.Name и тп
источник

Г

Глеб in Golang Developers — русскоговорящее сообщество
я юзаю sqlx, у него есть методы Select и Get для таких задач
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
перечисляете все поля в запросе или select *?
источник

D

Dmitriy in Golang Developers — русскоговорящее сообщество
Ну вот примерно так. Либо с помощью sqlx. Там есть структурный тег db, позволяющий указывать названия колонок запроса
источник

A

Andrew in Golang Developers — русскоговорящее сообщество
Быстро ставь на аву заманивающую фотку
источник

Г

Глеб in Golang Developers — русскоговорящее сообщество
там крч так
sqlx.Select(variable, sql запрос)
источник

Г

Глеб in Golang Developers — русскоговорящее сообщество
нормальный код могу только в лс
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
вы скорее всего пишите
Select(&row, "select column1, column2, column3") и вынуждены руками перечислять все поля
При добавлении поля в структуру высока вероятность забыть в одном из 5-20 мест и получить баг, тк надо иди и дрочить все такие места руками
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
Если это проект на 1-2 месяца с галеры, где всем похер на последствия, то ок.
Если это живет кучу лет, то потом будет бобо много раз
источник

D

Dmitriy in Golang Developers — русскоговорящее сообщество
Какие 5-20 мест? У тебя есть структура, которую возвращает метод, ходящий в базу. Пишешь в sql поля в select и их прописываешь в db-тегах в структуре - всё
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
и писать select *? вместо select column1, column2, column3
источник

D

Dmitriy in Golang Developers — русскоговорящее сообщество
Нет, конечно. Перечислять поля. Когда ты работаешь с ORM, никто все столбцы тоже не тягает, т.к. это вообще ни разу не оптимально - указывают только нужные
источник

СГ

Сергей Гришаев... in Golang Developers — русскоговорящее сообщество
Насколько я знаю, не рекомендуют использовать звездочку, так как никто не гарантирует порядок вывода атрибутов, особенно после изменения структуры таблицы, поэтому только перечисление.
источник

D

Dmitriy in Golang Developers — русскоговорящее сообщество
Есть ещё и другая тема) У меня есть админка, в которой выводятся на странице по 500 строк некоторых данных. Ну так вот в той таблице, откуда данные берутся для этой страницы, есть json-поле на 0.5-1 мегабайт для каждой записи. Оно мне на этой странице не нужно. Ну так вот если сделать SELECT *, то это поле добавит 500 Мб к чтению с диска и передачи по сети.
источник