Architecture Decision Record

Active theme: Light

← Eżempji ta' rekords ta' deċiżjoni

Rekord ta' deċiżjoni arkitettonika għall-qafas Python Django

Data tad-Deċiżjoni: 2021-07-15

Stat: Aċċettat

Kuntest

L-organizzazzjoni tagħna qed tippjana li tiżviluppa applikazzjoni tal-web li timmaniġġja d-data tal-klijenti. Għażilna Python bħala l-lingwa tal-programmazzjoni u qed nikkunsidraw Django bħala l-qafas tal-web għall-iżvilupp tal-applikazzjoni.

Deċiżjoni

Iddeċidejna li nużaw il-qafas tal-web Django għall-iżvilupp tal-applikazzjoni tal-web. Django jipprovdi sett robust ta' għodod u karatteristiċi għall-bini ta' applikazzjonijiet tal-web malajr u b'mod effiċjenti.

Fatturi

Wħud mill-fatturi li influwenzaw id-deċiżjoni tagħna jinkludu:

  1. Object-Relational Mapping (ORM): Django għandu ORM integrat li jippermettilna nintaraġixxu mad-database mingħajr ma niktbu mistoqsijiet SQL. Dan jagħmilha eħfef biex tiġi żviluppata l-applikazzjoni u miżmuma fit-tul.

  2. Qafas MVC: Django isegwi arkitettura Model-View-Controller (MVC), u dan jagħmilha eħfef biex jinfirdu s-saffi tal-loġika tan-negozju u tal-preżentazzjoni tal-applikazzjoni.

  3. Skalabbiltà: Django huwa magħruf għall-kapaċitajiet ta' skalabbiltà tiegħu, u dan jagħmlu għażla eċċellenti għall-iżvilupp ta' applikazzjonijiet fuq skala kbira.

  4. Sigurtà: Django għandu karatteristiċi ta' sigurtà integrati, bħal protezzjoni minn attakki komuni fuq il-web bħal cross-site scripting (XSS) u SQL injection.

  5. Appoġġ tal-komunità: Django għandu komunità kbira u attiva li tipprovdi appoġġ u tikkontribwixxi għall-iżvilupp tal-qafas.

Alternattivi kkunsidrati

Ikkunsidrajna frameworks oħra tal-web bħal Flask u Pyramid. Madankollu, sibna li Django huwa qafas aktar matur u stabbilit sew b'sett robust ta' karatteristiċi.

Iddiskutejna wkoll l-iżvilupp tal-applikazzjoni mingħajr qafas tal-web u bl-użu ta' librerijiet bħal SQLAlchemy u Flask-RESTful. Madankollu, sibna li Django joffri funzjonalità usa', u dan jagħmlu għażla aħjar għal applikazzjoni tal-web kompluta.

Konsegwenzi

L-adozzjoni ta' Django se twassal għall-konsegwenzi li ġejjin:

  1. Aktar faċli li tiġi żviluppata u miżmuma l-applikazzjoni minħabba l-għodod u l-karatteristiċi integrati ta' Django.

  2. Separazzjoni tal-loġika tan-negozju u tas-saff tal-preżentazzjoni, li twassal għal kodiċi aktar organizzat u eħfef biex jinżamm.

  3. Skalabbiltà u robustezza tal-applikazzjoni.

  4. Karatteristiċi ta' sigurtà integrati li jgħinu jipproteġu l-applikazzjoni minn attakki komuni fuq il-web.

  5. Aċċess għal komunità kbira u attiva għall-appoġġ.

Nifhmu li Django għandu kurva tat-tagħlim aktar wieqfa minn frameworks oħra, iżda nsibu li jiswa l-investiment għall-benefiċċji fit-tul li jipprovdi.

Konklużjoni

Abbażi tal-fatturi kkunsidrati, iddeċidejna li nużaw il-qafas tal-web Django għall-iżvilupp tal-applikazzjoni tal-web. Aħna nemmnu li l-karatteristiċi ta' Django, l-appoġġ tal-komunità, u l-kapaċitajiet ta' skalabbiltà jagħmluh l-aħjar għażla għall-bini ta' applikazzjoni tal-web kompluta. Se nħarrġu lill-iżviluppaturi tagħna jużaw Django biex niżguraw li l-qafas jintuża b'mod effettiv u effiċjenti.