Рефакторинг мобильного приложения

Опубликовано: 27 Май 2025
на канале: SM Lab
78
0

Расскажем о своем опыте работы в проекте "Мобильное рабочее место продавца" (МРМП).
Проект представлял собой устаревшую версию с множеством проблем и сложностей.
Цель проекта - увеличить скорость разработки и привести к современному виду.
В ходе доклада мы обсудим проблемы, с которыми пришлось столкнуться, рассмотрим различные варианты решения и типы архитектуры, их плюсы и минусы, а также Валерий расскажет, как и почему остановился на конкретном решении.

В заключение будут даны рекомендации по выбору подходящего варианта для вашего собственного опыта, а так же советы, как и какие ошибки можно избежать на старте рефакторинга проекта.


00:00 История проекта
• Автор рассказывает о своем опыте работы в проекте "Мобильное рабочее место продавца" (МРМП).

07:14 Рефакторинг и ошибки
• Автор начал рефакторинг, но столкнулся с ошибками и сложностями.
• Он совершил ошибку, начав с сетевой части, вместо того чтобы начать с доменной логики.
• Это привело к большим изменениям и проблемам с синхронизацией с основной командой.

11:34 Мега-классы и ошибки
• Автор столкнулся с огромными классами, которые использовались для нескольких бэкэндов.

14:14 Проблемы с архитектурой
• Упущение возможности написать тесты и рефакторинг.

16:47 Рефакторинг и разделение слоев
• Разделение на дата слой, презентационный слой и домен.
• Независимый домен, презентационные слои и отдельные компоненты для клиентов и бэк-эндов.

19:16 Варианты развития приложения
• Первый вариант: простой проект с одним модулем.
• Второй вариант: разделение по чистым слоям с помощью гредлов.
• Третий вариант: разделение по фичам с общими слоями.
• Четвертый вариант: разделение по фичам с отдельными гредлами для каждого слоя.

23:35 Работа с большим количеством фич
• Разделение логики приложения на многокомпонентную для больших проектов.
• Обособление логики для каждой фичи в отдельных гредлах.

25:46 Рефакторинг и разделение на модули
• Рефакторинг позволяет упростить сборку и изменение кода, разбивая большие модули на более мелкие.

31:05 Советы по рефакторингу
• Начинать рефакторинг лучше с сдвига логики домена, чтобы упростить бизнес-логику и отделить ее от других слоев.

36:26 Ответы на вопросы


38:28 Рефакторинг и разделение кода

45:46 Тестирование и ошибки

47:30 Организация разработки и конфликты

49:49 Рефакторинг и выделение модулей

Инкрементальная сборка и оптимизация

Обсуждение использования модулей в проекте

Предпосылки для перехода на Gradle

#smlab #клубмобильнойразработки
#mobile #gradle