Как стать автором
Обновить

Комментарии 7

А где конкретно Google рекомендует Clean Architecture? Их гайды по архитектуре отличаются от принципов Clean Architecture. Ни Clean ни имя автора нигде не упоминается.

Верно, прямой рекомендации (как примеру с Kotlin) от Google не наблюдалось, в статье имелось ввиду что официальные сэмплы и best practice по архитектуре от Google имеют референс на Clean Architecture.

Содержит бизнес‑логику, должен быть независим от деталей реализации приложения и внешних библиотек (можно делать исключения, пример RxJava, DI Framework)

Можно делать исключение в случае если это языковые либы, например для того же DI если вы используете Koin или для асинхронщины Kotlin Coroutines.

Не совсем корректно то что в domain модуль имплементируется зависимость Hilt так как она напрямую из Android, а domain модуль не должен зависить ни коим образом от платформенных зависимостей и должен быть чисто языковым модулем Java/Kotlin, так как вам нужны тот же @Inject @Singleton , а Hilt поддерживает JSR-330, правильнее будет использовать зависимость Javax.Inject и так же DI module'и мне кажется правильнее выносить в какой di модуль либо в ту же app'ку, так как di не ответственность этих модулей, собственно в остальном все по теме) ??

Если будет полезно можете заглянуть сюда по реализации clean'a стараюсь частенько его обновлять

Спасибо за дополнение. Если хочется большей автономности domain модуля, то вами описанный вариант имеет место быть. В статье хотелось донести, что ничего нет плохого в том чтобы этим пренебречь и для наглядности демонстрировался более упрощенный вариант.

Согласен, di не в доменном слое должен быть. И не в других слоях тоже, а вообще отдельно. Бизнес-логика не должна иметь никаких зависимостей от классов других слоёв, а если мы включим в неё di, то зависимости будут.

На мой взгляд немного странный совет "Избегайте монотонного использования одного и того же паттерна или подхода во всем приложении, так как это может нанести вред", разве не в этом суть как раз таки стандартизации и шаблонов? Если используем паттерн на весь проект - то только его и используем, иначе например у новых подключившихся к проекту разработчиков могут возникнуть вопросы, наподобии "почему здесь так, а тут не так"?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий