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

Всем добрый вечер! Подскажите пожалуйста как правильно разделять UseCases? В одном

UseCase должна быть всего одна функция или несколько функций, но одной логики?
Например у меня есть одна родительская таблица с двумя дочерними таблицами в массивах.
data class School(
val id: Int,
val students: List<Student>,
val subjects: List<Subject>
)
и я например для получения дата класса School, сделал GetSchoolUseCase()
а если я хочу найти студентов, то мне нужно создавать новый UseCase? Так же и для предметов?

8 ответов

9 просмотров

UseCase это термин из области бизнес-требований, дословно пользовательский сценарий. В коде класс, который реализует этот сценарий, может называться Interactor, или так же UseCase. Ограничений на количество методов в нём нет, просто кто-то предпочитает более функциональный стиль, когда у UseCase есть один метод execute, но это совсем не обязательно.

Алексей Ершов
UseCase это термин из области бизнес-требований, д...

То есть по сути дело вкуса называть юз кейс или интерактор? А наполнение произвольное?

Max T.
То есть по сути дело вкуса называть юз кейс или ин...

Главное в рамках проекта какие-то правила установить, и понимать, за что конкретно отвечает каждый тип сущности. Золотых стандартов нет, но есть несколько популярных подходов)

Алексей Ершов
Главное в рамках проекта какие-то правила установи...

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

Max T.
ок, понятно, спасибо за ответ ) мы как то просто п...

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

Алексей Ершов
Это интерпретации, которые имеют право на существо...

и на самом деле жаль , стандартизация в этом смысле была бы не лишней

Max T.
и на самом деле жаль , стандартизация в этом смысл...

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

Алексей Ершов
К сожалению, это сложно, и конкретные шаблоны где ...

Эта мысль, мне кажется, тут вообще самое важное, что можно вынести из разговора. Спасибо большое

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

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

Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
10
А дальше что?.. Записать в файл, потом в Код?.. И потом разбирать как-то?..
Хаскель Моисеевич Гопник
14
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
@y0zhig @shizzard А можно я опишу цель и может вообще ерланг мне не подходит. На текущий момент как я понимаю у ерланга есть легковесные потоки и задача выполняется в каком т...
Дмитрий Спиридонов
5
Есть предложения, как подобное можно упростить?
Hemul GM
12
У меня вопросик назрел. Почему, создав класс без наследования и реализации деструктора Destroy, деструктор не вызывался при free. Потом указал наследование от tobject и overri...
Сергей Бычков
9
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
Карта сайта