Запись архитектурного решения для фреймворка Python Django
Дата решения: 2021-07-15
Состояние: принято
Контекст
Наша организация планирует разработать веб-приложение для управления данными клиентов. Мы выбрали Python в качестве языка программирования и рассматриваем Django в качестве веб-фреймворка для разработки приложения.
Решение
Мы решили использовать веб-фреймворк Django для разработки веб-приложения. Django предоставляет надёжный набор инструментов и функций для быстрой и эффективной разработки веб-приложений.
Факторы
Некоторые из факторов, повлиявших на наше решение:
Объектно-реляционное отображение (ORM): в Django есть встроенная ORM, позволяющая взаимодействовать с базой данных без написания SQL-запросов. Это облегчает разработку приложения и его дальнейшее сопровождение.
MVC-фреймворк: Django следует архитектуре «модель — представление — контроллер» (MVC), что упрощает разделение бизнес-логики и слоёв представления приложения.
Масштабируемость: Django известен возможностями масштабирования, что делает его отличным выбором для разработки крупномасштабных приложений.
Безопасность: в Django есть встроенные функции безопасности, такие как защита от распространённых веб-атак вроде межсайтового скриптинга (XSS) и SQL-инъекций.
Поддержка сообщества: у Django большое и активное сообщество, которое оказывает поддержку и вносит вклад в развитие фреймворка.
Рассмотренные альтернативы
Мы рассматривали другие веб-фреймворки, такие как Flask и Pyramid. Однако мы обнаружили, что Django — более зрелый и устоявшийся фреймворк с надёжным набором функций.
Мы также обсуждали разработку приложения без веб-фреймворка с использованием таких библиотек, как SQLAlchemy и Flask-RESTful. Однако мы обнаружили, что Django предлагает более широкую функциональность, что делает его лучшим выбором для полноценного веб-приложения.
Последствия
Принятие Django приведёт к следующим последствиям:
Приложение будет легче разрабатывать и сопровождать благодаря встроенным инструментам и функциям Django.
Разделение бизнес-логики и слоя представления, что приведёт к более организованному и легче сопровождаемому коду.
Масштабируемость и надёжность приложения.
Встроенные функции безопасности, помогающие защитить приложение от распространённых веб-атак.
Доступ к большому и активному сообществу для получения поддержки.
Мы понимаем, что у Django более крутая кривая обучения, чем у других фреймворков, но считаем, что это стоит инвестиций ради долгосрочных преимуществ.
Заключение
Исходя из рассмотренных факторов, мы решили использовать веб-фреймворк Django для разработки веб-приложения. Мы считаем, что функции Django, поддержка сообщества и возможности масштабирования делают его лучшим выбором для создания полноценного веб-приложения. Мы обучим наших разработчиков использованию Django, чтобы фреймворк применялся эффективно и результативно.