@gogolang

Страница 1209 из 1630
Никита
05.07.2018
10:26:54
Сигнатуры

Ну тоже не поможет

Сигнатура ЗИП как минимум у файлов MS Office

GoodMoodDealler
05.07.2018
10:27:35
Так ты на основе нескольких проверок делай вывод

Google
GoodMoodDealler
05.07.2018
10:27:55
Разными способами

https://github.com/malice-plugins/fileinfo

Вот есть такая штука

Denis
05.07.2018
11:15:35
так зачем туда влезять? есть же готовые cors middleware, которые можно в default mux встроить
Спсаибо. Про готовые — это слишком для меня. Но разбираясь в коде примера, я наконец-то допёр, что socketio.NewServer() возвращает просто http.Handler. Ну и вот тут получилось все сделать правильно: делаю свой хендлер, в котором добавляю нужные хедеры, а потом передаю этот же запрос-ответ в socketio.

Александр
05.07.2018
15:04:37
кто юзал github.com/sarulabs/di ?

Daniel
05.07.2018
15:05:06
я не юзал, и я не припомю случая, когда бы мне понадобилось такоэ

Александр
05.07.2018
15:05:41
ну я хочу им определить зависимости, а потом уже в каждый из двух main пропихнуть

не знаю насколько go-way, но вроде звучит хорошо

закопипастил их примерчик - https://play.golang.org/p/ZqFgf4LSq_f

только createApp у меня будет в отдельном общем пакете

Lesha
05.07.2018
15:08:57
Александр
05.07.2018
15:09:30
ну во первых там связей больше двух (две бд + брокер + )

они все не нужны в одном приложении, но в двух майнах набегает (и общие есть)

Google
Александр
05.07.2018
15:09:56
управление таким зоопарком вручную тяжко

Kirill
05.07.2018
15:19:43
не знаю насколько go-way, но вроде звучит хорошо
У вас и проекты без абсолютного пути были хорошей идеей, если я не путаю

Александр
05.07.2018
15:20:21
кидаетесь массой? ? А можно услышать аргументы против билдера

увы документации по архитектура по гоу - 0

Kirill
05.07.2018
15:21:55
Если кто-то готов мне немного помочь с бесплатным видеокурсом, такой информации будет больше. Сейчас рук не хватает, чтобы все и сразу сделать

Александр
05.07.2018
15:22:25
а в чем нужна помощь?

Kirill
05.07.2018
15:26:24
Нужно сценарии видео написать, примеры придумать. По сути, не добрался ещё до самого написания сценария курса

Александр
05.07.2018
15:26:53
я считаю нужно прямо брать какой то рестапи в ваакуме и реализовывать его

с несколькими бд, интеграциями, тестированием

а не hello world

несколько бинарников, консольные обработчики и все прелести

могу вписаться (в лс)

Aleksandr
05.07.2018
15:32:07
закопипастил их примерчик - https://play.golang.org/p/ZqFgf4LSq_f
крайне многословно. я просто делаю пакет di и туда кладу ленивые фабрики - тут тебе и наглядность и типизация и никакой бесовщины

Александр
05.07.2018
15:32:25
примерчик бы

можете набросать пседво структуру?

Александр
05.07.2018
15:33:13
это не совсем di конечно

смысл di именно в внедрении зависимостей

а тут у вас просто фабрики

Aleksandr
05.07.2018
15:33:33
они у меня внедряются конечно

Google
Александр
05.07.2018
15:33:46
в хедлерах например как дергаете?

Aleksandr
05.07.2018
15:35:05
хэндлер создается так же через фабрику. вообще это же тот же самый контейнер, только раздроченный до самой простоты

Илья
05.07.2018
15:36:00
в случае опечатки в ctn.Get("mysql") как это отлаживать? треш какой-то

Александр
05.07.2018
15:36:17
там ошибка же будет

Илья
05.07.2018
15:36:32
эм, в рантайме

Fastumkruk ✅
05.07.2018
15:37:38
Всем привет. Имею функцию которая один раз сверяет число с другим и отправляет ответ, но одно из чисел меняется раз в одну две секунды, и поэтому функция не отвечает, потому что числа были равны. Как мне ждать пока число не изменится и только после этого давать ответ?

Илья
05.07.2018
15:38:17
но если ты передаешь что-то в хендлер, почему не передать туда дб? :O ну, или интерфейс с нужными методами (который создается фабрикой с нужными компонентами)

Aleksandr
05.07.2018
15:39:18
но если ты передаешь что-то в хендлер, почему не передать туда дб? :O ну, или интерфейс с нужными методами (который создается фабрикой с нужными компонентами)
это мне или попову? вообще мы вроде об этом и говорим и так и делаем (но я предыдущие 20 сообщенйи не прочел)

Илья
05.07.2018
15:41:20
можно сделать обертку, типа обзервер

Aleksandr
05.07.2018
15:41:36
conn := ctn.Get("mysql").(*sql.Conn) conn := GetMysql() второй вариант лучше)

Илья
05.07.2018
15:43:24
Можно мини пример цикла?
пример чего? for {}? я не очень понимаю ваши вводные, что? где? когда? пример на плейграунде?

Александр
05.07.2018
15:44:34
conn := ctn.Get("mysql").(*sql.Conn) conn := GetMysql() второй вариант лучше)
мил человек, а подключение ты тоже при первом вызове di.GetMysql() иницализируешь?

Илья
05.07.2018
15:44:56
подключение можно на старте приложения сделать

даже не можно, а нужно

Александр
05.07.2018
15:45:44
тогда у нас появляется же "глобальная переменная" на уровне пакета, да?

Google
Александр
05.07.2018
15:46:37
гениально!

а конфиг не забыл?

а обработка ошибок на старте

или ты на первом клиенте упадешь с "access denied"

Aleksandr
05.07.2018
15:47:27
а конфиг не забыл?
конфиг чего?

Александр
05.07.2018
15:47:43
конфигурации db конечно же

Aleksandr
05.07.2018
15:47:50
а обработка ошибок на старте
а твой di будет это делать?) di обычно lazy

Admin
ERROR: S client not available

Александр
05.07.2018
15:48:01
как бы если вы внимательно прочитали

Илья
05.07.2018
15:48:16
так там ни одной обрабтки ошибок нет

Александр
05.07.2018
15:48:23
Build: func(ctn di.Container) (interface{}, error) {

Илья
05.07.2018
15:48:23
то есть там еще паники внутри?

Александр
05.07.2018
15:48:30
вы видите error?

а чуть выше идет builder.Logger = &di.BasicLogger{}

Aleksandr
05.07.2018
15:48:41
конфигурации db конечно же
не пойму что хочешь. я тупо твои di definitions вытащил в обычные функции.

Александр
05.07.2018
15:49:21
ну в твоем примере все ляжет на первом пользователе

Илья
05.07.2018
15:49:35
эм, а твое приложение упадет?

Александр
05.07.2018
15:49:42
упадет

Aleksandr
05.07.2018
15:49:44
вы видите error?
попов, успокойся. я набросал тебе пример как это можно проще реализовать. допиши error в конце каждой фунции сам

Google
Илья
05.07.2018
15:50:11
так зачем там абстрактный контейнер?

Aleksandr
05.07.2018
15:50:20
да дело то не в error
а в чем? в тебе?

Александр
05.07.2018
15:50:30
нет, когда пользователь у тебя попадает в HandleFunc

оно полезет в mysql

и там будет ждать жопа, ибо база не была преинициализована

Aleksandr
05.07.2018
15:51:04
у тебя сервис будет инициализирован ровно тогда, когда будет запрошен

не так ли все известные тебе di работают?

и улови суть: это деталь реализации. можешь error и прединициализацию добавить сам. мой подход заключается лишь в замене cnt.Get("mysql") на cnt.GetMysql(). Внутри же оно может работать одинаково или по разному

Александр
05.07.2018
15:56:00
ну ок, сейчас посмотрел и оно действительно не делает пре инициализацию

Александр
05.07.2018
15:57:01
бахнул NewApplication() которое инициализирует все в себе, если что аварийная остановка - логи там-же

если все ок, вернет application который накормлен зависимостями

Илья
05.07.2018
15:57:56
так почему их самому руками не проинициализировать и положить в какой-нить struct?

зачем там какая-то абстрактная фиговина? :)

Aleksandr
05.07.2018
15:58:31
так почему их самому руками не проинициализировать и положить в какой-нить struct?
положить можно. инициализация на старте замедлит этот самый старт

Александр
05.07.2018
15:59:07
ну окей

значит структура и туда кормим

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