28.10.2020 Новости, Идеи и практики автоматизацииВ большом Android-проекте архитектура держится на договорённостях: какой модуль от какого может зависеть, через какие интерфейсы идёт доступ к данным, какими компонентами и API пользоваться уже нельзя. Пока проект небольшой, всё это помнят участники команды. Когда решения накапливаются годами, их начинают нарушать случайно. Новый разработчик ещё не знает истории архитектуры, опытный коллега по привычке обращается к устаревшему API, а документ с правилами, даже хороший, не всегда читают вовремя. #IMAGE_235838# В Android-приложении Dodo Pizza я начал переводить такие договорённости в автоматические проверки во время редизайна, а затем добавил проверки для большинства архитектурных принципов проекта. Новым разработчикам, в том числе тем, кто проходит испытательный срок в паре со мной, это заметно упростило погружение в правила кодовой базы. При этом проверка ради проверки мне не нужна. Каждое ограничение должно защищать конкретное техническое решение. Иначе получится система, которая тщательно следит за соблюдением правил, но уже не помогает писать хороший код. #IMAGE_235839# Как превратить архитектурный принцип в правило Фраза «соблюдать модульную архитектуру» ничего не сообщает инструменту проверки. Для автоматизации нужно определить конкретное нарушение. Допустим, Android-приложение разделено на модули, а доступ к данным организован через интерфейсы. Команда может запретить UI-модулям напрямую зависеть от реализации хранилища. Такое ограничение уже поддаётся проверке ...
читать далее.