Architecture Decision Record

Active theme: Light

← Примеры записей решений

Запись архитектурного решения для фреймворка Python Django

Дата решения: 2021-07-15

Состояние: принято

Контекст

Наша организация планирует разработать веб-приложение для управления данными клиентов. Мы выбрали Python в качестве языка программирования и рассматриваем Django в качестве веб-фреймворка для разработки приложения.

Решение

Мы решили использовать веб-фреймворк Django для разработки веб-приложения. Django предоставляет надёжный набор инструментов и функций для быстрой и эффективной разработки веб-приложений.

Факторы

Некоторые из факторов, повлиявших на наше решение:

  1. Объектно-реляционное отображение (ORM): в Django есть встроенная ORM, позволяющая взаимодействовать с базой данных без написания SQL-запросов. Это облегчает разработку приложения и его дальнейшее сопровождение.

  2. MVC-фреймворк: Django следует архитектуре «модель — представление — контроллер» (MVC), что упрощает разделение бизнес-логики и слоёв представления приложения.

  3. Масштабируемость: Django известен возможностями масштабирования, что делает его отличным выбором для разработки крупномасштабных приложений.

  4. Безопасность: в Django есть встроенные функции безопасности, такие как защита от распространённых веб-атак вроде межсайтового скриптинга (XSS) и SQL-инъекций.

  5. Поддержка сообщества: у Django большое и активное сообщество, которое оказывает поддержку и вносит вклад в развитие фреймворка.

Рассмотренные альтернативы

Мы рассматривали другие веб-фреймворки, такие как Flask и Pyramid. Однако мы обнаружили, что Django — более зрелый и устоявшийся фреймворк с надёжным набором функций.

Мы также обсуждали разработку приложения без веб-фреймворка с использованием таких библиотек, как SQLAlchemy и Flask-RESTful. Однако мы обнаружили, что Django предлагает более широкую функциональность, что делает его лучшим выбором для полноценного веб-приложения.

Последствия

Принятие Django приведёт к следующим последствиям:

  1. Приложение будет легче разрабатывать и сопровождать благодаря встроенным инструментам и функциям Django.

  2. Разделение бизнес-логики и слоя представления, что приведёт к более организованному и легче сопровождаемому коду.

  3. Масштабируемость и надёжность приложения.

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

  5. Доступ к большому и активному сообществу для получения поддержки.

Мы понимаем, что у Django более крутая кривая обучения, чем у других фреймворков, но считаем, что это стоит инвестиций ради долгосрочных преимуществ.

Заключение

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