Architecture Decision Record

Active theme: Light

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

Запис на архитектурно решение за рамката Python Django

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

Състояние: Прието

Контекст

Нашата организация планира да разработи уеб приложение, което управлява данни на клиенти. Избрахме Python като език за програмиране и разглеждаме Django като уеб рамка за разработката на приложението.

Решение

Решихме да използваме уеб рамката Django за разработката на уеб приложението. Django предоставя стабилен набор от инструменти и функции за бързо и ефективно изграждане на уеб приложения.

Фактори

Някои от факторите, повлияли на нашето решение, включват:

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

  2. Рамка MVC: Django следва архитектурата Model-View-Controller (MVC), което улеснява разделянето на бизнес логиката и презентационния слой на приложението.

  3. Мащабируемост: Django е известна със своите възможности за мащабиране, което я прави отличен избор за разработване на мащабни приложения.

  4. Сигурност: Django има вградени функции за сигурност, като защита срещу често срещани уеб атаки като cross-site scripting (XSS) и SQL injection.

  5. Поддръжка от общността: Django има голяма и активна общност, която предоставя поддръжка и допринася за развитието на рамката.

Разгледани алтернативи

Разгледахме други уеб рамки като Flask и Pyramid. Установихме обаче, че Django е по-зряла и по-утвърдена рамка със стабилен набор от функции.

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

Последици

Приемането на Django ще доведе до следните последици:

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

  2. Разделяне на бизнес логиката и презентационния слой, което води до по-организиран и по-лесен за поддръжка код.

  3. Мащабируемост и стабилност на приложението.

  4. Вградени функции за сигурност, които помагат да се защити приложението от често срещани уеб атаки.

  5. Достъп до голяма и активна общност за поддръжка.

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

Заключение

Въз основа на разгледаните фактори решихме да използваме уеб рамката Django за разработката на уеб приложението. Вярваме, че функциите, поддръжката от общността и възможностите за мащабиране на Django я правят най-добрия избор за изграждане на пълноценно уеб приложение. Ще обучим разработчиците си да използват Django, за да гарантираме, че рамката се използва ефективно и резултатно.