Size: a a a

2020 December 08

E

Evgeny in Go-go!
Александр Попов
прокинуть зависимости явно обьявив их в main?
Именно так я и делаю. В самом конце, явно и даже без контейнера.
Просто один большой main и прокидывание зависимостей руками
источник

АП

Александр Попов... in Go-go!
Evgeny
Именно так я и делаю. В самом конце, явно и даже без контейнера.
Просто один большой main и прокидывание зависимостей руками
что не устраивает?
источник

E

Evgeny in Go-go!
Александр Попов
что не устраивает?
Ничего. А вас?
источник

АП

Александр Попов... in Go-go!
Evgeny
Ничего. А вас?
а зачем di?
источник

АП

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

АП

Александр Попов... in Go-go!
я там пример выше писал
источник

E

Evgeny in Go-go!
А вы путаете DI и контейнеры. Явное прокидывание зависимостей в мейне - это тоже DI.
DI - это когда вы прокидываете один объект внутрь другого используя интерфейсы
источник

E

Evgeny in Go-go!
Я же в статье сравнил несколько подходов к организации сборки графа зависимостей и вполне себе пришёл к выводу, что в го нормально собирать его руками в мейне, как вы и предложили выше.
источник

E

Evgeny in Go-go!
Но при этом описал и другие способы. Например wire, он делает то же самое, но при этом кодогенерацией. Должно быть удобно, начиная с сотен зависимостей, не раньше :)
источник

АП

Александр Попов... in Go-go!
=== статья не нужна для гоу?
источник

E

Evgeny in Go-go!
Александр Попов
=== статья не нужна для гоу?
Для вас видимо не нужна.
источник

ЕА

Егор Андреевич... in Go-go!
Daniel Podolsky
наш друг @ruelephant хочет собирать метрики раз в 15 секунд, но квант иметь меньше.

я покрутил в голове идею с лейблами 0-14, но ничего практически применимого не придумал.

наш друг @eperesada придумал репортить одну и ту же метрику несколько раз с разными значениями и таймштампами, но документация говорит нам так не делать.

то есть - все же собирать раз в секунду
Можно одну и ту же метрику несколько раз писать в одном скрапе прометея, если таймстампа нет или он одинаковый, то он их сложит, а если разный, то все ок, но лучше это проверить

То есть увеличивать частоту скраппинга не надо @ruelephant
источник

М

Михаил in Go-go!
Инверсия контроля не понравилась го разработчикам. Потому что добавляет магию. А DI мы все используем в Go, это вроде агрегацией называется.

Я год писал на Angular + Nest(DI,IC фреймворки). Если честно - так себе удовольствие. Наверное, на очень больших
проектах с глубокой иерархией можно использовать, и то на фронтенде (Angular, Flutter, Java).
источник

SP

Slava Pinchuk in Go-go!
Rostislav Teryaev
это не не точно, а при операциях сложения умножения и тд происходят огругления. Ошибки накапливаются и в конечном итоге будут расхождения какие-нибудь. Например купил чего-то на 1р, а сняли 1.000000000001, а если таких операций много, то это уже беда.
Да и сравнивать такие числа через == не выйдет будет давать false на 1 == 1.00000000001.
Ну это для понимания ситуации
Чтобы с деньгами работать надо писать свои реализации типа. Не знаю как они выглядят внутри, но например хранит число в строке, а в строку хоть какие числа поместятся
Стало как-то печально. Доброе утро.
источник

SP

Slava Pinchuk in Go-go!
Yury
если работать с целыми и есть операции деления(умножения на не целое), то всё равно это надо почти при каждой операции нормальизовать это целое число, везде писать не варик, значит пишется либа для работы с этим, туда же добавляем конвертацию и получается тот-же децимал(ну пошти), только самосборный с возможными багами, которые выльются через пару лет в н-ную сумму
Неплохая такая либа получится и нужная. Но инвестинейт за счёт юзверов такое себе. Судя из мыслей комрадов выше, надо закладывать какую-то дельту на любую операцию... Короче все не будет супер просто как я думал.
источник

CF

Captain Flint in Go-go!
привет! подскажите плиз как правильно трактвовать reserved поля для обратной совместимости в протобафере.

например есть структура

message MyMessage{
   string foo = 1;
   int bar = 2;
}

дальше я делаю

message MyMessage{
   string foo = 1;

   reserved 2;
   reserved "bar";
}

так
вот, если клиент будет работать с именем или тэгом 2 после обновления сервера и до обновления клиента, что произойдет? не будут приходить данные (в 2) и ничего не взорвется на уровне общения клиент сервер?

и как отработает gateway? вопрос на уровне теории и чтении доки.
источник

PK

Phil Kulin in Go-go!
Evgeny
Ну, значит, вы не попадаете в ЦА, хотя я в первых абзацах и попробовал на скоро раскрыть то, что такое DI и зачем это нужно. Жаль, если не удалось :(
Вообще оно задумывалось, как обзор способов организовать компоненты приложения, но в процессе написания статьи я видимо слегка увлёкся и добавил слишком много теории :D
Да нет, всё тоже самое можно было чуть иначе начать. Кстати, о слове "компонент". Что именно оно значит? Поскольку слово довольно частое, то никто не спросит. Но в контексте оно прямо глаз режет. Не встаёт картинки перед глазами.
источник

PK

Phil Kulin in Go-go!
Что такое контейнеры в контексте? Ну т.е. я вижу определения из C++/Java, но для меня например нужно строить мост в другие языки. Нет такого паттерна в голове
источник

н

немедленно in Go-go!
Phil Kulin
Что такое контейнеры в контексте? Ну т.е. я вижу определения из C++/Java, но для меня например нужно строить мост в другие языки. Нет такого паттерна в голове
container/list  )))
источник

SO

Stanislav Ovsianniko... in Go-go!
reserved ни на что не влияет. он просто запрещает случайно использовать перечисленные поля/имена
источник