Учимся декомпозировать задачи
Всем привет! Декомпозиция - это один из главных и важнейших навыков, которыми должны обладать разработчики. Как минимум, среднего уровня.
Декомпозиция — разделение большого и сложного на небольшие простые части. При постановке задач декомпозировать — значит разбить большую задачу на маленькие задачи, которые можно легко оценить.
На старте своего пути, из-за нехватки опыта я не разбирался как правильно декомпозировать и брался делать огромные фичи разом, либо же как-то очень плохо разбил. В связи с этим получал огромную порцию выгорания, непонимания и проблемы со сроками. Рассказываю свой опыт, как это делаю я, а потом рассмотрим примеры.
Пропустим все моменты с ознакомлением документации, технических требований и т.п. К нам пришла фича, сделать новый экран, например уведомления. Для себя я её разобью так:
1. Начну с сетевого слоя. Напишу Endpoint, пропишу сервис, менеджер и тд.
2. Перед тем, как начну верстать UI, нужно убедиться нет ли таких элементов, которых у вас нет в проекте. Я думаю что у многих есть ДС или кастомные UI-элементы. Сверстаю экран.
3. Подключу сервис к экрану, проверка выполнение запросов.
4. Написание бизнес логики, архитектурных моментов.
5. Проверка функционала.
Или давайте еще разберем пример на основе данного экрана.