@gogolang

Страница 1221 из 1630
Alexander
12.07.2018
09:07:40
это dic. dic != di
Инкрементирую, DIC в go не нужен. DI же можно самому ручками зарезолвить.

Aleksandr
12.07.2018
09:08:42
Инкрементирую, DIC в go не нужен. DI же можно самому ручками зарезолвить.
это уже более здраво. dic действительно выглядит избыточно - как правило приложения на go не такие большие чтобы добавлять какой-то слой зависимости

Oleg
12.07.2018
09:08:51
скорее https://outcrawl.com/go-dependency-injection/

Alexander
12.07.2018
09:11:16
блин вы ещё про фреймворк для акторов в го спросите

Google
Lesha
12.07.2018
09:12:22
пару дней назад я приводил свой пример di без dic
а ну это другое дело, чесноговоря не знал про dic. Сам делаю что-то вроде отдельного пакета like Application с методами получения нужных инстансов

Alexander
12.07.2018
09:14:59
блин вы ещё про фреймворк для акторов в го спросите
https://github.com/AsynkronIT/protoactor-go если нужен!

Alexander
12.07.2018
09:15:59
Мерлин
12.07.2018
09:21:34
Господа, а кто-то может посоветовать встраиваемый веб-редактор для Go? Без наворотов, подсветки и дополнения без учёта синтаксиса достаточно

Oleg
12.07.2018
09:21:53
Давайте опрос: 1) Я использую какую-то либу для DI 2) Я использую замыкание, у меня нет сложных композиций зависимостей func SomeHandler(db *sql.DB) http.HandlerFunc { fn := func(w http.ResponseWriter, r *http.Request) { ... } return http.HandlerFunc(fn) } func main() { db, err := sql.Open(...) http.HandleFunc("/some-route", SomeHandler(db)) // etc. } 3) Использую структуру для хранения всех необходимых зависимостей type Env struct { db *sql.DB someRepo *SomeRepo otherRepo *OtherRepo } env := &Env{db: db} http.HandleFunc("/books", env.someHandler) func (env *Env) someHandler(w http.ResponseWriter, r *http.Request) { } 4) Другое

Илья
12.07.2018
09:22:53
2/3

Мерлин
12.07.2018
09:26:07
Давайте опрос: 1) Я использую какую-то либу для DI 2) Я использую замыкание, у меня нет сложных композиций зависимостей func SomeHandler(db *sql.DB) http.HandlerFunc { fn := func(w http.ResponseWriter, r *http.Request) { ... } return http.HandlerFunc(fn) } func main() { db, err := sql.Open(...) http.HandleFunc("/some-route", SomeHandler(db)) // etc. } 3) Использую структуру для хранения всех необходимых зависимостей type Env struct { db *sql.DB someRepo *SomeRepo otherRepo *OtherRepo } env := &Env{db: db} http.HandleFunc("/books", env.someHandler) func (env *Env) someHandler(w http.ResponseWriter, r *http.Request) { } 4) Другое
DI в go public poll Использую структуру для хранения всех необходимых зависимостей – 17 ??????? 71% @hellb0ys, @twentydraft, @fskrypter, @Geshido, @Deff7, @negasus, @sluchainiyznak, @di3young, @repentant_gopher, @kapsamun, @emreu, @supmea, Alexander, @valyala, @nexmean, @Tweekus, @nordborn Я использую библиотеку для DI – 4 ?? 17% Igor, @kukumbership, @EugeneKoshevoy, Дмитрий Я использую замыкание, у меня нет сложных композиций зависимостей – 2 ? 8% @crxfoz, @onokonem Другое – 1 ▫️ 4% @deathmoroz Я использую замыкание, у меня есть сложная композиция зависимостей ▫️ 0% ? 24 people voted so far.

Alex
12.07.2018
09:43:14
День добрый, помогите запустить в докере проект. Не пойму что нужно задать в конфиге чтоб видел папки. Ошибка: package app/api: unrecognized import path "app/api" (import path does not begin with hostname) Конфиг: FROM golang:1.10 WORKDIR /go/src/app COPY . . RUN go get -d -v ./... RUN go install -v ./... CMD ["app"] Проект лежит в папке app ругается на import api "app/api"

Google
Alex
12.07.2018
09:50:02
import path does not begin with hostname ошибку загугли
Я пробовал по разному задавать ENV GOPATH /go ENV GOPATH /go/src , но без результатно

Aleksandr
12.07.2018
09:51:01
Я пробовал по разному задавать ENV GOPATH /go ENV GOPATH /go/src , но без результатно
не знаю причем тут GOPATH, но в тексте ошибки написано что путь не начинается с hostname

Alex
12.07.2018
09:52:53
это как бы локальная папка, а не что-то сторонее

Aleksandr
12.07.2018
09:53:35
не надо меня уговаривать) я вижу текст ошибки. загугли

Artur
12.07.2018
10:49:44
Господа! Нормально ли поведение когда множество воркеров которые используя net.DialTimeout пытаясь подключиться создают системные треды?

большое количество тредов

Artur
12.07.2018
11:00:30
ps грепнул

Kirill
12.07.2018
11:00:42
И сколько там?

Artur
12.07.2018
11:00:48
на 4к падает

Kirill
12.07.2018
11:01:16
На 4к потоков?!

Artur
12.07.2018
11:01:19
да

наверно ограничение системы

Kirill
12.07.2018
11:01:39
Покажи, пожалуйста, ps свой

Я что-то не видел такого поведения

Artur
12.07.2018
11:02:23
ps -M -p $(pidof scanner) | wc -l

я бы понял если бы у меня сишный днс резолвер блочился

но у меня голые ip

Artem
12.07.2018
12:03:44
есть рекомендации по mqtt клиенту?

https://golanglibs.com/category/mqtt?sort=top

Google
Aleksandr
12.07.2018
13:00:14
https://dave.cheney.net/2018/07/12/slices-from-the-ground-up

Alexander
12.07.2018
13:42:19
Товарищи, можно ли извлечь профит из использования в структуре _? Я имею в виду: type BlackBox struct { _ int _ bool _ string }

Илья
12.07.2018
13:45:45
если знать, что такое struct align, может быть получится

Dmitri
12.07.2018
13:47:19
если знать, что такое struct align, может быть получится
Не могу сообразить как это может там пригодиться?

Какую проблему решить

Илья
12.07.2018
13:48:22
https://dave.cheney.net/2015/10/09/padding-is-hard

John
12.07.2018
13:49:07
Не могу сообразить как это может там пригодиться?
Очень просто, вот у тебя есть протокол (бинарный). Каждый пакет имеет четкий размер. Ты определил структуру, и сразу в нее все читаешь. А те поля значения которых ты не знаешь, делаешь просто _

Илья
12.07.2018
13:49:40
кстати отличный пример

Daniel
12.07.2018
13:57:52
Daniel
12.07.2018
13:59:58
это единственное применение - расширить структуру на размер поля, и не создать при этом собственно поля

John
12.07.2018
14:00:21
но ты, конечно, идиот, раз не воспользовался уже имеющимися бинарными протоколами, а написал свой, довольно тупой...
Это был лишь абстрактный пример, не более того :) К тому же, есть разные кейсы когда готовые решения не подойдут по разным причинам, и нам, идиотам приходится изобретать свои собственные костыльные и тупые решения )

Daniel
12.07.2018
14:01:26
не-не-не. вот этого точно не надо делать никогда - изобретать бинарный протокол, который работает на кастинге указателей

это пусть це-два-креста-господа делают

John
12.07.2018
14:02:32
ну, у нас это и было в це без крестов :D

Проприетарщина, мать её ...

Daniel
12.07.2018
14:03:20
и у меня было, но я написал парсер честный, а не кастинг указателей. кстати, оказалось, что производительности парсера достаточно

я, правда, и не мог написать кастинг - из це приезжали упакованные структуры, а в go упаковки нет

John
12.07.2018
14:04:46
Я, слава богу, пока не сталкивался с этим в go

Google
John
12.07.2018
14:04:49
но в сях наелся

Vladimir
12.07.2018
16:51:58
Ась?

Admin
ERROR: S client not available

Den
12.07.2018
18:36:12
В чем хранить сессии? Залез в исходники mux, там сессии в обычной мапе хранятся, не конкурентной. Есть готовые варианты поэффективнее мьютекса?

Roman
12.07.2018
18:37:15
Все равно твой говно-код займёт дольше времени, без обид и ничего личного

Den
12.07.2018
18:38:06
Блокировать всю мапу чтобы закинуть данные в одну ячейку? Мне кажется слишком неффективно

Roman
12.07.2018
18:39:35
Нет, это правда жизни

Den
12.07.2018
18:41:40
Вообще меня больше интересует мапа в мапе. Я не буду блокировать мапу внешнюю, а буду только внутреннюю. Тогда это тоже небезопасно?

Roman
12.07.2018
18:45:02
Вообще меня больше интересует мапа в мапе. Я не буду блокировать мапу внешнюю, а буду только внутреннюю. Тогда это тоже небезопасно?
Можешь смотреть в сторону sync.Map. Или в сторону шардинга мап. Создаешь массив мап, скажем 1024. Дальше при любой операции вычисляешь хеш от ключа, и номер мапы от хеша. И лочишь мютекст для только той одной мапы, к которой обращаешься.

https://github.com/orcaman/concurrent-map/blob/master/concurrent_map.go

Den
12.07.2018
18:48:06
Преждевременная оптимизация - зло
спасибо... просто хочется найти идеальный вариант

или услышать ответ как это делают взрослые дядьки на хайлоаде?

Daniel
12.07.2018
18:48:49
Идеальный - мапа с мутексом

Взрослые дядьки смотрят на pprof

Антон
12.07.2018
18:49:47
https://github.com/orcaman/concurrent-map/blob/master/concurrent_map.go
// A "thread" safe string to anything map. type ConcurrentMapShared struct { items map[string]interface{} sync.RWMutex // Read Write mutex, guards access to internal map. } Дальше можно не читать

Google
Roman
12.07.2018
18:50:45
Не читай

Roman
12.07.2018
19:15:43
так работает судя по доке, база aerospike. все круто, но оперативу ест ведрами
Он так работает именно для мап в памяти или data distribution по кластеру?

Mush
12.07.2018
19:16:01
по всему

Roman
12.07.2018
19:16:15
Норм

Mush
12.07.2018
19:17:07
он шустрый, только я туда пытался блокчейн положить и что-то вроде 200гб оперативы потребовалось на биткоин

Иван
12.07.2018
20:01:31
оу...

Ross
12.07.2018
20:04:06
переформулируй пожалуйста, а то ЯННП

если хочешь сюда девушек позвать, то https://t.me/gogolang

Иван
12.07.2018
20:05:51
если сама девушка то t.me/grizzlyzeus

/dev/null
13.07.2018
00:58:35
Ребят, как можно проверку на длину массива сделать более «правильной» и не засорять множеством if https://pastebin.com/F8GfhgG9

Страница 1221 из 1630