Size: a a a

2020 April 29

VK

Vladimir Kalashnikov in Go-go!
Daniel Podolsky
сиглтон - плохой паттерн, плохой.

трудно тестировать, трудно развивать, если он сложный.
+
источник

AK

Anton Kucherov in Go-go!
Один экземпляр к слову не обязательно синглтон, разве нет?
источник

AK

Anton Kucherov in Go-go!
Синглтон в go это Экспортируемая переменная уровня пакета и метод Init
источник

DP

Daniel Podolsky in Go-go!
а как тогда обеспечить его единственность?
источник

DP

Daniel Podolsky in Go-go!
Anton Kucherov
Синглтон в go это Экспортируемая переменная уровня пакета и метод Init
и все, что имеет в себе синглтоны
источник

AK

Anton Kucherov in Go-go!
Daniel Podolsky
а как тогда обеспечить его единственность?
Ну можно создать один экземпляр в main и потом передавать с помощью DI? Экземпляр будет один но это не будет синглтон технически. Т.е. ни кто не помешает создать другой экземпляр для тестирования.
источник

DP

Daniel Podolsky in Go-go!
тоже правда. с той же СУБД так и придется поступить
источник

AK

Anton Kucherov in Go-go!
Только хотел написать: Тот же самый *sql.DB, мы же не делаем  db.Open в куче разных пакетов каждый раз? Делаем его в main и потом пробрасываем. Экземпляр один, но не синглтон
источник

AK

Anton Kucherov in Go-go!
Вот DefaultClient в net/http Go оч. смахивает на Синглтон. Я когда такое вижу повсеместно в проекте, хочется убивать. Когда 10 разных пакетов меняют состояние экспортируемой структуры какого-то одного пакета.
источник

V

Vladislav in Go-go!
Edgar
Это лишь в дальнейшем создаст проблемы при расширении, если на этот объект навешать иные методы, сколько тогда полей для параметров уже появится?
Не не не, я только лишь про клиенты… и кэш локальный. параметры(данные) к функциям уже в виде парамтеров, конечно же
источник

DP

Daniel Podolsky in Go-go!
Anton Kucherov
Вот DefaultClient в net/http Go оч. смахивает на Синглтон. Я когда такое вижу повсеместно в проекте, хочется убивать. Когда 10 разных пакетов меняют состояние экспортируемой структуры какого-то одного пакета.
это потому, что он и есть синглтон
источник

AK

Anton Kucherov in Go-go!
Потом еще говорят: Она вот не глобальная, она "уровня пакета". А что это меняет, когда изменение в одном из 10 пакетов способно поломать остальные 9.
источник

E

Edgar in Go-go!
Vladislav
Не не не, я только лишь про клиенты… и кэш локальный. параметры(данные) к функциям уже в виде парамтеров, конечно же
Тогда вопросов нет, подключение к БД можно хранить в структуре, как поле, так и по факту и создаются интерфейсы Repo
источник

NK

Nur Kutlugallyamov in Go-go!
Anton Kucherov
Вот DefaultClient в net/http Go оч. смахивает на Синглтон. Я когда такое вижу повсеместно в проекте, хочется убивать. Когда 10 разных пакетов меняют состояние экспортируемой структуры какого-то одного пакета.
А DefaultClient использовать нормально?
Где-то брат подруги мамы говорил (rnj-nj b ult-nj), что лучше создать свой Client и прокинуть в нужное тебе место
источник

r

rad1k4l in Go-go!
privet. kak parsit csv ot stringa ?
источник

x

x-foby in Go-go!
Nur Kutlugallyamov
А DefaultClient использовать нормально?
Где-то брат подруги мамы говорил (rnj-nj b ult-nj), что лучше создать свой Client и прокинуть в нужное тебе место
Всё от задачи зависит.
В большинстве случаев правильнее, конечно, будет создать и настроить клиент отдельно.
источник

SN

Stanislav N. in Go-go!
а потом вы начнете всегда создавать клиент руками с нужными таймаутами, когда HTTP запрос у вас зависнет и потекут горутины)
источник

A

Aikidos in Go-go!
Stanislav N.
а потом вы начнете всегда создавать клиент руками с нужными таймаутами, когда HTTP запрос у вас зависнет и потекут горутины)
Куда потекут?
источник

ВС

Владимир Столяров... in Go-go!
да в дефолтном клиенте таймаутов нет вообще, поэтому вполне могут потечь (и я как-то уже попадался на это)
источник

EL

Evgeny Lilekov in Go-go!
Всем привет, кто-то работал с github.com/jung-kurt/gofpdf. Неужели через неё нельзя открыть уже существующий пдф, а только создавать новый?
источник