
Кирилл
07.07.2018
04:44:40
Вывожу через
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println("response Body:", string(body))
Если убрать приведение body к string, то прилетают просто цифры
____________
шутка в том, что ответ закодирован к gzip, вот и всё
____________
вторая шутка в том, что достаточно в headers не посылать accept-encoding gzip

Nazary
07.07.2018
09:25:10
Да, всё верно)
Ваззаза

Google

Nazary
07.07.2018
09:25:31
Ребзя, а какой выход что бы мепы не конкурировали
Только мьютексы?
Или есть что то удобнее?

Alexander
07.07.2018
09:28:23
но так как дженериков не завезли, то, если типов для которых нужна такая мапа совсем немного, сделать свою со схожим интерфейсом

Aliaksandr
07.07.2018
09:59:49
альтернативных либ нет?
есть - https://github.com/valyala/fastjson . Она парсит любые джисоны без необходимости заводить под них кучу структур

Alexey
07.07.2018
12:49:45
Всем привет! Нужно реализовать единный объект для подключения к БД, так чтобы можно было получить к нему доступ из любой точки приложения.
Поделитесь опытом, кто как реализует подключения к БД в своих поректах

Александр
07.07.2018
13:10:15
потом просто в функции делаешь func NewConnect(anyParams....) {
что-то тут
connect = myConnect
}
и далее функцию для получения
func GetConnect() dbType.connect {
return connect
}
это хреновая реализация, но для новичков сойдет ?
далее все просто

Google

Александр
07.07.2018
13:12:06
импортируешь пакет и погнали
db.GetConnect() в любом месте

Никита
07.07.2018
13:15:25
А не хреновая - это какая?

07.07.2018
13:24:14
в функцию передаю указатель структуры и она с ней работает
если я извне эту структуру обнулю то потоки умирают
без всяких panic, просто работать перестают
это норма?

Александр
07.07.2018
13:25:35
вий проснется можете у него спросить
и про обертки на бд и про интерфейсы

Alexey
07.07.2018
13:30:29

Александр
07.07.2018
13:30:39
один раз

Alexey
07.07.2018
13:30:53
О! Тогда это здорово
Так и попробую

Александр
07.07.2018
13:31:10
только вот там небольшая проблема будет...
как вы вычитаете конфигурацию ?
только если читать прямо из файлв внутри init
но это не очень кашерно

Alexey
07.07.2018
13:31:57
А как лучше?

Google

Александр
07.07.2018
13:34:07
передача параметров из main лучше
в моем примере есть функция NewConnect
вот ее вызываете в main
в остальный GetConnect
(помните что если переменная или функция не начинается с заглавной буквы, она не доступна вне пакета)

Alexey
07.07.2018
13:35:30
Понял, спасибо)
А можно как-нибудь достучаться к глобальной пременной созданной в main пакете из других пакетов подключаемых в main?

Александр
07.07.2018
13:37:38
нет

Alexey
07.07.2018
13:37:40
Изначально пытался сделать что-то вроде единого объекта приложения и хранить в нём подключение к БД, логер и тд.
type Application struct {
db *gorm.DB
}
func (a *Application) GetDB() *gorm.DB {
return a.db
}
var App *Application
func main() {
db, err := appDb.GetConnection()
if err != nil {
fmt.Println("DB connection failed: " + err.Error())
return
}
defer db.Close()
App = &Application{
db: db,
}
}
Но обламался на доступе(

Александр
07.07.2018
13:38:04
нормально в принципе
его в отдельный пакет оформите просто

Александр
07.07.2018
13:38:16
application

Alexey
07.07.2018
13:38:21
ПОнял

Александр
07.07.2018
13:38:30
и дальше как бд
щаз же вия разбудите

Alexey
07.07.2018
13:39:12

Zloy Dobriy
07.07.2018
13:46:39
Ебать, какой жирный

Евгений
07.07.2018
13:47:17
Нода, пыха.
Вы че обливаетесь дерьмом?
Ало.

Google

Admin
ERROR: S client not available

Евгений
07.07.2018
13:47:32
Суббота что ли?

Aleksandr
07.07.2018
13:47:44
узнаю туповатый троллинг неоднократно баненного

Евгений
07.07.2018
13:48:14
Точно суббота.

Olzhas
07.07.2018
13:48:40
У меня отпуск с понедельника
Какой-то тип нахваливал ноду и поливал грязью го
Он просто про пхп не знал наверное
Так бы все нахваливал, кроме ноды

Евгений
07.07.2018
13:52:01

Olzhas
07.07.2018
13:53:24
Ибо в пятницу было д.р. солнцеликого
Это все знают

Евгений
07.07.2018
13:57:19
А пыхерей в говно.

Olzhas
07.07.2018
13:58:21
В принципе, программирование вообще говно
Лучше бы автослесарем работал
В мире питона не бывает

Евгений
07.07.2018
14:00:19
Ну да, я эту тему и несу.

Alexey
07.07.2018
14:04:17
один раз
Решил делать не через init() и видимо опять наступил на грабли
Реализовал пакет DB вот таким образом
var connect *gorm.DB
func GetConnection() (*gorm.DB, error) {
if connect != nil {
return connect, nil
}
connect, err := gorm.Open("postgres", "host=localhost port=5432 user=user dbname=db password=pass")
if err != nil {
connect = nil
}
return connect, err
}
в пакете main вызываю функцию GetConnection в надежде инициализировать переменную connect, но при вызове из других пакетов она пересоздаётся. В итоге не удалось сделать объект подключения глобальным
Как стоит исправить код?

Александр
07.07.2018
14:05:15
я уже в метро :(

Google

Александр
07.07.2018
14:06:04
проверь внимательно после первого вызова полная ли переменная
или может горм откинул nil туда
распечатай перед ретурном

Alexey
07.07.2018
14:07:06
Сейчас проверю. Gorm иногда преподносит сюрпризы)
Вернул в коннект объект. Оно не nil

Александр
07.07.2018
14:09:41
@onokonem помоги человеку, я афк :)