Architecture Decision Record

Active theme: Light

← Enghreifftiau o gofnodion penderfyniadau

Cofnod penderfyniad saernïaeth ar gyfer fframwaith Python Django

Dyddiad y penderfyniad: 2021-07-15

Statws: Wedi'i dderbyn

Cyd-destun

Mae ein sefydliad yn bwriadu datblygu cymhwysiad gwe sy'n rheoli data cwsmeriaid. Rydym wedi dewis Python fel yr iaith raglennu ac rydym yn ystyried Django fel y fframwaith gwe ar gyfer datblygu'r cymhwysiad.

Penderfyniad

Rydym wedi penderfynu defnyddio fframwaith gwe Django ar gyfer datblygu'r cymhwysiad gwe. Mae Django yn darparu set gadarn o offer a nodweddion ar gyfer adeiladu cymwysiadau gwe yn gyflym ac yn effeithlon.

Ffactorau

Mae rhai o'r ffactorau a ddylanwadodd ar ein penderfyniad yn cynnwys:

  1. Mapio Gwrthrychol-Berthynol (ORM): Mae gan Django ORM adeiledig sy'n caniatáu i ni ryngweithio â'r gronfa ddata heb ysgrifennu ymholiadau SQL. Mae hyn yn ei gwneud hi'n haws datblygu'r cymhwysiad a'i gynnal yn y tymor hir.

  2. Fframwaith MVC: Mae Django yn dilyn saernïaeth Model-View-Controller (MVC), sy'n ei gwneud hi'n haws gwahanu haenau rhesymeg busnes a chyflwyno'r cymhwysiad.

  3. Graddadwyedd: Mae Django yn adnabyddus am ei alluoedd graddadwyedd, sy'n ei wneud yn ddewis ardderchog ar gyfer datblygu cymwysiadau ar raddfa fawr.

  4. Diogelwch: Mae gan Django nodweddion diogelwch adeiledig, fel amddiffyniad rhag ymosodiadau gwe cyffredin fel sgriptio traws-safle (XSS) a chwistrellu SQL.

  5. Cefnogaeth gan y gymuned: Mae gan Django gymuned fawr a gweithgar sy'n darparu cefnogaeth ac sy'n cyfrannu at ddatblygiad y fframwaith.

Dewisiadau amgen a ystyriwyd

Ystyriasom fframweithiau gwe eraill fel Flask a Pyramid. Fodd bynnag, canfuom fod Django yn fframwaith mwy aeddfed a sefydledig gyda set gadarn o nodweddion.

Trafodasom hefyd ddatblygu'r cymhwysiad heb fframwaith gwe a defnyddio llyfrgelloedd fel SQLAlchemy a Flask-RESTful. Fodd bynnag, canfuom fod Django yn cynnig swyddogaeth ehangach, sy'n ei wneud yn ddewis gwell ar gyfer cymhwysiad gwe cyflawn.

Canlyniadau

Bydd mabwysiadu Django yn arwain at y canlyniadau canlynol:

  1. Haws datblygu a chynnal y cymhwysiad oherwydd offer a nodweddion adeiledig Django.

  2. Gwahanu rhesymeg busnes a'r haen gyflwyno, gan arwain at god mwy trefnus a haws ei gynnal.

  3. Graddadwyedd a chadernid y cymhwysiad.

  4. Nodweddion diogelwch adeiledig sy'n helpu i amddiffyn y cymhwysiad rhag ymosodiadau gwe cyffredin.

  5. Mynediad at gymuned fawr a gweithgar am gefnogaeth.

Rydym yn deall bod gan Django gromlin ddysgu fwy serth na fframweithiau eraill, ond credwn ei bod yn werth y buddsoddiad ar gyfer y manteision hirdymor y mae'n eu darparu.

Casgliad

Ar sail y ffactorau a ystyriwyd, rydym wedi penderfynu defnyddio fframwaith gwe Django ar gyfer datblygu'r cymhwysiad gwe. Credwn mai nodweddion Django, cefnogaeth y gymuned, a'i alluoedd graddadwyedd yw'r dewis gorau ar gyfer adeiladu cymhwysiad gwe cyflawn. Byddwn yn hyfforddi ein datblygwyr i ddefnyddio Django i sicrhau bod y fframwaith yn cael ei ddefnyddio'n effeithiol ac yn effeithlon.