из душного мне не нравится 1) что ты руками пишешь валидацию 2) зачем-то обернул в try catch 3) Exception e это вообще плохой паттерн
раз уж такая пьянка, как в таких ситуациях без try catch быть ? Например когда в бдшку стучишься или куда нибудь ещё ?
я считаю, что бизнеслогика не должна обрабатывать ошибки если вы стучитесь в бд и там эксепшон 1) у вас плохая валидация до бизнес логики 2) у вас кривой код и логгер вам об этом скажет
>1 сам пишу блоки if? Какие есть альтернативы? >2 обернул для выявления исключений которые могут возникнуть в случае работы с репой, ибо в ней нет трай и кетч. >3 Имеешь ввиду расширить типы отлавливаемых исключений в catch?
Для начала, если уж ты обернул для выявления исключений репы, то почему у тебя ВЕСЬ КОД в try обернут?
1) FluentValidation к примеру и унести его из бизнеслогики 2) они не должны возникать скорее всего, но тут уж на ваш вкус 3) да
Лучше типами разрулить, а не Fluent validator
тупанул, исправлю.
GetAll возвращает nullable?
а использовать готовые атрибуты валидации ?
да, если файл не найден на пк у пользователя.
можно и их тут не сильно важно
А почему там getAll и вдруг файл какой то?
И главный вопрос: я не понял при чем тут вообще микросервисы
Переменная messageresponse в начале не нужна
файл json выступает местом куда я записываю список объектов(типо бд). Для того чтобы брать оттуда данные я сделал репу по аналогии с дбконтекстом в EF.
files.ToList() несколько раз по коду метода
а почему не использована embededdb
Вообще немного странно, что null или пустой список рассматривается как fail
а если у сервиса к которому мы стучимся нет соеденения, то возникнет експешн, или это тоже как то можно контролировать ?
приложение WPF данный метод сервиса использую внутри вьюмодели для получения списка сущностей и отображения их на экране.
это точно не проблема бизнеслогики скорее всего там и должен стрельнуть экспешен, который можно собрать в каком-нибудь глобалхендлере или вообще не собирать
спросил еще давно у гпт, подсказал мол использую сериализацию и хранение данных в json. Там данных не много будет храниться.
везде новую создавать?
исправлю, спасибо.
пересмотрю этот момент.
правда ли, если украли этот json файл, стоит продолжить работу?
да, можно в принципе.
а если я допустим создам некий класс Validator, который и буду использовать внутри этих методов, а в нем метод с bool IsValid()?
Имхо в fail не нужно передавать enumerable empty. И лучше не enumerable возвращать, а что там реально у вас
Лучше ошибки на русском, чем на кривом английском, кстати)
ахаахх, такая база)
Если валидатор проверяет null и пустой список и все, то лучше не создавать отдельную сущность, а тут проверить Имхо опять
Опять таки, почему ты весь метод в catch(Exception) оборачиваешь. Ты не знаешь что там может произойти?
Почему files подчёркивает?
там скорее всего multiple enumerate
Если не валидно, то something go wrong 🤔
Короче, давайте по новой )
мы будем строить и реконструировать, а не заниматься мелким ремонтом.
А что в response factory?
ответ создает, на основе переданных аргументов.
Ну пусть принимает при succecc лист например, а при ошибке только ошибку
ну ниче, кто ж сказал, что все будет получаться.
Да мы вроде по доброму так накидываем ) Получаться будет, но не сразу
так я и не расстраиваюсь или ною, наоборот, приятно живых людей читать. А то заманался с гпт критику высасывать. Он в основном говорит то, что я хочу услышать, а не то, что нужно.
Поясни, чем 200 "Something go wrong" лучше чем 500?
"Английский"
Вместо обработки исключений в try catch в каждом контролере можно добавить в programm встроенное Middleware UseExceptionHandler которая обрабатывает любое исключение глобально в проекте.
Это проект WPF, там скорее всего нет того, про что вы говорите, но я понял, что нужно добавить глобальный обработчик, спасибо.
Обсуждают сегодня