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

Всем доброе утро. Такой кейс: Есть 3 сущности: 1) видео 2) кадр из

видео
3) обработанный кадр из видео

Чтобы получить каждую следущую сущность нужны предыдущие ( достать из видео кадр и обработать ).
Так же кадр и обработанный кадр могут храниться к кеше или файлом на диске.

Логика примерно такая: у Interceptor есть видео и он хочет получить кадр из видео. Для этого нужно попросить репозиторий дать кадр, который по идее вернёт нам его с диска или из кеша

но если кадра на диске и в кеше нет, то нужно извлечь его из видео

вопрос: где лучше размещать логику/обработку случая, когда кадра нет в кеше и на диске и нужно извлечь его из видео

по идее можно это всё сделать в Interceptor. Т.е. если репозиторий не вернул ему кадр, то он ( Interceptor ) извлёк его из видео, оставил себе и так же положил кадр в репозиторий ( тот в кеш и на диск )
с другой стороны эту логику можно спустить в репозиторий
ломаюсь вот

с обработанным кадром таже самая схема, только чуть длиннее

если его нет, то нужно попытаться взять обычный кадр и обработать его ( опять же в репозитории или в Interceptor ? )
если и обычного кадра нет, то нужно сначала извлечь его из видео, а потом обработать

т.е. должен ли этим всем заниматься репозиторий
или он должен просто уметь доставать кадр из кеша или из файла и умнее его делать не стоит?

3 ответов

13 просмотров

Когда я слышу слово "репозиторий" то у меня в голове только логика сохранить и достать. И никакой другой. ИМХО этой логикой должен заниматься ваш interceptor

Три источника данных, которые вы перечислили и над ними фасад - репозиторий. Имхо яснее некуда.

Увеpены ли Вы, что это сущности? То есть каждая из них пpедставляет из себя полноценного участника бизнес-пpoцессов, либо же что-то все-таки является пpoмежуточным этапом вычислений?

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
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
6
Карта сайта