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 має вбудовані можливості безпеки, як-от захист від поширених вебатак, наприклад міжсайтового скриптингу (XSS) та SQL-ін’єкцій.

  5. Підтримка спільноти: Django має велику й активну спільноту, яка надає підтримку та робить внесок у розробку фреймворку.

Розглянуті альтернативи

Ми розглядали інші вебфреймворки, як-от Flask і Pyramid. Проте ми виявили, що Django — зріліший і усталеніший фреймворк із надійним набором можливостей.

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

Наслідки

Впровадження Django призведе до таких наслідків:

  1. Легша розробка та супровід застосунку завдяки вбудованим інструментам і можливостям Django.

  2. Розділення бізнес-логіки та шару представлення, що веде до більш організованого й легшого в супроводі коду.

  3. Масштабованість і надійність застосунку.

  4. Вбудовані можливості безпеки, що допомагають захистити застосунок від поширених вебатак.

  5. Доступ до великої й активної спільноти для підтримки.

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

Висновок

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