21 марта 2018 2406
Привет, кто о чем, а я о legacy-проектах. Итак, представим ситуацию, вы оказались на Android legacy-проекте и менеджмент от вас требует наличие плана – это примерный шаблон, который можно использовать на реальных Android-проектах.
Привет, кто о чем, а я о legacy-проектах. Итак, представим ситуацию, вы оказались на Android legacy-проекте и менеджмент от вас требует наличие плана – это примерный шаблон, который можно использовать на реальных Android-проектах.

Часть первая, оцениваем масштаб бедствий 
Это больше «менеджерский» раздел. Смотрим, какие подсистемы и связанные компоненты, в каких частях бизнес-логики больше багов. Делаем цветовую разметку, самым красным помечаем баги. Составляем список “опасных” интеграций, это кейс, когда UI плохо обрабатывает действия сетевой подсистемы или плохо происходит logout пользователя – UI + Data management.

Режем на слои, классическая архитектура
Возможно, об этом и писать не стоило, но не могу не упомянуть. Как обычно смотрим на UI, Controller/Presenter, Data Model, по возможности начинаем растягивать на отдельные классы. Не надо все делать сразу, начните с выносом UI в отдельные custom views, а сетевую и работу с данными в другую часть, писать тесты на это просто и это даст реальные результаты.

Выход в комплексное пространство и обход по контуру
Порой надо аккуратненько добавить новую фичу, старайтесь добавить ее по всем правилам чистой архитектуры или же какого-либо другого паттерна, это позволит вам тут же показать коллегам на проекте все выгоды и удобства отличного от legacy архитектурного подхода.

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

Добавляйте Frameworks по необходимости
Добавляйте фрэймворки по необходимости:
  • Dagger может помочь для управления графом зависимостей;
  • RxJava для сложных последовательных и асинхронных операций;
  • MVC/MVP/MVVM для удобного содержания в порядке кода и простоты тестирования.
Не увлекайтесь рефакторингом, изолируйте
Порой с реальностью реального мира просто смириться, не подвергайте рефакторингу то, что работает – просто изолируйте, обеспечьте враппером по необходимости и стройте вокруг то, что действительно требуется. 
В Android это делается очень просто:
  • отдельно стоящий Activity/Fragment;
  • отдельно запускаемый IntentService.
Уважайте Android framework
Прежде всего уважайте Android framework, он содержит всего 5 основных компонентов, чтобы выстроить работу всего приложения:
  • Activity – создание UI и получение пользовательских воздействий;
  • Service – для долгоживущих компонент используемых на разных экранах;
  • ContentProvider – для работы данными в стиле “REST”;
  • BroadcastReceiver – получение событий, с ними надо быть аккуратнее;
  • Application – глобальный контекст, «тот приятель, что всегда будет с вами».
Используйте компоненты так, чтобы они «хостили» ваши объекты управления/данных с оглядкой на жизненный цикл, на то, сколько времени этот Android-компонент должен/может жить. 

Безумству храбрых поем мы славу (с) Максим Горький
Legacy-проекты, по моему мнению, это прекрасные плацдармы для обучения и оттачивания своих навыков. Это кладезь показательных примеров, как различные подходы могут привести к проблемам. Каждый Android-разработчик должен рано или поздно распутать “классический Android’ный клубок” из Activity, AsyncTask, отсутствия DataLayer и т.д.

alyakskin_21_03_18.jpg

Последние статьи в блоге

Платформа сертификации IBS признана лучшим digital-решением для корпоративного обучения

Центр сертификации IBS стал обладателем Гран-при премии «Смарт пирамида» — одной из самых престижных российских премий за достижения в области обучения и развития человеческого капитала.

20 декабря 2024

Учебный центр IBS получил сертификат ГОСТ Р ИСО 9001-2015

В октябре 2024 года Учебный центр IBS получил сертификат соответствия ГОСТ Р ИСО 9001-2015. Это важное достижение подтверждает, что мы придерживаемся высоких стандартов качества и результативно управляем образовательными процессами организации.

19 декабря 2024

9 курсов со скидкой до 50%

Друзья, в январе стартует 9 курсов, обучение на которых можно купить со скидкой до 50%*! 

15 декабря 2024

8 заблуждений про тестирование

Тестирование программного обеспечения окружено множеством заблуждений. Эти стереотипы нередко приводят к недопониманию его реальной роли и важности для успешного создания продуктов. Рассмотрим восемь самых распространенных мифов о тестировании и объясним, почему они не соответствуют действительности.

15 декабря 2024

Путь к Fullstack-тестировщику: что нужно знать о ручном и автоматизированном тестировании?

Тестирование программного обеспечения — одна из самых востребованных областей в IT. И часто новички и даже опытные специалисты, желающие строить свою карьеру в этом направлении, часто сталкиваются с вопросом: какое тестирование выбрать — ручное, автоматизированное или Fullstack? У каждого из этих направлений свои особенности, преимущества и требования к знаниям. В этой статье рассмотрим каждое из направлений, их плюсы и минусы, области применения и навыки, необходимые для успеха.

15 декабря 2024

Совет по развитию сертификации ИТ-специалистов при АПКИТ аккредитовал «Платформу сертификации IBS»

Директор департамента обучения и развития IBS Владимир Гернер участвовал в заседании Совета по сертификации ИТ-специалистов при АПКИТ.

Новости Жизнь компании
08 октября 2024

Java-сертификация: IBS в сравнении с Oracle

Игорь Судакевич рассказывает, почему сертификаты могут стать важным инструментом для достижения карьерных целей.

Новости
04 октября 2024

Исследование IBS: число новых ИТ-решений в реестре ПО выросло в 2023 году более чем на треть

Анализируем ситуацию на рынке российского ПО.

Жизнь компании
01 октября 2024

6 суперспособностей Fullstack-тестировщиков, которые напоминают навыки животных

Читайте о скиллах, которые делают тестировщиков востребованными на рынке труда.

27 сентября 2024

5 мифов о системных аналитиках

Вместе с Екатериной Тихомировой, специалистом по системному и бизнес-анализу, разбираемся, чем занимаются системные аналитики.

20 сентября 2024

Методология 12 факторов: как успешно разрабатывать облачные приложения

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

12 сентября 2024

Баги, которые стали фичами

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

09 сентября 2024

Шаблоны облачного проектирования

Читайте про наиболее популярные шаблоны облачного проектирования: шаблон Bulkhead и шаблон Sidecar.

06 сентября 2024

Бесплатные мини-курсы ко Дню знаний

Друзья, поздравляем с Днём знаний! Желаем любопытства, открытий и новых побед!

02 сентября 2024

5 курсов со скидкой 30%

Друзья, в сентябре стартует 5 курсов со скидкой 30%*

29 августа 2024

Исследование IBS: на одну вакансию в Java-разработке приходится 4 резюме

По данным исследования рекрутингового центра IBS, наибольшая конкуренция среди соискателей наблюдается среди Python-разработчиков: на одну вакансию приходится 10 резюме. В менее конкурентной среде находятся Java-разработчики (4 резюме на одну вакансию). Самыми дефицитными являются специалисты по языку Go: менее 2 резюме на одну вакансию.

28 августа 2024

Индексирование баз данных в PostgreSQL: погружение в тему

В продолжение серии статей об устройстве системы управления базами данных (СУБД) PostgreSQL (раз, два) смотрим, как ускорить выполнение запросов к базе данных с помощью индексов.

28 августа 2024

Книги для системных и бизнес-аналитиков, а также будущих и нынешних архитекторов

Наш коллега, архитектор информационных систем Сергей Политыко, поделился полезными книжными рекомендациями.

Жизнь компании
19 августа 2024

Сценарии кибератак с использованием ИИ. Внутренний периметр.

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

16 августа 2024

Сценарии кибератак с использованием ИИ. Внешний периметр

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

09 августа 2024

Не нашли, что искали? — Просто напишите, и мы поможем

Продолжая, я подтверждаю, что ознакомлен с Условиями использования и Порядком обработки персональных данных
Корпоративное обучение Оценка персонала Сертификация О нас Стань тренером Блог
Пользователь только что записался на курс ""
Спасибо!
Форма отправлена успешно.