Size: a a a

2020 October 06

J

Jbcui in Go-go!
pragus
а зачем у вас везде log.Fatal? нужно чтобы при любой ошибке приложение завершалось?
Я потом запихаю в fmt.Errorf, сейчас просто брал с примеров обработку ошибок, мне нужно сначала реализовать функции которые я буду использовать для работы с бд
источник

RS

Rusty Shackleford in Go-go!
Jbcui
Тогда мне придется весь код вставлять в каждую функцию, в которой идет работа с бд, правильно понимаю? так как переменная Collection, зависит от Client
Возможно стоит переработать архитектуру так, что бы не приходилось этого делать.
источник

RS

Rusty Shackleford in Go-go!
Например сложить клиент в поле структуры.
источник

p

pragus in Go-go!
Jbcui
Тогда мне придется весь код вставлять в каждую функцию, в которой идет работа с бд, правильно понимаю? так как переменная Collection, зависит от Client
надо перестать писать цепочки лапши :)
источник

J

Jbcui in Go-go!
pragus
надо перестать писать цепочки лапши :)
это как, извините)
источник

J

Jbcui in Go-go!
Rusty Shackleford
Например сложить клиент в поле структуры.
не совсем понимаю, как мне сложить клиент в поле структуры, если там только три значения которые я меняю на свои, урл бд, имя бд и имя коллекции
источник

p

pragus in Go-go!
Jbcui
это как, извините)
например, не писать Collection := Client.Database("my_database").Collection("Information about host")

завести свою структуру в которой будет встроен клиент.
источник

АП

Александр Попов... in Go-go!
Daniel Podolsky
вопрос не ясен
а мой вчерашний вопрос случаем не знаете? там по поводу парсера гоу, почему после switch и переноса строки { не считается за ошибку, была версия что это как самостоятельный блок но там case:

switch lalalalaValue() 
{
   case true: // нам наплевать что вернула lalalalaValue()
источник

J

Jbcui in Go-go!
pragus
например, не писать Collection := Client.Database("my_database").Collection("Information about host")

завести свою структуру в которой будет встроен клиент.
по типу
type BDConnectInfor struct{
UrlConnect string
DBName string
CollectionName string
}

И уже в теле мейн заполнить эти поля, а в отдельных функциях просто ссылаться на структуру?
источник

DP

Daniel Podolsky in Go-go!
Александр Попов
а мой вчерашний вопрос случаем не знаете? там по поводу парсера гоу, почему после switch и переноса строки { не считается за ошибку, была версия что это как самостоятельный блок но там case:

switch lalalalaValue() 
{
   case true: // нам наплевать что вернула lalalalaValue()
на самом деле - в go используется ;

но их расставляет препроцессор, в конце каждой строки, кроме строк спецуиального формата (заканчивающихся на {, ( и т.п.)

так вот, ошибки форматирования - они происходят от появления этих ;  где не надо

видимо, switch - строка специального формата
источник

p

pragus in Go-go!
Jbcui
по типу
type BDConnectInfor struct{
UrlConnect string
DBName string
CollectionName string
}

И уже в теле мейн заполнить эти поля, а в отдельных функциях просто ссылаться на структуру?
нет. вы проходили go tour?
источник

АП

Александр Попов... in Go-go!
Daniel Podolsky
на самом деле - в go используется ;

но их расставляет препроцессор, в конце каждой строки, кроме строк спецуиального формата (заканчивающихся на {, ( и т.п.)

так вот, ошибки форматирования - они происходят от появления этих ;  где не надо

видимо, switch - строка специального формата
если бы это работало так - то блок идущий за switch вызвал бы ошибку как блок с непонятным наполнением { case: }
источник

RL

Ragnar Lodbrok in Go-go!
Nikita Krasnikov
Ребята, как проще всего хранить микросервисы в рамках проекта?
Сейчас выбрали вариант хранения все в одной репе, чтобы удобнее было деплоить, фиксы делать, прото файлы юзать и т.п. (помню на GolnagConf 2019 говрили это самый норм вариант) Но что-то подсказывает что это супер костыль, но и отдельно хранить каждый микросервис в отдельной репе радости не приносит.
Подходов несколько, кто-то хранит в монорепе, кто-то каждый микросервис в отдельной репе.
Общие файлы, типа прото файлов можно положить в отдельную common репу
источник

АП

Александр Попов... in Go-go!
все равно что написать:
func main() {
   {
      case true:
     
   }
}
источник

J

Jbcui in Go-go!
pragus
нет. вы проходили go tour?
Да
источник

АП

Александр Попов... in Go-go!
Daniel Podolsky
на самом деле - в go используется ;

но их расставляет препроцессор, в конце каждой строки, кроме строк спецуиального формата (заканчивающихся на {, ( и т.п.)

так вот, ошибки форматирования - они происходят от появления этих ;  где не надо

видимо, switch - строка специального формата
я уже думал что это работает как ; когда мы в IF фигачим if val, ok := dict["foo"]; ok {
источник

АП

Александр Попов... in Go-go!
там же ; не как перенос строки работает да?
источник

NK

Nikita Krasnikov in Go-go!
Ragnar Lodbrok
Подходов несколько, кто-то хранит в монорепе, кто-то каждый микросервис в отдельной репе.
Общие файлы, типа прото файлов можно положить в отдельную common репу
Да я знаю про эти варианты, но хочется услышать плюсы минусы, в монорепе проще от дублирующкго кода избавиться, а вот на каждый микросервис надо дублировать я либо какой-то common пакет в отдельной репе держать
источник

NK

Nikita Krasnikov in Go-go!
Сейчас в монорепе каждый mr это кинфликты в go.mod файле очень неудобно
источник

NK

Nikita Krasnikov in Go-go!
Я знаю что go.mod фацлы можно положить в сами папки с микросервисами но зависимости будут повторяться, хз как правильно
источник