Size: a a a

2020 April 25

/

/dev/null in Go-go!
Nikita Gritsai
Поддерживаю коммент выше.  Вот еще хороший репо, много примеров https://github.com/golang-standards/project-layout
Может не надо, уже столько шума по этому вопросу было)
источник

OJ

O . J in Go-go!
/dev/null
ну вот, сейчас начнется)
Вроде наоборот к тому что каждый по своему прав и каждый при своём:)
источник

/

/dev/null in Go-go!
O . J
Вроде наоборот к тому что каждый по своему прав и каждый при своём:)
есть просто люди в этом чате которые категорически против этого стандарта
источник

NA

N A in Go-go!
Как вы разделяете работу с базой в своих сервисах с бизнес логикой?
- Использовать в них прям raw sql через pgx - удобно писать код, но происходит нечитабельное кровосмешение логики и инсертов, да и неприятно мокать это все
- Вынести всю логику в storage, который будет экспоузить методы типа UpdateUserWithSomeOtherEntityInTx(arg1, arg2, arg3, arg4) - тоже глаз не радует, но хотя бы удобно мокать и читать такой код. Есть золотая середина?
источник

IK

Ilya Kaznacheev in Go-go!
http request body нужно закрывать?
источник

s

sw in Go-go!
если только пишешь свой транспорт
источник

s

sw in Go-go!
стандартные транспорт и сервер сами должны закрывать
источник

ФП

Федор Петрик... in Go-go!
Nikita Gritsai
На сколько я понимаю просто так из ast в другой пакет не попадешь
да, вот думал может кто сталкивался
источник

Д

Даниил in Go-go!
Друзья обьясните , почему  когда горутина вызывает анонимную функцию  , в конце анонимной функции ,необходимо добавлять переменную в круглых скобках (i)

go func(n int){
           result := 1
           for j := 1; j <= n; j++{
               result *= j
           }
           fmt.Println(n, "-", result)
       }(i)
источник

МД

Максим Дубинин... in Go-go!
так тыж в неё параметр принимаешь
источник

МД

Максим Дубинин... in Go-go!
n int
источник

OJ

O . J in Go-go!
промахнулся чатом
источник

zl

ziggy lucid in Go-go!
Даниил
Друзья обьясните , почему  когда горутина вызывает анонимную функцию  , в конце анонимной функции ,необходимо добавлять переменную в круглых скобках (i)

go func(n int){
           result := 1
           for j := 1; j <= n; j++{
               result *= j
           }
           fmt.Println(n, "-", result)
       }(i)
замыкания
но необязательно параметром
рекомендуют так

n := i
go func(){
           result := 1
           for j := 1; j <= n; j++{
               result *= j
           }
           fmt.Println(n, "-", result)
       }()
источник

Д

Даниил in Go-go!
Максим Дубинин
так тыж в неё параметр принимаешь
go func (n int) {.............} (i)
источник

МД

Максим Дубинин... in Go-go!
ну - вызов функции с параметром? чо не такто?)
источник

ЛА

Локоть Анатолий... in Go-go!
Даниил
Друзья обьясните , почему  когда горутина вызывает анонимную функцию  , в конце анонимной функции ,необходимо добавлять переменную в круглых скобках (i)

go func(n int){
           result := 1
           for j := 1; j <= n; j++{
               result *= j
           }
           fmt.Println(n, "-", result)
       }(i)
Потому что с параметром рутина работает со своим стеком, а без параметра они все работают с одной переменной и это дата рейс
источник

АС

Артур Саляхов... in Go-go!
N A
Как вы разделяете работу с базой в своих сервисах с бизнес логикой?
- Использовать в них прям raw sql через pgx - удобно писать код, но происходит нечитабельное кровосмешение логики и инсертов, да и неприятно мокать это все
- Вынести всю логику в storage, который будет экспоузить методы типа UpdateUserWithSomeOtherEntityInTx(arg1, arg2, arg3, arg4) - тоже глаз не радует, но хотя бы удобно мокать и читать такой код. Есть золотая середина?
Выносить все на слой репозитория и скрывать за интерфейсами.
источник

OJ

O . J in Go-go!
ziggy lucid
замыкания
но необязательно параметром
рекомендуют так

n := i
go func(){
           result := 1
           for j := 1; j <= n; j++{
               result *= j
           }
           fmt.Println(n, "-", result)
       }()
почему? разве n не будет проинициализирован только тогда когда рутина стартанет? На этот моменнт i может измениться.
источник

SV

Sol Vento in Go-go!
Даниил
go func (n int) {.............} (i)
можно без этого просто n:=i
источник

NG

Nikita Gritsai in Go-go!
Федор Петрик
да, вот думал может кто сталкивался
Мне нужно было банально находить импорт пакета откуда тип пришёл. Начал юзать go/types только для этого, потом и остальное переписал, благо кода немного было.
источник