
Vasily
23.09.2018
13:51:21
По крайней мере я с ними сталкивался
Если один процесс только занимается записью в базу, тогда более-менее все норм, но когда процессов несколько, у базы начинаются весёлые танцы с бубном.

Alexey
23.09.2018
13:52:36
милионы строк инсертятся вложеными подготовленными, месяцами работает, память на уровне

Vasily
23.09.2018
13:53:04
Мускуль?

Google

Alexey
23.09.2018
13:53:05
ну процессов не так много, да...
у меня мс и мария

Vasily
23.09.2018
13:53:52
Ладно, встречался с такой проблемой на постгресе.
Правда с баунсером
Не мониторил количество коннектов?

Alexey
23.09.2018
13:55:59
нет, надеюсь на ограничение в штатной библиотеке

Pavel
23.09.2018
14:03:46
о, ну раз тут ДБшный треп - я правильно понимаю что заранее подготовленный db.Prepare внутрить транзакции запихнуть нельзя?

Mikhail
23.09.2018
14:06:19
+1 тоже интересует этот вопрос

Alexey
23.09.2018
14:10:19
внутри транзакции можно создать
подготовленные запросы это на уровне протокола базы
база его в свой внутренний план компилит, а потом по нему принимает только данные и выполняет этот план

Pavel
23.09.2018
14:13:38
ну это понятно. но поидее это дополнительные операции... у препереда жеж айдишник, и он вроде как дальше по ид к базе обращается. а тут приходиться заного строги слат, а он их потом парсить будет.... ну даже если из кеша возьмет, то все равно стринг слать в базу....

Alexey
23.09.2018
14:15:16
не просто стринг, а заново базе план выполнения компилить

Google

Alexey
23.09.2018
14:15:45
это время достаточно длительное

Pavel
23.09.2018
14:16:08
ну если бд это кеширует (а он кеширует), то просто достанет уже подготовленый план.. но вобщем это не важно. вопрос по препереду заранее...
насколько я понимаю это чисто гошное ограничени? или не органичение?

Vasily Romanov
23.09.2018
14:54:42
Из доки mysql
A prepared statement is specific to the session in which it was created. If you terminate a session without deallocating a previously prepared statement, the server deallocates it automatically.
Сессия - это коннект до базы.
Так что если юзать из многих мест, то можно упереться, там протокол синхронный.
С транзакциями наверное каша вообще будет

Pawel
23.09.2018
15:14:54

Alexey
23.09.2018
15:14:55

Daniel
23.09.2018
15:16:18

Alexey
23.09.2018
15:17:36

Daniel
23.09.2018
15:18:56
Это ограничение скрытого пула, скорее
Нет гарантии, что транзакция и подготовленный запрос окажутся на одном соединении

Leonid
23.09.2018
15:28:20
Митап был для сомневающихся. Для тех, кто уже сидит на го - было скучновато.
Повеселила девочка hr, которая просто спрашивала не ищет ли человек работу и давала визитки. Такого я ни разу еще не видел:)

Alan
23.09.2018
15:39:24
Пфф, про hr - тема совсем старая

Leonid
23.09.2018
15:40:45
Да не, я не против, она в своем офисе, мы сами пришли, просто раньше не сталкивался.

Sergey
23.09.2018
17:28:06
0_о ребят, а в 1.11 go get реп клонит в текущую директорию?
или я чего-то не понимаю
а как же GOPATH?

Aleksandr
23.09.2018
17:30:33
В gopath

Sergey
23.09.2018
17:34:12
блин, а теперь в gopath, неужели по запарке git clone сделал вместо go get

Roman
23.09.2018
17:45:31
короч по поводу констант и иммутабельных типов я выяснил, что иммутабельные типы заменяют константы:
const Constant string = "rvalue"
var Immutable const string = "rvalue"
Immutable и Constant это практически одно и то-же
это даже исправляет такие дефекты языка как отсутствие возможности использования не-скалярных типов в качестве констант:
const ConstantSlice []string = []string{"first", "second"}
вот так выглядит решение:
var ConstantSlice const []string = const([]string {"first", "second"})

Vladyslav
23.09.2018
17:47:14

Sergey
23.09.2018
17:47:47

Google

Sergey
23.09.2018
17:48:08
но не могу воспроизвести ситуацию

Yo
23.09.2018
18:00:01

Roman
23.09.2018
18:00:47

Artem
23.09.2018
18:02:38
не doesn't а lack of, потому что string

Александр
23.09.2018
18:05:04
а когда канал перешел на инглиш?

Artem
23.09.2018
18:06:40
тебя тоже поправлю, не инглиш, а рунглиш
все, ушел

Roman
23.09.2018
18:15:05
https://github.com/romshark/Go-2-Proposal---Immutability#114-inconsistent-concept-of-constants

Никита
23.09.2018
18:26:18
Ребята из Авито действительно странные ) Не совсем понял их "проблемы"

Maruf
23.09.2018
18:28:35
Всем салют,помогите разобраться
есть два роута:
/users
/user/{id}
первый показывает в index.html template ,через {{range . }}, таблицу юзеров их данные
второй тоже использует index.html, но при выводе данных консоль ругается
executing "index.html" at <.>: range can't iterate over
какие есть способы избавиться от этой ошибки?

Admin
ERROR: S client not available

Slava
23.09.2018
18:30:36
а что в контекст шаблона передаётся?

Slava
23.09.2018
18:30:57
для /user/{id}

Maruf
23.09.2018
18:32:27
та же структура
что и для первого роута

Slava
23.09.2018
18:33:35
а код можешь показать?

Maruf
23.09.2018
18:33:41
<tbody>
{{ range . }}
<tr>
<td>{{ .FullName }}</td>
<td>{{ .Contact }}</td>
<td>{{ .SerialNumber }}</td>
<td>{{ .PurchaseDateTime }}</td>
<td>{{ .Сhecked }}</td>
</tr>
{{ end }}
</tbody>

Slava
23.09.2018
18:33:41
а то на словах у всех всё то же
код вызова шаблона

Maruf
23.09.2018
18:34:52
сек

Google

Maruf
23.09.2018
18:35:56
func (c *AuthenticationControllers) SelectUserById() http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
params := mux.Vars(r)
id, _ := strconv.Atoi(params["id"])
...........................
user, _ := c.srv.repo.GetPersonById(id)
templates.ExecuteTemplate(w, "admin.html", user)
}
}
...достаточно?

Slava
23.09.2018
18:38:56
ну вот, а в том где /users/ как передаётся?

Maksim
23.09.2018
18:39:44
Ты итерировать пытаешься по переменной без имени

Maruf
23.09.2018
18:41:38
func (c *AuthenticationControllers) SelectUsers() http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
.........................
users, err := c.srv.repo.GetPersons()
templates.ExecuteTemplate(w, "admin.html", users)
}
}

Slava
23.09.2018
18:42:15
вот, в первом случае ты передаёшь один объект и пытаешься по нему итерироваться
во втором случае передаёшь список объектов и пытаешься по нему итерироваться
у тебя должны быть либо 1) разные шаблоны, 2) в обоих случаях список

Maruf
23.09.2018
18:44:32
спасибо, думаю 2ой вариант использую
жаль нет бота благодарности
@gothankbot @m0sth8 ?