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

Не будем забывать, что clean - это прежде всего, простота

разработки и поддержки кода.
Если возникает необходимость полдня чесать репу и думать что куда поместить - то нафиг тогда этот clean?
По опыту репозиторий лучше воспринимать как тонкую обертку (=data source).
Объясню почему.
Вот вы, джедай клина, пишите репозиторий, который объединяет 2 дата-сорса (net и db). Ok, всё круто.
Потом приходит другой разраб. Ага, надо перед запросом прочитать настройку. Чешет репу, куда поместить дата сорс настроек. Аха, настройка связана с данным запросом, значит в репозиторий. Потом другой разраб хочет ещё один запрос сделать. Чешет репу, добавляет в тот же репозиторий. Третий разраб хочет ещё писать настройки ..

В итоге в репозитории получаются инжнкекты левых дата-сорсов, других репозиториев и другой хрени.
А потом... Этот репозиторий понадобилось переиспользовать, но без настроек. Что делает 4-й разраб? Правильно, добавляет флажки в параметры методов. Или того хуже, добавляет state в репозиторий.

Так что лучше всё-таки дать установку, что репозиторий - тонкая обертка. Чтобы не чесать репу что в него пихать.

7 ответов

18 просмотров

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

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

Pavel- Автор вопроса
Ruslan Kim
тогда для каждой фичи нужен отдельный репо, без пе...

Репозитории - это слой данных. Его имплементация может быть вообще в отдельном модуле. И он как раз может переиспользоваться. Сущность, которая работает с несколькими дата-сорсами (репозиториями) - это скорее интерактор, но на самом нижем уровне. В бизнес-логике может быть несколько слоёв. На нижнем уровне может быть интерактор, который работает с несколькими репозиториями. Но этот слой уже принадлежит фиче, а не имплементации репозитория

Pavel
Репозитории - это слой данных. Его имплементация м...

Я говорил о том, что каждая фича в своем домене держит один или несколько интерфейсов репозитория, под каждый кейс. Без переиспользования. Надо сохранять данные - один репо. Надо сохранять еще и настройки и т.д. - другой.

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

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта