170 похожих чатов

Ребят, добрый день. Хотел бы узнать у вас мнение про

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

57 ответов

20 просмотров

из душного мне не нравится 1) что ты руками пишешь валидацию 2) зачем-то обернул в try catch 3) Exception e это вообще плохой паттерн

Larymar GC
из душного мне не нравится 1) что ты руками пише...

раз уж такая пьянка, как в таких ситуациях без try catch быть ? Например когда в бдшку стучишься или куда нибудь ещё ?

боба
раз уж такая пьянка, как в таких ситуациях без try...

я считаю, что бизнеслогика не должна обрабатывать ошибки если вы стучитесь в бд и там эксепшон 1) у вас плохая валидация до бизнес логики 2) у вас кривой код и логгер вам об этом скажет

Vazovsk1y- Автор вопроса
Larymar GC
из душного мне не нравится 1) что ты руками пише...

>1 сам пишу блоки if? Какие есть альтернативы? >2 обернул для выявления исключений которые могут возникнуть в случае работы с репой, ибо в ней нет трай и кетч. >3 Имеешь ввиду расширить типы отлавливаемых исключений в catch?

Vazovsk1y
>1 сам пишу блоки if? Какие есть альтернативы? >2 ...

Для начала, если уж ты обернул для выявления исключений репы, то почему у тебя ВЕСЬ КОД в try обернут?

Vazovsk1y
>1 сам пишу блоки if? Какие есть альтернативы? >2 ...

1) FluentValidation к примеру и унести его из бизнеслогики 2) они не должны возникать скорее всего, но тут уж на ваш вкус 3) да

Larymar GC
1) FluentValidation к примеру и унести его из бизн...

Лучше типами разрулить, а не Fluent validator

GetAll возвращает nullable?

Larymar GC
1) FluentValidation к примеру и унести его из бизн...

а использовать готовые атрибуты валидации ?

Vazovsk1y- Автор вопроса
Oleg Safonov
GetAll возвращает nullable?

да, если файл не найден на пк у пользователя.

Vazovsk1y- Автор вопроса
Vazovsk1y
json

А почему там getAll и вдруг файл какой то?

Vazovsk1y
тупанул, исправлю.

И главный вопрос: я не понял при чем тут вообще микросервисы

Переменная messageresponse в начале не нужна

Vazovsk1y- Автор вопроса

файл json выступает местом куда я записываю список объектов(типо бд). Для того чтобы брать оттуда данные я сделал репу по аналогии с дбконтекстом в EF.

files.ToList() несколько раз по коду метода

а почему не использована embededdb

Vazovsk1y
файл json выступает местом куда я записываю список...

Вообще немного странно, что null или пустой список рассматривается как fail

Larymar GC
я считаю, что бизнеслогика не должна обрабатывать ...

а если у сервиса к которому мы стучимся нет соеденения, то возникнет експешн, или это тоже как то можно контролировать ?

Vazovsk1y- Автор вопроса
Andrew Shurunov
И главный вопрос: я не понял при чем тут вообще ми...

приложение WPF данный метод сервиса использую внутри вьюмодели для получения списка сущностей и отображения их на экране.

боба
а если у сервиса к которому мы стучимся нет соеден...

это точно не проблема бизнеслогики скорее всего там и должен стрельнуть экспешен, который можно собрать в каком-нибудь глобалхендлере или вообще не собирать

Vazovsk1y- Автор вопроса
Larymar GC
а почему не использована embededdb

спросил еще давно у гпт, подсказал мол использую сериализацию и хранение данных в json. Там данных не много будет храниться.

Vazovsk1y- Автор вопроса
Vazovsk1y- Автор вопроса
Vazovsk1y- Автор вопроса
Vazovsk1y
пересмотрю этот момент.

правда ли, если украли этот json файл, стоит продолжить работу?

Vazovsk1y- Автор вопроса
Larymar GC
1) FluentValidation к примеру и унести его из бизн...

а если я допустим создам некий класс Validator, который и буду использовать внутри этих методов, а в нем метод с bool IsValid()?

Vazovsk1y- Автор вопроса

немного подправил реализовав идею с валидатором. Так хоть немного лучше вроде немного разгреб метод и он стал намного меньше? P.s не считая расширенную ловлю исключений - это я добавлю чуть позже.

Vazovsk1y
screenshot немного подправил реализовав идею с валидатором. Т...

Имхо в fail не нужно передавать enumerable empty. И лучше не enumerable возвращать, а что там реально у вас

Vazovsk1y
screenshot немного подправил реализовав идею с валидатором. Т...

Лучше ошибки на русском, чем на кривом английском, кстати)

Vazovsk1y
screenshot немного подправил реализовав идею с валидатором. Т...

Если валидатор проверяет null и пустой список и все, то лучше не создавать отдельную сущность, а тут проверить Имхо опять

Vazovsk1y
screenshot немного подправил реализовав идею с валидатором. Т...

Опять таки, почему ты весь метод в catch(Exception) оборачиваешь. Ты не знаешь что там может произойти?

Oleg Safonov
Почему files подчёркивает?

там скорее всего multiple enumerate

Vazovsk1y- Автор вопроса
Oleg Safonov
Короче, давайте по новой )

мы будем строить и реконструировать, а не заниматься мелким ремонтом.

Vazovsk1y- Автор вопроса
Oleg Safonov
А что в response factory?

ответ создает, на основе переданных аргументов.

Vazovsk1y
ответ создает, на основе переданных аргументов.

Ну пусть принимает при succecc лист например, а при ошибке только ошибку

Vazovsk1y- Автор вопроса
Oleg Safonov
Короче, давайте по новой )

ну ниче, кто ж сказал, что все будет получаться.

Vazovsk1y
ну ниче, кто ж сказал, что все будет получаться.

Да мы вроде по доброму так накидываем ) Получаться будет, но не сразу

Vazovsk1y- Автор вопроса
Oleg Safonov
Да мы вроде по доброму так накидываем ) Получатьс...

так я и не расстраиваюсь или ною, наоборот, приятно живых людей читать. А то заманался с гпт критику высасывать. Он в основном говорит то, что я хочу услышать, а не то, что нужно.

Vazovsk1y
до конца - нет.

Поясни, чем 200 "Something go wrong" лучше чем 500?

Phantom
4) английский

"Английский"

Вместо обработки исключений в try catch в каждом контролере можно добавить в programm встроенное Middleware UseExceptionHandler которая обрабатывает любое исключение глобально в проекте.

Vazovsk1y- Автор вопроса
ded
Вместо обработки исключений в try catch в каждом к...

Это проект WPF, там скорее всего нет того, про что вы говорите, но я понял, что нужно добавить глобальный обработчик, спасибо.

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Я тут за тем, чтобы задать вопрос, так как не знаю ассемблер, учу с/с++. Короче, насколько дорога операция перехода в функцию при ее вызове? Дело в том, что в с++ есть макросы...
Максим Рябцев
12
А какие чаты вообще в ходу? Auto aim? И что еше
do you think you're better off alone? А
13
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
14
hello friends. Do you know how can I learn getx? I have a software project that I should deliver it up to 5 weeks later and I need to learn firebase too. I will be thankfull
AmirHossein Razavi
15
Доброе время суток! у меня тут иноды закончились. и понял почему по сути кстит, я периодически очищаю постгрес и сентри контайнер: postgres=# DELETE FROM nodestore_node WHER...
Юсиф Насиров
9
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
lazarus-3.2.0/gtk, linux патч "имя проекта по умолчанию project1 -> prj" день добрый не нравится "именя проекта по умолчанию" (project1), к.раз приходится переименовывать (н...
livontiy
5
Коллеги, а в чём сейчас хорошо писать на перле, в смысле ide? Пробовал в идее с плагином, подсветка есть, даже какие-то предупреждения есть, но рефакторинга считай нет. Перене...
Дмитрий Петров
9
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Карта сайта