Бузург
Можно код?
https://github.com/Boozoorg/GreatProjeck
Тимофей
Здраствууйте как вам данный минималистичный фреймворк для go? хочу с ним поработать вот и думаю стоит у вас спросить что вы думаете о нём
мне не очень, так как он не совместим с fasthttp. Тот же функционал реализуется с помощью websocket + паттерна publisher subscriber
Null
/dev/random работает хорошо
Бузург
/dev/random работает хорошо
Хотел спросить так вы смогли узнать в чем проблема
Бузург
?
Илья
Хотел спросить так вы смогли узнать в чем проблема
можно сам участок кода, а не только ссылку на репозиторий?
Бузург
При запуске vs code пишет socket hang up
Бузург
Но где это ошибка и в чем ошибка не написано
Null
Именно ошибки
Не ну это
При запуске vs code пишет socket hang up
Ошибка говорит о том, что нужно прыгать на goland
Илья
При запуске vs code пишет socket hang up
паникует сам код или клиент?
Илья
если клиент, то возможно паника на самом сервере
Не ну это
На micro
на кок
Null
При запуске vs code пишет socket hang up
Можно скриншот ошибки?
Илья
ну вот, я о чем
Бузург
.
Но как это исправить
Юра (Юрий Александрович)
Но как это исправить
Попробуй для начала посылать другой запрос. Такой, который гарантированно должен выполняться без ошибок. И скриншоты, ради бога, нормальные. На клавиатуре есть клавиша PrintScreen
Илья
тут видна ошибка, в чем проблема?
Не ну это
Кстати да
Не ну это
Юра (Юрий Александрович)
Ошибка видна, но пока непонятно, где она возникает.
Не ну это
Когда нибудь мы обязательно найдем номер строки🥲👍
Юра (Юрий Александрович)
accounts/service.go:65 - это? Все плывет, ничего не вижу 🥸
Илья
Юра (Юрий Александрович)
Спасибо, так намного лучше.
Не ну это
Где? не пон
Otabek
more arrows, more
Юра (Юрий Александрович)
Надо надстройку в IDE сделать, чтобы делала так.
Не ну это
тут?
Emin Zalaev
тут?
ээ бля мой код не пали
Не ну это
ээ бля мой код не пали
прасти пожалусто (удалю скрин за 40 гривен)
Бузург
Спс всем
Бузург
Всё исправил
Ion
Ion
скриншоты топ
Vladislav
https://coub.com/view/3133tk
Dilame
Как обработать ошибку вне функции, на “верхнем уровне"? var publicKey, err = jwt.ParseECPublicKeyFromPEM(publicKeyPem)
Юра (Юрий Александрович)
Как обработать ошибку вне функции, на “верхнем уровне"? var publicKey, err = jwt.ParseECPublicKeyFromPEM(publicKeyPem)
вернуть полученную ошибку, или результат ее оборачивания, вышележащей функции,
Dilame
вернуть полученную ошибку, или результат ее оборачивания, вышележащей функции,
Это вызывается не в функции, а при инициализации программы
Dilame
вернуть полученную ошибку, или результат ее оборачивания, вышележащей функции,
Идея в том, чтобы при старте создать нужный объект, и переиспользовать его потом
Dilame
в main()?
Не удобно(( Это находится в другом файле
Dilame
в main()?
Есть ли какие-нибудь более “прямолинейные” варианты?
Юра (Юрий Александрович)
я пока не понимаю как оно устроено сейчас :-/
Юра (Юрий Александрович)
в таком случае кто-то перед первым обращением к publicKey должен проверить err и либо вернуть ошибку, либо кинуть панику.
Юра (Юрий Александрович)
Либо создавать не переменные уровня пакета, а обернуть их в еще один объект, у которого строки 10 и 11 будут входить в его конструктор, причем конструктор чтобы возвращал объект и err.
Юра (Юрий Александрович)
А как контролировать первое обращение?
Это тяжело и неудобно, лучше рассмотреть вариант с объектом.
Dilame
Вообще, хотелось бы просто при старте программы кинуть панику если такая ошибка возникла, и всё
Юра (Юрий Александрович)
Dilame
в таком случае просто в main() нужно кинуть панику, если err!=nil
в main не удобно. Я предпочитаю разделять и изолировать всю логику. У меня есть отдельный файл, который отвечает за проверку JWT. И хотелось бы, чтобы только в нём была эта логика, и не размазывалась по всему проекту
kostyaBro
Либо делаешь функцию MustParsePubKey. Суть в слове Must. Можно установить соглашение что Must... паникует если ошибка. И возвращает 1 ответ. Можешь внутри в Once обернуть
kostyaBro
Имею в виду что Must не возвращает ошибку, удобная штука.
kostyaBro
Еп
kostyaBro
Ну я бы Once таки добавил
kostyaBro
Что такое Once?
https://pkg.go.dev/sync#Once Сущность для того чтобы выполнить что-то только 1 раз. Что-бы не парсить файл при каждом вызове.
kostyaBro
Оно с эффектом мемоизации?
Нуу она вызовется 1 раз в многопоточном коде, а переменные, в которые надо сохранить будут снаружи этой функции. Не совсем мемоизация.
Dilame
Нуу она вызовется 1 раз в многопоточном коде, а переменные, в которые надо сохранить будут снаружи этой функции. Не совсем мемоизация.
Я недавно в го, и, возможно, не до конца понимаю модули и многопоточность в нём. Как такой код может быть вызван больше одного раза? Этот код находится вне функций, на самом верхнем уровне. По-идее, он исполняется только при старте программы. Или, если, например, этот файл импортируется из двух других файлов, то он выполнится дважды?
kostyaBro
Просто не привык использовать глобальные переменные. Это может больно аукнуться, плохо расширяемо. В основном объекты.
Илья
kostyaBro