Size: a a a

2020 October 06

ES

Eugenii Sh in Go-go!
hmirin
Ну вот пример. я на питоне устанавливаю линтер flake8. в иде выбираю его(VS Code) и он работает в процессе написания кода, подсказывая мне, где я накосячил. меня интересует, есть ли такое в го?
источник

p

pragus in Go-go!
hmirin
Ну вот пример. я на питоне устанавливаю линтер flake8. в иде выбираю его(VS Code) и он работает в процессе написания кода, подсказывая мне, где я накосячил. меня интересует, есть ли такое в го?
да, это умеют IDE
источник

w

whoami in Go-go!
блин, включили бы картинки тут, скрин даже не скинуть, бред како-йто (
накипелов ))
источник

w

whoami in Go-go!
В общем, я пользуюсь этим расширением
https://github.com/golang/vscode-go
+ выбрал revive в качестве линтера
источник

w

whoami in Go-go!
вот тут как настроить линтер https://github.com/golang/vscode-go#linter
источник

h

hmirin in Go-go!
Благодарю!
источник

p

pragus in Go-go!
можно просто взять goland/idea
источник

w

whoami in Go-go!
так не интересно) потом на собесе его спросят, какой линтер используете, что скажет?)) "goland там чето сам проверяет"? =)
источник

p

pragus in Go-go!
whoami
так не интересно) потом на собесе его спросят, какой линтер используете, что скажет?)) "goland там чето сам проверяет"? =)
golangci-lint
источник

h

hmirin in Go-go!
просто забавно, почему не использовать линтер в процессе написания кода? так сам приучишься писать "красиво". а писать код, после натравливать линтер, после лазить исправлять - кол-во времени сколько уходит))
источник

NK

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

J

Jbcui in Go-go!
Подскажите, пожалуйста, что можно сделать, если я объявляю функию вне main
func (info *Data)GetPostId(id primitive.ObjectID){
 filter := bson.D{}
 err := Collection.FindOne(context.TODO(), filter).Decode(&info)
 if err != nil {
   log.Fatal(err)
 }
 fmt.Println("Found post with title", info.Host, info.ID)
}

то err := Collection.FindOne(context.TODO(), filter).Decode(&info) не будет работать, тк Collection не зарезолвен, потому что объявляю переменную в теле main
источник

DP

Daniel Podolsky in Go-go!
вопрос не ясен
источник

DP

Daniel Podolsky in Go-go!
возможо, вам надор передавать в GetPostID Collection параметром?
источник

J

Jbcui in Go-go!
Daniel Podolsky
вопрос не ясен
Как я мог бы получить переменную Collection в отдельной функции, если я ее объявляю только в теле main
 Client, err := mongo.NewClient(options.Client().ApplyURI("DBUrl",
 ))
 if err != nil {
   log.Fatal(err)
 }
 ctx, _ := context.WithTimeout(context.Background(), 10*time.Second)
 err = Client.Connect(ctx)
 if err != nil {
   log.Fatal(err)
 }
 defer Client.Disconnect(ctx)
 Collection := Client.Database("my_database").Collection("Information about host")

Вынесение данного куска кода в отдельную функцию и вызов ее в необходимых функциях не помогает, потому что все равно не цепляет нужную мне переменную
источник

RS

Rusty Shackleford in Go-go!
Jbcui
Подскажите, пожалуйста, что можно сделать, если я объявляю функию вне main
func (info *Data)GetPostId(id primitive.ObjectID){
 filter := bson.D{}
 err := Collection.FindOne(context.TODO(), filter).Decode(&info)
 if err != nil {
   log.Fatal(err)
 }
 fmt.Println("Found post with title", info.Host, info.ID)
}

то err := Collection.FindOne(context.TODO(), filter).Decode(&info) не будет работать, тк Collection не зарезолвен, потому что объявляю переменную в теле main
Это не работает потому что GO не JavaScript, там нет такой привязки к контексту. Стоит Collection передавать явно аргументом.
источник

RS

Rusty Shackleford in Go-go!
Можно, конечно, замутить синглтон, но не стоит.
источник

J

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

p

pragus in Go-go!
Jbcui
Как я мог бы получить переменную Collection в отдельной функции, если я ее объявляю только в теле main
 Client, err := mongo.NewClient(options.Client().ApplyURI("DBUrl",
 ))
 if err != nil {
   log.Fatal(err)
 }
 ctx, _ := context.WithTimeout(context.Background(), 10*time.Second)
 err = Client.Connect(ctx)
 if err != nil {
   log.Fatal(err)
 }
 defer Client.Disconnect(ctx)
 Collection := Client.Database("my_database").Collection("Information about host")

Вынесение данного куска кода в отдельную функцию и вызов ее в необходимых функциях не помогает, потому что все равно не цепляет нужную мне переменную
а зачем у вас везде log.Fatal? нужно чтобы при любой ошибке приложение завершалось?
источник

w

whoami in Go-go!
hmirin
просто забавно, почему не использовать линтер в процессе написания кода? так сам приучишься писать "красиво". а писать код, после натравливать линтер, после лазить исправлять - кол-во времени сколько уходит))
не понятен вопрос
источник