---
title: "Fealsúnacht dearadh"
version: 6.0
locale: ga
source: https://docs.djangoproject.com/ga/6.0/misc/design-philosophies/
canonical: https://djangodocs.dev/ga/6.0/misc/design-philosophies/
---
# Fealsúnacht dearadh

Míníonn an doiciméad seo cuid de na fealsúnachtaí bunúsacha a d'úsáid forbróirí Django chun an creat a chruthú. Is é an sprioc atá aige ná an t-am atá caite a mhíniú agus an todhchaí a threorú.

## Foriomlán

### Cúplála scaoilte

Sprioc bhunúsach de chruach Django is ea [cúpláil scaoilte agus comhtháthú daingean](https://wiki.c2.com/?CouplingAndCohesion). Níor cheart go mbeadh "eolas" ag sraitheanna éagsúla an chreata ar a chéile mura rud é go bhfuil géarghá leis.

Mar shampla, níl aon rud ar eolas ag an gcóras teimpléid faoi iarratais gréasáin, níl aon rud ar eolas ag ciseal an bhunachair shonraí faoi thaispeántas sonraí agus is cuma leis an gcóras amhairc cén córas teimpléid a úsáideann ríomhchláraitheoir.

Cé go dtagann Django le stack iomlán le haghaidh áise, tá píosaí an chruach neamhspleách ar cheann eile nuair is féidir.

### Lúide cód

Ba cheart go n-úsáidfeadh apps Django chomh beag cód agus is féidir; ba chóir go mbeadh easpa pláta coire orthu. Ba cheart do Django leas iomlán a bhaint as cumais dhinimiciúla Python, mar shampla introspection.

### Forbairt tapa

Is é an pointe a bhaineann le creat gréasáin sa 21ú haois ná na gnéithe tedious d'fhorbairt gréasáin a dhéanamh go tapa. Ba cheart go gceadódh Django forbairt gréasáin thar a bheith gasta.

### Ná déan athrá ort féin (TIRIM)

Ba cheart go mbeadh gach coincheap agus/nó píosa sonraí ar leith beo in aon áit amháin, agus in áit amháin. Is olc an iomarcaíocht. Tá normalú go maith.

Ba cheart don chreat, laistigh de chúis, an oiread agus is féidir a bhaint as a laghad agus is féidir.

> **See also**
>
> An [plé ar an bprionsabal TIRIM ar an Taisclann Patrún Portland](https://wiki.c2.com/?DontRepeatYourself)

### Is fearr soiléir ná intuigthe

Is prionsabal lárnach Python é seo atá liostaithe i [**PEP 20**](https://peps.python.org/pep-0020/), agus ciallaíonn sé nár cheart do Django an iomarca "draíochta." Níor cheart go dtarlódh draíocht mura bhfuil cúis mhaith leis. Is fiú draíocht a úsáid ach amháin má chruthaíonn sé áis ollmhór nach féidir a bhaint amach ar bhealaí eile, agus nach gcuirtear i bhfeidhm é ar bhealach a chuireann mearbhall ar fhorbróirí atá ag iarraidh a fháil amach conas an ghné a úsáid.

### Comhsheasmhacht

Ba cheart go mbeadh an creat comhsheasmhach ar gach leibhéal. Baineann comhsheasmhacht le gach rud ó leibhéal íseal (an stíl códaithe Python a úsáidtear) go dtí ardleibhéal (an "taithí" ar Django a úsáid).

## Múnlaí

### Is fearr soiléir ná intuigthe

Níor cheart go nglacfadh réimsí le hiompraíochtaí áirithe bunaithe ar ainm na páirce amháin. Éilíonn sé seo an iomarca eolais ar an gcóras agus seans maith go mbeidh earráidí ann. Ina áit sin, ba cheart go mbeadh iompraíochtaí bunaithe ar argóintí eochairfhocail agus, i gcásanna áirithe, ar an gcineál réimse.

### Cuir san áireamh gach loighic fearainn ábhartha

Ba chóir go gcuimseodh samhlacha gach gné de "réad," ag leanúint patrún dearaidh [Taifead Gníomhach](https://www.martinfowler.com/eaaCatalog/activeRecord.html) Martin Fowler.

Sin é an fáth a sainmhínítear na sonraí arna léiriú ag samhail agus faisnéis faoi (a hainm inléite ag an duine, roghanna mar ordú réamhshocraithe, etc.) san aicme mhúnla; ba chóir an fhaisnéis go léir a theastaíonn chun mionsamhail ar leith a thuiscint a stóráil sa mhionsamhail.

## Bunachar Sonraí API

Is iad príomhspriocanna an API bunachar sonraí:

### Éifeachtúlacht SQL

Ba cheart dó ráitis SQL a fhorghníomhú chomh beag agus is féidir, agus ba cheart dó ráitis a bharrfheabhsú go hinmheánach.

Sin é an fáth gur gá d'fhorbróirí `save()` a ghlaoch go sainráite, seachas an creat a shábháil rudaí taobh thiar de na radhairc go ciúin.

Sin é an fáth freisin go bhfuil an modh ````select_related()```QuerySet```` ann. Is teanndáileog feidhmíochta roghnach é don chás coitianta "gach rud gaolmhar" a roghnú.

### Terse, comhréir chumhachtach

Ba cheart go gceadódh API an bhunachair sonraí ráitis shaibhre léiritheacha chomh beag comhréire agus is féidir. Níor cheart go mbeadh sé ag brath ar mhodúil eile nó ar rudaí cabhrach a allmhairiú.

Ba chóir siúntaí a dhéanamh go huathoibríoch, taobh thiar de na radhairc, nuair is gá.

Ba cheart go mbeadh gach réad in ann rochtain a fháil ar gach réad gaolmhar, ar fud an chórais. Ba cheart go n-oibreodh an rochtain seo ar an dá bhealach.

### Rogha chun titim isteach i SQL amh go héasca, nuair is gá

Ba cheart go n-aithneodh API an bhunachair sonraí gur aicearra é ach ní gá gur rud deireadh é. Ba cheart go n-éascódh an creat ráitis shaincheaptha SQL -- ráitis iomlána a scríobh, nó clásail saincheaptha \`\` WHERE\`\` mar pharaiméadair saincheaptha do ghlaonna API.

## Dearadh URL

### Cúplála scaoilte

Níor cheart URLanna in aip Django a chúpláil leis an mbunchód Python. Rud Droch agus Gránna is ea URLanna a cheangal le hainmneacha feidhm Python.

Mar an gcéanna, ba cheart go gceadódh córas URL Django URLanna don app céanna a bheith difriúil i gcomhthéacsanna éagsúla. Mar shampla, féadfaidh suíomh amháin scéalta a chur ag `/scéalta/`, agus féadfaidh suíomh eile `/nuacht/` a úsáid.

### Solúbthacht gan teorainn

Ba cheart go mbeadh URLanna chomh solúbtha agus is féidir. Ba cheart aon dearadh URL infhaighte a cheadú.

### Spreag na cleachtais is fearr

Ba cheart go ndéanfadh an creat é chomh héasca (nó níos fusa fós) d’fhorbróir URLanna áille a dhearadh ná na cinn ghránna.

Ba cheart síntí comhaid i URLanna leathanaigh ghréasáin a sheachaint.

Tá pionós trom tuillte ag camóga ar nós vignette i URLanna.

### URLanna cinntitheacha

Go teicniúil, is dhá URL dhifriúla iad \`\` foo.com/bar\`\` agus \`\` foo.com/bar/, agus déileálfadh róbait inneall cuardaigh (agus roinnt uirlisí anailíse tráchta gréasáin) leo mar leathanaigh ar leith. Ba cheart do Django iarracht a dhéanamh URLanna a "normalú" ionas nach gcuirfí mearbhall ar róbait inneall cuardaigh.

Seo é an réasúnaíocht taobh thiar den socrú [`APPEND_SLASH`](/ga/6.0/ref/settings/#std-setting-APPEND_SLASH).

## Córas teimpléad

### Loighic a scaradh ón gcur i láthair

Feicimid córas teimpléid mar uirlis a rialaíonn cur i láthair agus loighic a bhaineann le cur i láthair -- agus sin é. Níor cheart go dtacódh an córas teimpléad le feidhmiúlacht a théann thar an mbunsprioc seo.

### Díspreagadh iomarcaíocht

Úsáideann formhór na suíomhanna gréasáin dinimiciúla dearadh comónta ar fud an tsuímh de shaghas éigin - ceanntásc coiteann, buntásc, barra nascleanúna, etc. Ba cheart go n-éascódh córas teimpléid Django na heilimintí sin a stóráil in aon áit amháin, rud a chuirfeadh deireadh le cód dúblach.

Seo í an fhealsúnacht taobh thiar de .

### Déan é a dhíchúpláil ó HTML

Níor cheart an córas teimpléid a dhearadh sa chaoi is nach n-aschuireann sé ach HTML. Ba cheart go mbeadh sé chomh maith céanna ag cruthú formáidí téacs-bhunaithe eile, nó gnáth-théacs amháin.

### Níor cheart XML a úsáid le haghaidh teangacha teimpléid

Trí inneall XML a úsáid chun teimpléid a pharsáil, tugtar isteach domhan iomlán nua earráide daonna in eagarthóireacht teimpléid -- agus tabhaítear leibhéal do-ghlactha forchostais i bpróiseáil teimpléad.

### Glac leis inniúlacht dearthóir

Níor cheart an córas teimpléid a dhearadh sa chaoi is go dtaispeánfar teimpléid go deas in eagarthóirí WYSIWYG ar nós Dreamweaver. Is teorannú ró-dhian é sin agus ní ligfeadh sé don chomhréir a bheith chomh deas agus atá sé. Tá Django ag súil go mbeidh údair teimpléid compordach ag eagarthóireacht HTML go díreach.

### Caitheamh spás bán ar ndóigh

Níor cheart don chóras teimpléad rudaí draíochta a dhéanamh le spás bán. Má tá spás bán i dteimpléad, ba cheart go gcaithfeadh an córas leis an spás bán mar a dhéileálann sé le téacs -- ní gá ach é a thaispeáint. Ba cheart spás bán ar bith nach bhfuil i gclib teimpléad a thaispeáint.

### Ná ceapadh teanga ríomhchlárúcháin

Ní hé an sprioc teanga ríomhchlárúcháin a chumadh. Is é an sprioc gan ach go leor feidhmiúlacht ríomhchlárúcháin a thairiscint, mar bhrainse agus lúbadh, atá riachtanach chun cinntí a bhaineann le cur i láthair a dhéanamh. Tá sé mar aidhm ag an [Teanga Teimpléad Django (DTL)](/ga/6.0/topics/templates/#template-language-intro) ard-loighic a sheachaint.

### Sábháilteacht agus slándáil

Ba cheart go gcuirfeadh an córas teimpléad, as an mbosca, cosc ​​ar chód mailíseach a áireamh -- mar orduithe a scriosann taifid bhunachar sonraí.

Is cúis eile é seo nach gceadaíonn an córas teimpléad cód treallach Python.

### Leathnú

Ba cheart go n-aithneodh an córas teimpléad go mb’fhéidir gur mhaith le húdair ardteimpléid a dteicneolaíocht a leathnú.

Is é seo an fhealsúnacht taobh thiar de chlibeanna agus scagairí teimpléid saincheaptha.

## Radhairc

### Simplíocht

Ba chóir go mbeadh scríobh tuairim chomh simplí le feidhm Python a scríobh. Níor cheart go mbeadh ar fhorbróirí rang a chur ar an toirt nuair a dhéanfaidh feidhm.

### Úsáid rudaí iarratais

Ba cheart go mbeadh rochtain ag radhairc ar oibiacht iarratais -- réad a stórálann meiteashonraí faoin iarratas reatha. Ba cheart an réad a chur ar aghaidh go díreach chuig feidhm amhairc, seachas go mbeadh ar an bhfeidhm radhairc rochtain a fháil ar shonraí an iarratais ó athróg dhomhanda. Fágann sé seo go bhfuil sé éadrom, glan agus éasca le tuairimí a thástáil trí rudaí iarratais "falsa" a chur isteach.

### Cúplála scaoilte

Níor cheart go mbeadh cuma ar an tuairim cén córas teimpléid a úsáideann an forbróir -- nó fiú an n-úsáidtear córas teimpléid ar chor ar bith.

### Déan idirdhealú idir GET agus POST

tá GET agus POST ar leith; ba cheart d'fhorbróirí ceann amháin nó an ceann eile a úsáid go sainráite. Ba cheart go n-éascódh an creat idirdhealú a dhéanamh idir sonraí GET agus POST.

## Chreat Cache

Is iad príomhspriocanna Django's [creat taisce](/ga/6.0/topics/cache/):

### Lúide cód

A cache should be as fast as possible. Hence, all framework code surrounding
the cache backend should be kept to the absolute minimum, especially for
`get()` operations.

### Comhsheasmhacht

Ba cheart go soláthródh an API taisce comhéadan comhsheasmhach thar na haiséilí éagsúla taisce.

### Leathnú

Ba cheart go mbeadh an API taisce insínte ag leibhéal an fheidhmchláir bunaithe ar riachtanais an fhorbróra (mar shampla, féach : ref: cache\_key\_transformation).
