Юлий Минькин, руководитель проектного офиса
ADR (Agile Development Review) — метод, который используется для документирования архитектурных решений в процессе разработки программного обеспечения. Он позволяет команде разработчиков документировать все принятые архитектурные решения и причины их принятия.
ADR использует итеративный подход к разработке, что позволяет быстро реагировать на изменения в требованиях Заказчика, поэтому этот метод целесообразно использовать в гибких технологиях разработки.
Процесс работы с ADR-файлами
Метод ADR включает в себя следующие шаги:
- Создание ADR-файла. Когда принимается архитектурное решение, создается ADR-файл, в котором описывается решение, его причины, альтернативы и последствия.
- Ревью ADR-файла. ADR-файл передается на рассмотрение (review) команде разработчиков, которая оценивает принятое решение и может внести предложения по улучшению.
- Архивирование ADR-файла. Когда ADR-файл проходит рассмотрение и все замечания устранены, он архивируется и сохраняется в общей базе знаний проекта. Это позволяет команде разработчиков легко находить ранее принятые архитектурные решения и понимать, почему они были приняты.
- Обновление ADR-файла. Если в будущем появляется необходимость изменить принятое решение, то ADR-файл обновляется, и все изменения документируются в нем.
Содержание ADR-файла
В общем виде каждый ADR-файл может содержать следующие разделы:
- Заголовок: Название решения и номер ADR.
- Дата создания: Дата создания ADR-файла.
- Автор: Имя автора решения.
- Статус: Текущий статус решения (принято, отклонено, в процессе рассмотрения и т.д.).
- Контекст: Объяснение контекста, в котором было принято решение.
- Принятые решения: Подробное описание принятого решения.
- Альтернативы: Описание альтернативных решений, которые были рассмотрены.
- Последствия: Объяснение, какое влияние может оказать принятое решение на проект в долгосрочной перспективе.
- Ссылки: Ссылки на дополнительные материалы, которые могут помочь лучше понять контекст и принятые решения.
Применение ADR-файлов
ADR-файлы, можно сказать, универсальны и используются в различных технологиях и фреймворках, в которых принимаются те или иные архитектурные решения, например, такие как:
- Программирование на языке Java, используя фреймворки Spring и Hibernate.
- Разработка веб-приложений на языке JavaScript, используя фреймворки Angular и React.
- Разработка мобильных приложений на языке Swift для iOS или на языке Kotlin для Android.
- Разработка микросервисных приложений, используя Docker и Kubernetes.
- Разработка баз данных, используя PostgreSQL, MySQL, MongoDB и другие системы управления базами данных.
- Разработка алгоритмов и структур данных на языках программирования, таких как Python, C++, C# и другие.
ADR-файлы могут использоваться в любых проектах, где важно документировать архитектурные решения, принятые в рамках проекта. Это может быть как большой командный проект, так и небольшой личный проект, например, для создания собственного блога или сайта-портфолио.
Организация групповой работы с ADR-файлами в онлайн сервисах существенно повышает эффективность работы проектной команды и обеспечивает хороший канал коммуникации с Заказчиком.
В целом, ADR — это эффективный метод документирования разработки программного обеспечения, который позволяет быстро и структурировано описывать архитектурные решения и на их основе создавать высококачественный продукт, учитывая все изменения в требованиях и бизнес-процессах.
Примеры оформления ADR-файлов и журнала их регистрации
ADR: Использование расширений платформы для интеграции с внешними системами
Дата создания: 03.02.2023 Автор: Алексей Иванов Статус: Принято
Контекст:
В нашем проекте разработки на платформе 1С:Бухгалтерия 3 возникла необходимость интеграции с внешней системой управления складом. Необходимо передавать данные о товарах, заказах и остатках на складе между 1С и внешней системой в режиме реального времени.
Принятое решение:
Мы решили использовать возможности расширений платформы 1С:Бухгалтерия 3 для реализации интеграции с внешней системой. Расширения позволяют нам добавить новый функционал и взаимодействовать с внешними системами через веб-сервисы и API.
Альтернативы:
- Разработка отдельного модуля интеграции на стороне 1С с использованием встроенных возможностей языка запросов 1С.Решение было отклонено, так как разработка и поддержка отдельного модуля требует дополнительных ресурсов и усложняет архитектуру проекта.
- Использование сторонних инструментов для интеграции с внешней системой, таких как платформы интеграции или ETL-инструменты. Решение было отклонено, так как использование сторонних инструментов может вносить дополнительные ограничения и зависимости, а также требовать дополнительные расходы на лицензирование и поддержку.
Последствия:
Использование расширений платформы для интеграции с внешними системами позволяет нам значительно упростить разработку и поддержку интеграционного функционала. Мы сможем обмениваться данными с внешней системой в режиме реального времени, сократить ручной ввод данных и повысить точность и надежность информации в системе.
Ссылки:
- Документация 1С:Бухгалтерия 3 о возможностях расширений платформы: [ссылка на документацию]
- Техническое задание по интеграции с внешней системой управления складом: [ссылка на ТЗ]
ADR: Использование встроенных возможностей 1С:Управление торговлей 1 для интеграции с онлайн-магазином
Дата создания: 10.03.2023 Автор: Екатерина Смирнова Статус: Принято
Контекст:
В нашем проекте разработки на платформе 1С:Управление торговлей 1 необходимо осуществить интеграцию с существующим онлайн-магазином. Требуется передавать данные о товарах, заказах и клиентах между 1С и онлайн-магазином для синхронизации информации и автоматизации бизнес-процессов.
Принятое решение:
Мы решили использовать встроенные возможности платформы 1С:Управление торговлей 1 для реализации интеграции с онлайн-магазином. Платформа предоставляет функционал для работы с внешними системами через веб-сервисы и API.
Альтернативы:
- Использование стороннего инструмента для интеграции с онлайн-магазином, предлагаемого поставщиком магазина. Решение было отклонено, так как использование стороннего инструмента может вносить ограничения в архитектуру и функциональность проекта, а также потребовать дополнительные расходы на лицензирование и поддержку.
- Разработка собственного модуля интеграции на стороне 1С с использованием языка запросов 1С.Решение было отклонено, так как разработка собственного модуля интеграции требует дополнительных ресурсов и может привести к усложнению архитектуры и поддержке проекта.
Последствия:
Использование встроенных возможностей 1С:Управление торговлей 1 для интеграции с онлайн-магазином позволяет нам упростить разработку и поддержку интеграционного функционала. Мы сможем автоматизировать передачу данных между системами, синхронизировать информацию и оптимизировать бизнес-процессы.
Ссылки:
- Документация 1С:Управление торговлей 1 о встроенных возможностях интеграции: [ссылка на документацию]
- Техническое задание по интеграции с внешней системой управления складом: [ссылка на ТЗ]
Журнал регистрации ADR-файлов
Надеемся статья была полезна и вы сможете использовать наши примеры в своей работе. Если у вас есть вопросы по работе с ADR-файлами, пишите их в комментариях к этому посту.