Maks
В Сбере слак без предупреждения удалили
Maks
чел пишет
Vladimir
Может мелких не коснется
Maks
Может коснется только облачных
Nikita
От команды зависит, в слаке не мало
Tikhon
https://github.com/mzdt/apiserver/blob/master/internal/handlers/accounthandler/accounthandler.go Вот, вроде вынес обработку ошибок в отдельную функцию. Хотелось бы конечно функцию errorsHandler вообще куда-нибудь в отдельный пакет вынести, но почему-то не хочется импорт фибера из accountHandler тянуть куда-то ещё. Будут ещё какие-то рекомендации ?
Herman
не создавать каждый раз структуры
Herman
Herman
их лучше вынести
Herman
errorsHandler я бы лучше через switch сделал
Herman
ну и раз мы обрабатываем ошибки в функции, то лучше обрабатывать все уже
Alexander
ага, тестить никак
Herman
все вынести в errors handler
Herman
и кажется избыточным для сервисных ошибок делать отдельный пакет
Herman
можно файл errors в пакете сервиса
Tikhon
не создавать каждый раз структуры
Да, но тогда возникает проблема с валидацией данных - если создать какую-то общую структуру "request", то тогда валидация из-за незаполненных полей не будет проходить
Herman
loginRequest
Tikhon
А если для каждой функции свою отдельную структуру - не знаю, мне не очень это нравится
Herman
А если для каждой функции свою отдельную структуру - не знаю, мне не очень это нравится
ну оно сейчас так и создается, только еще и каждый раз при вызове функции
Tikhon
Да, понимаю, просто сейчас это тестовый проект, который работать нигде не будет. А так да, конечно же я бы создал отдельные структуры в случае чего
Tikhon
все вынести в errors handler
А как мне проверять ошибку валидации ?
Herman
глянуть, что там за ошибка возвращается
Tikhon
Точно
Herman
или можно целым типом проверять
Tikhon
Всё, спасибо, сейчас исправлю
Tikhon
Хорошо, спасибо
Tikhon
ага, тестить никак
Ещё не дошли руки до написания тестов, не знаю как это делать. Как только доделаю этот сервер - возьмусь за написание тестов
Tikhon
не создавать каждый раз структуры
Стоп, небольшой вопрос - тут ведь речь идёт про производительность, правильно ? Допустим, мы объявим где-то на уровне пакета type loginRequest struct. Но мы ведь в Login() все равно каждый раз будем создавать структуру типа loginRequest. Где разница в производительности ?
Tikhon
А если вы имеете ввиду создать структуру loginRequest на глобальном уровне как переменную var ( loginRequest { ... } )
Tikhon
То будет ли это безопасно ?
Tikhon
Перед каждым новым логином в ней уже будут лежать прошлые данные
Tikhon
Вдруг где-то что-то пойдёт не так, и в новый аккаунт попадёт часть данных из другого аккаунта ? (предыдущего реквеста)
Tikhon
Так ведь замучаешься ошибку искать
Alexander
То будет ли это безопасно ?
нет конечно, у тебя же не один юзер может логиниться в один момент
Tikhon
В общем, тут вопрос про производительность изначально был
Tikhon
Есть ли разница между созданием структуры каждый раз в функции и объявлением этой структуры на глобальном уровне, и созданием каждый раз переменной типа этой структуры
Alexander
да какой блин производительности? 2 небольших стринга
Andrey
@tikhonfedulov а ты вкурсе про такой момент, что на каждый РЕСТ запрос создается своя горутина?)
Alexander
начни профилировать уже, такие вопросы отпадут
Patamen
Всем привет! Ребят, парсерами никто не занимался? Задача поставлена парсить сайт один, тупо раз в день новости вытаскивать - да вот там стоит ddos-guard Никто не знает как с этим моментом разобраться? Не прошу прямого решения, просто спрашиваю, был ли у кого опыт, в какую сторону смотреть
Alexander
ну попробуй chromedp
Alexander
раз в день-то
Patamen
хм Спасибо
Patamen
Буду глядеть
Alexander
просто загрузи, подожди dom ready или просто минутку, вытягивай хтмл и парси
Aртем
На Хабре статья есть по настройке
Aртем
У меня бот каждые 5 минут парсит с proxychains уже месяца 3 без падений
Alexander
Через тор приложение запускай на сервере. Я proxychains утилитой пользовался
с тором еще хуже может оказаться) а некоторые сайты могут детектить и слать лесом
Alexander
хотя, вообще, конечно, задача конкретный сайт парсить. можно попробовать
Maks
Блин бесит когда тз не до конца сформировано.
Maks
Решаю задачи для новичков всяких
Maks
Maks
в частности вот эта вот)
Maks
Я сделал красивое экономичное решение без массива со сложностью o(n) но к сожалению оно не подойдет для некоторых случаев, когда багов меньше 3х)
Maks
А еще не понятно что делать если у всех багов одинаковая критичность)
Alexander
0
Alexander
Вроде понятная задача
Alexander
С такими ограничениями вообще смешно
Maks
а если багов меньше 3х
Maks
не сказано как сравнивать
Maks
типо довольно тупо выходит
Maks
типо сравнивать с предыдущими следующим же
Alexander
а если багов меньше 3х
Ааа, я думал критичных. Никак. По мне очевидно
Alexander
Нет ни одного удовлетворяющего наличию предыдущего и следующего одновременно
Maks
если багов меньше 3х получается ни одного не нужно фиксить
Maks
так?
Alexander
Мне кажется, это уже у тебя оверинжениринг
Maks
проф деформация)
Maks
Я просто решил порешать супер тупые задачки потому что на днях будет лайфкодинг и вычисление сложности алгоса)
Maks
вот я и решаю по разному одну задачу)
Maks
эту решил так:
Maks
а чо массив что ли заводить камон
Alexander
Кстати забавная система, подразумевает вечную жизнь одного бага
Alexander
Первого
Maks
?
Andrey
Как минимум, я не вижу проверки, что тебе ввели число от 0 до 9
Dmitry
Тз... Нам как-то госы прислали шикарное тз по госту.. Ща попробую выдержку найти