
Max
05.12.2016
13:46:27
присоединяюсь) спасибо!

Антон
05.12.2016
13:54:27
а есть какие-то менее нагруженые варианты?
чтобы посмотреть просто общую концепцию

Slava
05.12.2016
14:00:47
там не особо нагружено

Google

Slava
05.12.2016
14:02:04
https://blue-jay.github.io/models/#update-an-item
в каждый метод ты передаёшь инстанс базы данных просто
и напрямую sql запросом всё выбираешь

Антон
05.12.2016
14:03:48
не, я не конкретно про работу с моделями сейчас, а в целом про пример с MVC

Slava
05.12.2016
14:05:16
ну в этом же примере есть и контроллер и шаблон

Антон
05.12.2016
14:06:37
да, это я вижу, но для меня это пока сложная структура
тут много стронних зависимостей и взаимосвязей
даже прочитав этот код, я не смогу написать свое простенькое приложение с MVC структурой
я бы хотел посмотреть на пример с минимумом лишного
просто общую суть с best practices в архитектуре

Egor
05.12.2016
14:09:40
Посмотри на картинку которая описывает MVC. На практике это просто три папки с кодом (конроллер, шаблон и работа с базой) вместо одной.

Антон
05.12.2016
14:10:41
как выглядит MVC я знаю
я хочу увидеть на простом примере, как он применяется в го с системой пакетов

Google

Max
05.12.2016
18:35:08
привет, а вот если я в рамках одного реквеста с веба создаю 10 инстансов, мне нужно делать 10 sql.Open или можно както копировать соединение? типа в монго.Copy()
метода такого не нашел
если юзать тот же конект то выпадает ошибка [mysql] statement.go:27: invalid connection
я нашел что это происходит изза использования одного конекта в разных рутинах
кто-то?
тут нашел что это бага
https://github.com/go-sql-driver/mysql/issues/450
но у меня все равно она есть(
хотя написано что закрыта
памагите плиз

Phil
06.12.2016
06:43:40
http://go-database-sql.org/connection-pool.html типа вот сюда наверное

Мерлин
06.12.2016
08:17:26

Bald
06.12.2016
08:25:43
там же пул внутренний
главное не забыть Stmt закрыть после операции

Max
06.12.2016
21:42:57

Bald
06.12.2016
22:37:52
Stmt.Close()
Лучше в defer

Favoretti
07.12.2016
07:06:33
не лучше в defer, а обязательно в defer :)
иначе прийдется совать во много мест.

Антон
07.12.2016
10:02:38
добрый день

Google

Антон
07.12.2016
10:02:43
http://prntscr.com/dgdu1g
имею следующую структуру проекта
app.go - файл, в котором я пытаюсь импортировать github.com/go-sql-driver/mysql
однако go его не находит
где я свернул не туда?

Slava
07.12.2016
10:07:20
а что за ошибку выводит?

Антон
07.12.2016
10:11:06
секунду
а GOPATH должен в src смотреть или нет?
он же просто в папку проекта должен смотреть, да?
ошибка такая:
http://prntscr.com/dgdxsh

ros
07.12.2016
10:12:27
GOPATH на уровень выше src

Slava
07.12.2016
10:12:27
да, src внутри gopath

Антон
07.12.2016
10:12:47
тогда у меня все верно

Slava
07.12.2016
10:13:01
то что ты показываешь это не ошибка го, а что-то из твоего редактора
возможно ты в нём не настроил gopath

Антон
07.12.2016
10:18:49
хммм...ну ладно, спасибо, буду с эти разбираться)

Slava
07.12.2016
11:05:47
если это IDEA то в слак чате есть разработчики этого плагина, они всегда рады помочь

Антон
07.12.2016
11:06:08
понял, спасибо большое!
panic serving runtime error: invalid memory address or nil pointer dereference
скажите, пожалуйста, о чем говорит эта ошибка?
возникает на r.parseForm()

Google

Slach
07.12.2016
11:30:21
r = nil скорее всего

Антон
07.12.2016
11:31:40
это странно
я пытаюсь открыть урл, и она возникает
в r хоть что-то должно быть, я думаю

Slava
07.12.2016
11:32:47
выложи полный стектрейс
чтобы было понятно где возникает паника

Admin
ERROR: S client not available


Антон
07.12.2016
11:34:02
2016/12/07 14:33:41 http: panic serving [::1]:50715: runtime error: invalid memory address or nil pointer dereference
goroutine 18 [running]:
net/http.(*conn).serve.func1(0xc04203a280)
C:/Go/src/net/http/server.go:1491 +0x131
panic(0x6d4b00, 0xc042008080)
C:/Go/src/runtime/panic.go:458 +0x251
html/template.(*Template).escape(0x0, 0x0, 0x0)
C:/Go/src/html/template/template.go:79 +0x4b
html/template.(*Template).Execute(0x0, 0x87d400, 0xc0421025b0, 0x0, 0x0, 0xc042080e10, 0x5)
C:/Go/src/html/template/template.go:101 +0x36
main.render(0x880b80, 0xc0421025b0, 0x725fbe, 0x5)
C:/Users/Anton/PhpstormProjects/go/src/github.com/user/server/app.go:12 +0x152
main.index(0x880b80, 0xc0421025b0, 0xc0420c40f0)
C:/Users/Anton/PhpstormProjects/go/src/github.com/user/server/app.go:23 +0x51
net/http.HandlerFunc.ServeHTTP(0x752ce8, 0x880b80, 0xc0421025b0, 0xc0420c40f0)
C:/Go/src/net/http/server.go:1726 +0x4b
net/http.(*ServeMux).ServeHTTP(0x8a0340, 0x880b80, 0xc0421025b0, 0xc0420c40f0)
C:/Go/src/net/http/server.go:2022 +0x86
net/http.serverHandler.ServeHTTP(0xc04203a200, 0x880b80, 0xc0421025b0, 0xc0420c40f0)
C:/Go/src/net/http/server.go:2202 +0x84
net/http.(*conn).serve(0xc04203a280, 0x881100, 0xc04205c400)
C:/Go/src/net/http/server.go:1579 +0x4be
created by net/http.(*Server).Serve
C:/Go/src/net/http/server.go:2293 +0x454
2016/12/07 14:33:41 http: panic serving [::1]:50716: runtime error: invalid memory address or nil pointer dereference
goroutine 19 [running]:
net/http.(*conn).serve.func1(0xc04203b180)
C:/Go/src/net/http/server.go:1491 +0x131
panic(0x6d4b00, 0xc042008080)
C:/Go/src/runtime/panic.go:458 +0x251
html/template.(*Template).escape(0x0, 0x0, 0x0)
C:/Go/src/html/template/template.go:79 +0x4b
html/template.(*Template).Execute(0x0, 0x87d400, 0xc042102680, 0x0, 0x0, 0xc04212bad0, 0x5)
C:/Go/src/html/template/template.go:101 +0x36
main.render(0x880b80, 0xc042102680, 0x725fbe, 0x5)
C:/Users/Anton/PhpstormProjects/go/src/github.com/user/server/app.go:12 +0x152
main.index(0x880b80, 0xc042102680, 0xc0420c41e0)
C:/Users/Anton/PhpstormProjects/go/src/github.com/user/server/app.go:23 +0x51
net/http.HandlerFunc.ServeHTTP(0x752ce8, 0x880b80, 0xc042102680, 0xc0420c41e0)
C:/Go/src/net/http/server.go:1726 +0x4b
net/http.(*ServeMux).ServeHTTP(0x8a0340, 0x880b80, 0xc042102680, 0xc0420c41e0)
C:/Go/src/net/http/server.go:2022 +0x86
net/http.serverHandler.ServeHTTP(0xc04203a200, 0x880b80, 0xc042102680, 0xc0420c41e0)
C:/Go/src/net/http/server.go:2202 +0x84
net/http.(*conn).serve(0xc04203b180, 0x881100, 0xc042130080)
C:/Go/src/net/http/server.go:1579 +0x4be
created by net/http.(*Server).Serve
C:/Go/src/net/http/server.go:2293 +0x454


Slava
07.12.2016
11:36:25
у тебя template не инициализирован
покажи код в app:23?

Антон
07.12.2016
11:40:35
http://prntscr.com/dgewef

Slava
07.12.2016
11:44:10
не игнорируй ошибку в render
возможно у тебя ParseFiles возвращает nil, err

Михаил
07.12.2016
11:47:34
вот кстати это проблема кажется идет из кучи всяких туториалов, где игнорят ошибку и пишут рядом коммент // never do this way in real-world application

Slava
07.12.2016
11:49:55
да, ошибки никогда нельзя игнорировать, хорошо что go vet не даёт этого делать

Alexey
07.12.2016
11:52:07
errcheck же

Антон
07.12.2016
11:54:38
Понял, большое спасибо)
Пишу действительно по туториалам и мог лажануться

Nikita
07.12.2016
12:54:34
Всем привет, не подскажите где можно глянуть пример структуры n-ary дерева и способ его заполнения?

Vlad
07.12.2016
12:59:38
Всем привет.
Кто-то же сталкивался с ошибкой при работе с MySQL?
При попытке запуска, go ругается: "cannot find package "github.com/go-sql-driver/mysql" "

Slach
07.12.2016
13:05:30
go get github.com/go-sql-driver/mysql
уже отменили?

Google

Vlad
07.12.2016
13:06:22
Я уже понял, что не так. Теперь только go get ...
go tool: no such file to compile.
such tool*
Теперь после go run main.go, go tool: no such tool:compile.
Я все-таки что-то сломал?

Alexey
07.12.2016
13:16:24
да
go env

Vlad
07.12.2016
13:19:07
GOROOT тычет на /usr/local/go

Alexey
07.12.2016
13:26:35
Целиком скиньте

Vlad
07.12.2016
13:28:48
Целиком скиньте
Я уже снес и начисто ставлю это все.
Сейчас отпишусь, сделал все правильно или руки бы мне отрезать
Целиком скиньте
О, вроде теперь только к БД не хочет коннектиться, а так все ок.

Sergey
07.12.2016
13:39:05

Aleksey
07.12.2016
13:44:44
Всем привет, есть у кого-нибудь опыт работы с мессенджерами. Я разрабатываю один в обучающих целях, хотелось бы посоветоваться насчет реализации real-time обновлений

Alexey
07.12.2016
13:46:33
да, давай конкретные вопросы

Aleksey
07.12.2016
13:57:42
Собственно как лучше передавать на конкретный клиент новые сообщения от его списка контактов?
И вообще, можно ли сделать это масштабируемо?
То есть, есть следующие варианты:
1) long polling
2) websockets
3) периодическая отправка запросов
С первыми двумя непонятно как реализовать обновление между несколькими серверами.

ros
07.12.2016
14:08:40
сообщать всем остальным сервакам на каком клиент и s2s гонять

Slava
07.12.2016
14:08:59
протокол передачи вообщем-то не самое важное