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

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

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

57 ответов

109 просмотров

из душного мне не нравится 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, там скорее всего нет того, про что вы говорите, но я понял, что нужно добавить глобальный обработчик, спасибо.

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта