Влад
«Зависит от задач». Какая конкретно бд, какая нагрузка, какой тюнинг нужен, какое облако (если используется)
🅞leksiy
R_R
ребят, помогите пж, что то туплю
как сделать так, чтобы папки отображались в древовидном виде, а не как справа через \
что то не могу найти это настройках
Alexander
оно так делает, когда в папке одна папка
Alexander
тебе прям надо чтобы оно так не делало или устроит ответ?
R_R
Alexander
https://stackoverflow.com/questions/53726587/is-there-a-way-to-flatten-or-merge-single-folder-folders-in-vs-code-explorer
R_R
Спасибо!
Alexander
Папка indus вдохновляет)
R_R
видосы топовые у него)
Алексей
Ребята, что за конструкция?
func (x MetricType) String() string {
return proto.EnumName(MetricType_name, int32(x))
}
Алексей
Что означает взятое в скобки после слова func?
Anonymous
имя ф-ции
Anonymous
а, после
Anonymous
это указатель на структуру
Anonymous
ресивер
Bagasl
Bagasl
Там по значению ресивер
Anonymous
я к тому что в его примере скорее всего это указатель на структуру
Алексей
Спасибо огромное, Друзья! Очень помогли!
Nick
🅞leksiy
🅞leksiy
Anonymous
душнилы момент
Anonymous
ладно
Nick
Ресивер в смысле принимает ретурн?
Maks
func (x MetricType) String() string {
return proto.EnumName(MetricType_name, int32(x))
}
func -> обозначает что объявляется функция или метод
(x MetricType) или (x *MetricType) -> обозначает что этот метод будет у структуры конкретного типа или у указателя на него
String() -> название метода и аргументы
string -> возвращаемый тип
Nick
Алексей
А смысл ресивера? Куда копируем? Неужели нельзя обойтись простым ретурн? )
Алексей
А. Врубился. Я почему-то думал наоборот. Это в функцию данные залетают копированием или указателем.
Алексей
Ресивер указатель я понимаю для чего, но для чего ресивер по значению?
Bagasl
В таком методе указатель вообще не нужен
Bagasl
Либо твой пример, где мы просто "рендерим" структуру в строку
Алексей
Bagasl
Bagasl
Ну и ещё для работы duck typing'a с интерфейсами
Anonymous
Bagasl
Bagasl
Это же очень круто выглядит и читается
Anonymous
да имел ввиду поинтер ресивер) а можно поподробнее про второй случай? почему именно при огромных структурах?
Anonymous
чтобы из за копирования память не засорялся?
Bagasl
Но вообще я за подход такой - делаешь по правилам и чтобы было удобно, не выносишь себе мозги.
Начинаешь всякие оптимизации только когда начинаются проблемы с производительностью.
Естественно первый вариант не подразумевает написание говнокода. Имеется ввиду не жертвовать скоростью разработки и читаемостью кода в угоду паре процентов производительности
Алексей
Maks
Алексей
Алексей
Благодарю за объяснения!!!
Maks
Концепцию package пойми просто. У тебя в package может быть много структур, много общих методов. И так дале. А таким образом можно сделать удобнее.
Maks
И более логично
Maks
организованно
Alexander
Скорее всего у тебя просто какие-то базовые пакеты билдились. Второй раз на цмд пробовал? Но он конечно не нужон, это ваш цмд. И почему он по дефолту идёт..
Valera
Привет. Подскажите пожалуйста как быть. Есть вот такие строки кода и SQL запроса:
queryParams += fmt.Sprintf(" p.tag = '%s' ", tag)
SELECT ... FROM ... WHERE + queryParams
Если tag, например, равен "#tag+5", то запрос почему-то получается такой:
SELECT ... FROM ... WHERE p.tag = '#tag 5'
То есть из строки теряется знак +. Подскажите пожалуйста в чём дело. Используется GORM.
Alexander
используй плейсхолдеры
Valera
Я в курсе про инъекцию
Bagasl
Valera
Ага, пасибо. Уже подобное накопал. Но почему оно так работает?
Valera
Или бог его знает, как там эта GORM работает...
Bagasl
Valera
сработало через %23tag%2B5
Valera
Типа GORM если видит в запросе тильду начинает думать что это URL... хз
Eugene
Привет. Хочу из env получать настройки. Нашёл пакет godotenv. Хочу все данные сохранить в структуру но не пойму как. Может есть какие-то пакеты лучше?
🅞leksiy
Alexander
Vitaly
кто-нибудь пробовал писать android-игры на go ? )
Maks
Maks
по этому поводу: в проде не должно быть .env файла. Переменные передаются либо в операционную систему через установку енвов в окружении, оттуда уже берет программа эти данные. Это вроде как стандартный подход.
Bagasl
Maks
os.Getenv("variable")
Andrey
viper
Вайпер вроде не умеет доставать, нужен enviper, если сразу в структуру через тэги считывать
Bagasl
Bagasl
viper.SetConfigFile(path)
if err := viper.ReadInConfig(); err != nil {
return err
}
viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
viper.SetEnvPrefix(your_project)
viper.AutomaticEnv()
if err := viper.Unmarshal(&cfgStruct); err != nil {
return err
}
Bagasl
что-то типо того было
Bagasl
к примеру у нас есть структура:
type DB struct {
Creds struct {
Pass string
}
}
your_project == KEK
прописываем переменную окружения с названием KEK_DB_CREDS_PASS и её значение будет в поле Pass у структуры после выполнения кода из сообщения выше
Maks
Для тех кто в nginx не шарит нашел довольно годную серию коротких роликов
Maks
https://www.youtube.com/watch?v=dHsv8EnhSgQ&list=PLhgRAQ8BwWFa7ulOkX0qi5UfVizGD_-Rc&index=1
Maks
там есть темы которые можно скипнуть