Architecture Decision Record

Active theme: Light

← Przykłady rejestrów decyzji

Rejestr decyzji architektonicznych dla frameworka Python Django

Data decyzji: 2021-07-15

Status: Zaakceptowany

Kontekst

Nasza organizacja planuje opracować aplikację internetową do zarządzania danymi klientów. Jako język programowania wybraliśmy Python i rozważamy Django jako framework internetowy do tworzenia tej aplikacji.

Decyzja

Postanowiliśmy użyć frameworka internetowego Django do tworzenia aplikacji internetowej. Django zapewnia solidny zestaw narzędzi i funkcji do szybkiego i efektywnego budowania aplikacji internetowych.

Czynniki

Niektóre z czynników, które wpłynęły na naszą decyzję:

  1. Mapowanie obiektowo-relacyjne (ORM): Django ma wbudowany ORM, który pozwala komunikować się z bazą danych bez pisania zapytań SQL. Ułatwia to tworzenie aplikacji i jej utrzymanie w dłuższej perspektywie.

  2. Framework MVC: Django opiera się na architekturze Model-View-Controller (MVC), co ułatwia oddzielenie warstw logiki biznesowej i prezentacji aplikacji.

  3. Skalowalność: Django jest znany ze swoich możliwości skalowania, co czyni go doskonałym wyborem do tworzenia aplikacji na dużą skalę.

  4. Bezpieczeństwo: Django ma wbudowane funkcje bezpieczeństwa, takie jak ochrona przed typowymi atakami internetowymi, jak cross-site scripting (XSS) i wstrzykiwanie SQL.

  5. Wsparcie społeczności: Django ma dużą i aktywną społeczność, która zapewnia wsparcie i przyczynia się do rozwoju frameworka.

Rozważane alternatywy

Rozważaliśmy inne frameworki internetowe, takie jak Flask i Pyramid. Stwierdziliśmy jednak, że Django jest bardziej dojrzałym i ugruntowanym frameworkiem z solidnym zestawem funkcji.

Omawialiśmy też tworzenie aplikacji bez frameworka internetowego, z użyciem bibliotek takich jak SQLAlchemy i Flask-RESTful. Stwierdziliśmy jednak, że Django oferuje szerszą funkcjonalność, co czyni go lepszym wyborem dla kompletnej aplikacji internetowej.

Konsekwencje

Przyjęcie Django przyniesie następujące konsekwencje:

  1. Łatwiejsze tworzenie i utrzymanie aplikacji dzięki wbudowanym narzędziom i funkcjom Django.

  2. Oddzielenie logiki biznesowej od warstwy prezentacji, co prowadzi do bardziej uporządkowanego i łatwiejszego w utrzymaniu kodu.

  3. Skalowalność i solidność aplikacji.

  4. Wbudowane funkcje bezpieczeństwa, które pomagają chronić aplikację przed typowymi atakami internetowymi.

  5. Dostęp do dużej i aktywnej społeczności wsparcia.

Rozumiemy, że Django ma bardziej stromą krzywą uczenia się niż inne frameworki, ale uważamy, że warto w to zainwestować ze względu na długoterminowe korzyści.

Podsumowanie

Na podstawie rozważonych czynników postanowiliśmy użyć frameworka internetowego Django do tworzenia aplikacji internetowej. Wierzymy, że funkcje Django, wsparcie społeczności i możliwości skalowania czynią go najlepszym wyborem do budowy kompletnej aplikacji internetowej. Przeszkolimy naszych programistów w używaniu Django, aby framework był wykorzystywany skutecznie i efektywnie.