Size: a a a

2020 August 13

A

Adv0cat in Go-go!
Vyacheslav Sitnikov
Народ, подскажите плз, есть ли где почитать на русском про БД? Ну или может кто подскажет тут. Интересует внутренняя кухня: Есть у меня открытое соединение, я так понял внутри него несколько коннекторов (как я понял), с соединением работают несколько горутин. Могут ли они работать одновременно? А если одна из них открывает транзакцию, вставляет данные, коммитит, другие в этот момент читают. Будут ли они ждать окончания транзакции (сама БД не блокирует операции чтения при записи). Как это соединение выглядит в БД, как одна сессия или как несколько? Можно ли регулировать количество коннекторов (если я правильно понял, что они есть) ?
Предлагаю задать еще вопрос в этом чатике https://t.me/dba_ru
источник

DP

Daniel Podolsky in Go-go!
Vyacheslav Sitnikov
Народ, подскажите плз, есть ли где почитать на русском про БД? Ну или может кто подскажет тут. Интересует внутренняя кухня: Есть у меня открытое соединение, я так понял внутри него несколько коннекторов (как я понял), с соединением работают несколько горутин. Могут ли они работать одновременно? А если одна из них открывает транзакцию, вставляет данные, коммитит, другие в этот момент читают. Будут ли они ждать окончания транзакции (сама БД не блокирует операции чтения при записи). Как это соединение выглядит в БД, как одна сессия или как несколько? Можно ли регулировать количество коннекторов (если я правильно понял, что они есть) ?
на самом деле - нет там ”коннекторов”

есть соединения, есть их пул. транзакция происходит в рамках соединения.

что будет с чтением - зависит совсем от другого, от уровня изоляции транзакции, про него и читать
источник

VS

Vyacheslav Sitnikov in Go-go!
Daniel Podolsky
на самом деле - нет там ”коннекторов”

есть соединения, есть их пул. транзакция происходит в рамках соединения.

что будет с чтением - зависит совсем от другого, от уровня изоляции транзакции, про него и читать
То есть при sql.Open может открыться несколько коннектов к БД ? А как-нибудь можно ими манипулировать, я имею в виду, привязать конкретную горутину к конкретному соединению?
источник

AP

Alexey Palazhchenko in Go-go!
источник

DP

Daniel Podolsky in Go-go!
Vyacheslav Sitnikov
То есть при sql.Open может открыться несколько коннектов к БД ? А как-нибудь можно ими манипулировать, я имею в виду, привязать конкретную горутину к конкретному соединению?
транзакцию открываешь - и оно к транзакции привязывается
источник

AP

Alexey Palazhchenko in Go-go!
Если транзакция не нужна, то лучше DB.Conn по ссылке выше
источник

VS

Vyacheslav Sitnikov in Go-go!
@onokonem, @alek_si Спасибо!
источник

N

Nikita in Go-go!
ребят , подскажите как string упаковать в url  отправить как callback ?
источник

AZ

Aleksandr Zelenin in Go-go!
urlencode или base64
источник

NL

Nikita L in Go-go!
Привет! Помогите, пожалуйста, с вопросом.
Например, есть структуры:
type A struct {
 field1 int `json:"field1"`
 field2 string `json:"field2"`
}

type B struct {
 field1 int `json:"field1"`
 field2 string `json:"field2"`
 field3 string `json:"field3"`
 field4 string `json:"field4"`
}


Есть переменная:
variableB := &B{}


Как можно преобразовать переменную valiableB в тип A? Чтобы значения, которые были в variableB.field1 и variableB.field2  остались после преобразования
источник

СГ

Сергей Гришаев... in Go-go!
если это конечные статичные структуры, то самое простое - просто написать функцию, принимающую на вход структуру В и возвращающую  структуру А, а внутри банальное присвоение соответствующих полей
источник

NL

Nikita L in Go-go!
Сергей Гришаев
если это конечные статичные структуры, то самое простое - просто написать функцию, принимающую на вход структуру В и возвращающую  структуру А, а внутри банальное присвоение соответствующих полей
Да, структуры статичные, это dto response.
Думал есть более красивый способ преобразования типов
источник

АП

Александр Парамонов... in Go-go!
в go понятие «красиво» называется «понятно»
источник

СГ

Сергей Гришаев... in Go-go!
любой универсальный способ будет более тормозным. Архитектура Го поощряет некоторую работу "ручками"
источник

ВЩ

Владимир Щёголев... in Go-go!
Nikita L
Да, структуры статичные, это dto response.
Думал есть более красивый способ преобразования типов
ну в теории можно замаршалить одну структуру, анмаршал в другую. Но это выглядит как костыль
источник

NL

Nikita L in Go-go!
Александр Парамонов
в go понятие «красиво» называется «понятно»
Понимаю, но писать под каждый тип отдельный конвертер это нарушает и красивость и понятность :)
источник

AS

Alexander Shavelev in Go-go!
Nikita L
Понимаю, но писать под каждый тип отдельный конвертер это нарушает и красивость и понятность :)
как нарушает понятность?
источник

NL

Nikita L in Go-go!
Alexander Shavelev
как нарушает понятность?
Когда структур много, функций-конвертеров тоже становится много. Большой объем кода тяжелее воспринимать. Ну это мое субъективное мнение
источник

ВЩ

Владимир Щёголев... in Go-go!
можно встроить одну структуру в другую:
type B struct {
 A
 field3 string `json:"field3"`
 field4 string `json:"field4"`
}
источник

СГ

Сергей Гришаев... in Go-go!
Nikita L
Когда структур много, функций-конвертеров тоже становится много. Большой объем кода тяжелее воспринимать. Ну это мое субъективное мнение
тут вопрос количества, в крайнем случае можно:
https://t.me/gogolang/460296
источник