Size: a a a

2020 June 04

C

Calculon in Go-go!
Владимир Столяров
Как-то никакого костыля не вижу: если нужно пробросить значения, которые там по факту связанным списком и убрать возможность отмены - обёртка вполне сработает. Не зря же context интерфейс
окей, вы правы
источник

C

Calculon in Go-go!
я признаю свое поражение
источник

DY

Dmitry Yaremenko in Go-go!
Подскажите как принято писать хелпер файлы, на каждый файл своя папка или все в одном файле? А то уже задолбался выхватывать зацикливание импорта из за них
источник

J

Je in Go-go!
Dmitry Yaremenko
Подскажите как принято писать хелпер файлы, на каждый файл своя папка или все в одном файле? А то уже задолбался выхватывать зацикливание импорта из за них
не надо никаких "папок", пиши в том пэкедже, где они нужны, пример
https://github.com/kubernetes/kubernetes/blob/master/pkg/kubelet/cm/helpers_linux.go
источник

DY

Dmitry Yaremenko in Go-go!
А если нужны в нескольких местах?
источник

C

Calculon in Go-go!
Dmitry Yaremenko
А если нужны в нескольких местах?
Что конкретно выполняют хелпер файлы? И что выполняет код который их использует?
источник

J

Je in Go-go!
тогда это уже не совсем helpers, а нечто имеющее вполне разумное содержимое, выноси из helpers
и не именуй пэкеджи helpers, utils и тд, это непринято и как раз вызывает подобные проблемы
https://github.com/golang/go/wiki/CodeReviewComments#package-names
источник

C

Calculon in Go-go!
Мб им можно более конкретное название дать
источник

J

Je in Go-go!
разделить и дать название, перекрестный импорт свидетельство того, что туда скидали все подряд
источник

DY

Dmitry Yaremenko in Go-go!
Ну например есть хелпер который возвращает базовый путь к папке ассетов, мне нужно это в обработчике запросов и в модели
источник

DY

Dmitry Yaremenko in Go-go!
получается что если мне нужен какой то набор хелпер функций мне нужно под каждый такой набор выделить свою папку и дать неймспейс на подобии assets_helper?
источник

DY

Dmitry Yaremenko in Go-go!
прочитал что имя пакета должно состоять из 1 слова, но вот что то не пойму как мне хелперы в это втулить, или лучше будет не выносить повторяющийся код а дублировать его в разных компонентах?
источник

VL

V L in Go-go!
Лучше всего не группировать не связанный логически код в один пакет "helpers"
источник

DY

Dmitry Yaremenko in Go-go!
ну получается что нужно значит под каждую группу хелперов создавать свою папку и свой пакет по типу helpers_assets, но в effective go пишется что если есть потребность писать 2 слова в имени пакета то что то сделано неправильно, вот и не пойму как правильно решить эту загадку)
источник

S

Serj in Go-go!
народ, читаю доку и пытаюсь вникнуть в азы голанга.
 img := image.NewNRGBA(image.Rect(0, 0, width, height))
 f, err := os.Create("image.png")
if err := png.Encode(f, img); err != nil {
   f.Close()
   log.Fatal(err)
 }
img имеет тип NRGBA
f - File
почему в png.Ecode  можно передать f? в доке написано, что первый параметр Encode - io.Writer
вопрос глупый, но не могу понять, как можно передать переменную другого типа.
мне тут сказали, что дело в имплементации и интерфейсах. но в доке я вообще не вижу, где задаётся имплемент.
тыкните, плиз
источник

A1

Art 141 in Go-go!
Имплементация не явная.
источник

S

Serj in Go-go!
вот и как это и где? можешь тыкануть в сорсы? я в них голяк голяком ничего не вижу по этой теме
источник

C

Calculon in Go-go!
Serj
народ, читаю доку и пытаюсь вникнуть в азы голанга.
 img := image.NewNRGBA(image.Rect(0, 0, width, height))
 f, err := os.Create("image.png")
if err := png.Encode(f, img); err != nil {
   f.Close()
   log.Fatal(err)
 }
img имеет тип NRGBA
f - File
почему в png.Ecode  можно передать f? в доке написано, что первый параметр Encode - io.Writer
вопрос глупый, но не могу понять, как можно передать переменную другого типа.
мне тут сказали, что дело в имплементации и интерфейсах. но в доке я вообще не вижу, где задаётся имплемент.
тыкните, плиз
encode принимает writer, файл импелментит интерфейс
источник

IK

Ivan Kozlov in Go-go!
Calculon
encode принимает writer, файл импелментит интерфейс
Writer
источник

S

Serj in Go-go!
Calculon
encode принимает writer, файл импелментит интерфейс
я это понял уже. но хочу в сорсах это найти
источник