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

Aleksandr
12.07.2018
09:08:42

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

Alexander
12.07.2018
09:14:59

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

Alexander
12.07.2018
09:23:28


Мерлин
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"


Никита
12.07.2018
09:44:01
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.
Можно кстати пример использования при хранении в структуре?
как я понимаю есть структура вида
type Env struct {
db *sql.DB
}
Что вы дальше с этой структурой делаете? как передаете в юзкейсы, модели?

Aleksandr
12.07.2018
09:46:56

Google

Alex
12.07.2018
09:50:02

Aleksandr
12.07.2018
09:51:01

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

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

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

Kirill
12.07.2018
10:59:49

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
Какую проблему решить

Илья
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
кстати отличный пример

Dmitri
12.07.2018
13:49:50

Daniel
12.07.2018
13:57:52

Dmitri
12.07.2018
13:58:56

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
https://github.com/orcaman/concurrent-map/blob/master/concurrent_map.go

Daniel
12.07.2018
18:47:07

Den
12.07.2018
18:48:06
или услышать ответ как это делают взрослые дядьки на хайлоаде?

Daniel
12.07.2018
18:48:49
Идеальный - мапа с мутексом
Взрослые дядьки смотрят на pprof

Антон
12.07.2018
18:49:47

Google

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

Mush
12.07.2018
19:03:45

Roman
12.07.2018
19:15:43

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

Kirill
13.07.2018
01:28:39