день. Добавить запись в список - это фича? Или сам список это фича?
да начнется холивар. Фича это ограниченная часть логики, которую зачастую(не всегда) можно использовать как отдельное приложение
Я бы привязал фичу к бизнес-сущности. В вашем примере все приложение - 1 фича
так, а если приложние - аудиоплеер. Он играет трэки. Можно создавать пэйлисты. Можно изменять и сохранять натсройки. Это 3 разных фичи или еще одна?
все сильно зависит от конкретных примеров. В случае с аудиоплеером: плеер, треки, плейлисты
в голове попробуйте разделить так: если этот кусок логики можно перенести в другое приложение (совершенно другое) - то это фича
Вы задаёте вопросы, на которые вам нужно ответить самому в вашем проекте) Вы решаете как организовать код так, чтобы с ним было удобно работать. Какого размера делать фичи, как их друг с другом связывать. Готовых ответов нет, есть только общие советы вроде того же Мартина и прочих динозавров программирования. Вы можете сказать, что фича это всё приложение. Если оно маленькое - норм, если разрастается - скорее всего вы захотите его разделить на части поменьше. Сделаете слишком маленькие - запутаетесь, сделаете слишком большие - сложно будет изменять код. У нас фича это экран, или набор тесно связанных экранов, или самостоятельный кусочек логики, который делает что-то нетривиальное и может быть переиспользован в разных других фичах.
в других фичах или других приложениях? (последняя строка)
В других приложениях это скорее библиотека уже. У нас продукт, поэтому большинство фичей для этого продукта.
А что посоветуете по клину не от динозавров?
а вот это интересно, чем фича отличает от библиотеки?
Вот у меня есть проект на MVVM. Человек посмотрел на этот мой проект и сказал что клином там и не пахнет. Что там должно быть чтобы там "запахло клином"? Вот на что он глянул и сразу понял что клина там нет?
есть разное понятие клина:
https://t.me/Android_Architecture/112426 клин здорового человека
Статеечки разве что, монументальных трудов не знаю. Они как раз у динозавров лучше всего получились) Я в хорошем смысле так называю.
Наверное спектр задач который она решает. "Сделать запрос в сеть" - наверное больше похоже на библиотеку, чем "выбрать стикер в телеграме"
ну ничего же не мешает вынести фичу стикеров в библиотеку
Но непонятно зачем тратить дополнительные усилия на это. К библиотеке выше требования чем к фиче приложения. Например поменьше внешних зависимостей, и возможность интеграции куда угодно.
понятно, что с прикладной стороны это не стоит затраченных усилий. Но с точки зрения архитектуры это же равнозначные понятия
Обсуждают сегодня