Web M&M
https://mam.matfyz.cz
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
2.6 KiB
87 lines
2.6 KiB
3 days ago
|
Zkratky aplikací ve zdrojácích
|
||
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||
|
|
||
|
Ve zdrojácích (zejména různé ``models.py``, ``views.py`` ap.) používáme spoustu
|
||
|
modelů. Někdy je praktičtější / někdo preferuje importovat celou aplikaci jako
|
||
|
jedno jméno a používat modely bez explicitních importů, tj::
|
||
|
|
||
|
# „hromadné“ importy:
|
||
|
import personalni.models as p
|
||
|
...
|
||
|
p.Organizator.objects.all()
|
||
|
|
||
|
# „explicitní“ importy:
|
||
|
from personalni.models import Organizator
|
||
|
...
|
||
|
Organizator.objects.all()
|
||
|
|
||
|
Na webschůzce 2024-11-05 jsme na toto téma otevřeli diskusi, tady je její závěr.
|
||
|
|
||
|
.. admonition:: Historické okénko
|
||
|
:class: note
|
||
|
|
||
|
Kdysi jsme měli (prakticky) všechny modely v jedné aplikaci, ``seminar``. Na
|
||
|
různých místech se pak ``seminar.models`` importovalo typicky jako ``s``
|
||
|
nebo jako ``m``.
|
||
|
|
||
|
Přirozeně, toto už nejde tak snadno, protože už neexistuje jedno místo, ze
|
||
|
kterého chceme tahat modely v kódu.
|
||
|
|
||
|
Konvence
|
||
|
========
|
||
|
|
||
|
Shodli jsme se, že nám rozhodně nevadí explicitní importy a z pohledu
|
||
|
čitelnosti je preferujeme. Nicméně při psaní kódu to některým webařům přijde
|
||
|
nepohodlné, takže očekáváme, že bude existovat spousta kódu, která bude chtít
|
||
|
importovat hromadně. Usnesli jsme se proto na následujících kanonických
|
||
|
zkratkách, aby se aplikace alespoň zkracovaly konzistentně.
|
||
|
|
||
|
V závorkách je uvedené případné jméno, ale nepředpokládáme, že někdo bude danou
|
||
|
aplikaci chtít importovat hromadně. Některé aplikace zkratku nemají, ty se
|
||
|
importují vždy pod plným jménem nebo explicitně.
|
||
|
|
||
|
.. list-table::
|
||
|
:header-rows: 1
|
||
|
|
||
|
* - Model
|
||
|
- Zkratka
|
||
|
* - ``aesop``
|
||
|
- ---
|
||
|
* - ``api``
|
||
|
- --- (``api``)
|
||
|
* - ``galerie``
|
||
|
- ``g``
|
||
|
* - ``header_fotky``
|
||
|
- --- (``hdr``)
|
||
|
* - ``korektury``
|
||
|
- ``kor``
|
||
|
* - ``novinky``
|
||
|
- ``nov``
|
||
|
* - ``odevzdavatko``
|
||
|
- ``odev``
|
||
|
* - ``personální``
|
||
|
- ``pers``/``p``
|
||
|
* - ``sifrovacka``
|
||
|
- (``sifr``)
|
||
|
* - ``soustredeni``
|
||
|
- ``sou``
|
||
|
* - ``treenode``
|
||
|
- ``tn``
|
||
|
* - ``tvorba``
|
||
|
- ``tv``
|
||
|
* - ``various``
|
||
|
- ``v``/``var``
|
||
|
* - ``vyroci``
|
||
|
- ---
|
||
|
* - ``vysledkovky``
|
||
|
- ``vysl``
|
||
|
|
||
|
|
||
|
.. admonition:: O všech modelech pod jedním jménem
|
||
|
:class: warning
|
||
|
|
||
|
Historické okénko výš zatajuje jeden detail: Při práci v shellu se hodí mít
|
||
|
modely k dispozici a nemuset přemýšlet nad dělením do aplikací, takže ve
|
||
|
skutečnosti existuje ``mamweb.vsechno``, jenž všechny modely obsahuje.
|
||
|
Z čitelnostních důvodů je ale *zakázáno* tento modul používat v kódu.
|