Architecture Decision Record

Active theme: Light

← Primjeri zapisa odluka

Zapis arhitekturne odluke za okvir Python Django

Datum odluke: 2021-07-15

Status: Prihvaćeno

Kontekst

Naša organizacija planira razviti web aplikaciju koja upravlja podacima o kupcima. Odabrali smo Python kao programski jezik i razmatramo Django kao web okvir za razvoj aplikacije.

Odluka

Odlučili smo koristiti web okvir Django za razvoj web aplikacije. Django pruža robustan skup alata i značajki za brzu i učinkovitu izradu web aplikacija.

Čimbenici

Neki od čimbenika koji su utjecali na našu odluku uključuju:

  1. Objektno-relacijsko mapiranje (ORM): Django ima ugrađen ORM koji nam omogućuje interakciju s bazom podataka bez pisanja SQL upita. To olakšava razvoj aplikacije i njezino dugoročno održavanje.

  2. Okvir MVC: Django slijedi arhitekturu Model-View-Controller (MVC), što olakšava odvajanje poslovne logike i prezentacijskog sloja aplikacije.

  3. Skalabilnost: Django je poznat po svojim mogućnostima skaliranja, što ga čini izvrsnim izborom za razvoj velikih aplikacija.

  4. Sigurnost: Django ima ugrađene sigurnosne značajke, poput zaštite od uobičajenih web napada kao što su cross-site scripting (XSS) i SQL injection.

  5. Podrška zajednice: Django ima veliku i aktivnu zajednicu koja pruža podršku i doprinosi razvoju okvira.

Razmatrane alternative

Razmatrali smo druge web okvire poput Flaska i Pyramida. Međutim, utvrdili smo da je Django zreliji i etabliraniji okvir s robustnim skupom značajki.

Raspravljali smo i o razvoju aplikacije bez web okvira, uz korištenje biblioteka poput SQLAlchemyja i Flask-RESTfula. Međutim, utvrdili smo da Django nudi širu funkcionalnost, što ga čini boljim izborom za potpunu web aplikaciju.

Posljedice

Usvajanje Djanga dovest će do sljedećih posljedica:

  1. Lakši razvoj i održavanje aplikacije zahvaljujući Djangovim ugrađenim alatima i značajkama.

  2. Odvajanje poslovne logike i prezentacijskog sloja, što vodi organiziranijem kodu koji je lakše održavati.

  3. Skalabilnost i robusnost aplikacije.

  4. Ugrađene sigurnosne značajke koje pomažu zaštititi aplikaciju od uobičajenih web napada.

  5. Pristup velikoj i aktivnoj zajednici za podršku.

Razumijemo da Django ima strmiju krivulju učenja od drugih okvira, ali smatramo da se ulaganje isplati zbog dugoročnih koristi koje pruža.

Zaključak

Na temelju razmatranih čimbenika odlučili smo koristiti web okvir Django za razvoj web aplikacije. Vjerujemo da značajke, podrška zajednice i mogućnosti skaliranja Djanga čine ga najboljim izborom za izradu potpune web aplikacije. Obučit ćemo svoje programere za korištenje Djanga kako bismo osigurali da se okvir koristi učinkovito i djelotvorno.