Vasily
Ну и по сути это как раз у нас замыкание получается?
Домашнее задание предназначено для самостоятельного решения, а не при помощи коллективного разума чата Если есть по нему вопросы - задавайте в чат курса плиз
Stepan
Но впредь буду писать в ваш чат)
Vasily
Но впредь буду писать в ваш чат)
В лекциях есть все приемы для выполнения задания, пересмотрите лучше
Stepan
С замыканиями
Stepan
Там есть такого типа горутины безымянные, просто я не сообразил дополнительные каналы создать
Denis
Юзаю библиотеку googollee/go-socket.io У меня возникла проблема с CORS. Нужно отдавать access-control-allow-origin. Нашел вроде точку входа всего хттп: https://github.com/googollee/go-socket.io/blob/master/server.go#L91 Там дергается метод s.eio.ServeHTTP(w, r) Я нашел его, добавил отправку хедера. Но это как-то корявенько — вторгся в чужой код; не сделал возможности проверять Origin. Вот если бы я из области своего кода мог это сделать, то и не влезал в код пакета, и более развернутую проверку Origin сделал. Как нормальные люди решают такие проблемы? Нужно оверрайдить этот метод?
Vadim
Приём. У меня проблема. Запустил vscode на другом компе. Дебагер не работает
Vadim
Call stack пустой
Vadim
Душа пустая
Vadim
Но программа работает
Vadim
Также, не даёт нажать паузу.
Vadim
Товарищи Гоферы, что делать?
Антон
получаешь канал от таймера и канал для завершения работы и делаешь switch между ними
А не оверкилл ли использовать канал тупо для передачи сигнала от таймера?
Andrei 🦉
А не оверкилл ли использовать канал тупо для передачи сигнала от таймера?
1. этот механизм есть в стандартной либе 2. каналы - это очень быстро с точки зрения разработки на го, нужна лучшая производительность? добро пожаловать в мир си
Anonymous
Ребят, как правильно сделать конкатенацию строк в данном случае if !file.IsDir() { fileZip.name = file.Name() fileZip.path = path +"/"+ file.Name() f = append(f, fileZip) } fileZip.path = path +"/"+ file.Name()
Anonymous
Конструкция +"/"+ аж глаз режет
Заур
Sprintf
Anatoly
strings.Join
Anonymous
strings.Join
он же с массивом работает
L
с путями так работать: https://golang.org/pkg/path/#Join
L
path.Join(path, file.Name())
Заур
Конструкция +"/"+ аж глаз режет
Честно говоря и так нормально же
Zloy-Dobry
path.Join(path, file.Name())
четенько вообще
Anatoly
Честно говоря и так нормально же
не кроссплатформенно же, как и мой вариант path.Join - норм
L
как это?
а вы для винды посмотрите на слеши
Anonymous
не кроссплатформенно же, как и мой вариант path.Join - норм
fileZip.path = filepath.Join(path, "/", file.Name()) так тоже получается не очень кроссплатформенно
Заур
Аааа
L
именно так: path.Join(path, file.Name())
Zloy-Dobry
L
он сам дополнит/обрежит слеши если нужно
Anonymous
спасибо
L
Только лучше использовать "path/filepath", я чуть перепутал https://golang.org/pkg/path/filepath/#Join Он как раз мультиплатформенный
Anonymous
Еще вопрос, чем проверить что файл это архив ZIP без проверки на окончание File.name()
Anonymous
нашел
Anonymous
Filepath тоже это умеет
Anonymous
всем спс
L
и там ошибку обработать
Zloy-Dobry
os.FileInfo?
Anonymous
и там ошибку обработать
так сейчас делаю, не очень красиво выглядит
.
Mimetype проверить
Не всегда поможет
Stepan
Еще есть такая штука как TRID
.
Это что?
Stepan
Эвристическая утилита
Stepan
http://mark0.net/soft-trid-e.html
.
Сигнатуры
.
Ну тоже не поможет
.
Сигнатура ЗИП как минимум у файлов MS Office
Stepan
Так ты на основе нескольких проверок делай вывод
Stepan
Разными способами
Stepan
https://github.com/malice-plugins/fileinfo
Stepan
Вот есть такая штука
Denis
так зачем туда влезять? есть же готовые cors middleware, которые можно в default mux встроить
Спсаибо. Про готовые — это слишком для меня. Но разбираясь в коде примера, я наконец-то допёр, что socketio.NewServer() возвращает просто http.Handler. Ну и вот тут получилось все сделать правильно: делаю свой хендлер, в котором добавляю нужные хедеры, а потом передаю этот же запрос-ответ в socketio.
🏁Александр
кто юзал github.com/sarulabs/di ?
Daniel
я не юзал, и я не припомю случая, когда бы мне понадобилось такоэ
🏁Александр
ну я хочу им определить зависимости, а потом уже в каждый из двух main пропихнуть
🏁Александр
не знаю насколько go-way, но вроде звучит хорошо
🏁Александр
закопипастил их примерчик - https://play.golang.org/p/ZqFgf4LSq_f
🏁Александр
только createApp у меня будет в отдельном общем пакете
🏁Александр
ну во первых там связей больше двух (две бд + брокер + )
🏁Александр
они все не нужны в одном приложении, но в двух майнах набегает (и общие есть)
🏁Александр
управление таким зоопарком вручную тяжко
Kirill
не знаю насколько go-way, но вроде звучит хорошо
У вас и проекты без абсолютного пути были хорошей идеей, если я не путаю
🏁Александр
кидаетесь массой? 🙂 А можно услышать аргументы против билдера
🏁Александр
увы документации по архитектура по гоу - 0
Kirill
Если кто-то готов мне немного помочь с бесплатным видеокурсом, такой информации будет больше. Сейчас рук не хватает, чтобы все и сразу сделать
🏁Александр
а в чем нужна помощь?