Skip to content

Kodekonvensjoner

Knut Andre Grytting Prestsveen edited this page Oct 7, 2019 · 1 revision

Kodekonvensjoner

Alt blir mye enklere om alle bruker samme standarder for koden sin.

Generelt

  • All kode, alle funksjoner, variabelnavn, klasser etc. skal navngis på engelsk.
  • Det er ikke et fast språk for kommentarer (enda), men de fleste er på norsk.
  • Ingen tabs. Bruk 4 spaces istedenfor. Hvordan fikse dette i Vim
  • Følg PEP 8 -- Style Guide for Python. Linjer lenger enn 79 tegn er greit om det øker lesbarheten kraftig, som f.eks. i models.py.
  • Kommenter det som ikke er opplagt. Docstrings/dokumentasjon skal være på Sphinx-format, slik at vi ved et senere tidspunkt kan generere dokumentasjon automatisk.

Views

  • Bruk class based views hvor det er hensiktsmessig. Eksempler hvor det er hensiktsmessig:

    • Enkel CRUD (Create, Read, Update, Delete).
    • Enkle sider generelt.
  • Sjekk hvor mange SQL queries koden din bruker om du har en liste over elementer. Ideelt sett burde 1-2 queries hente alt som er nødvendig. Om det kjøres en ekstra query for hvert element, som henter content_type, bruk select_related('content_type').

Templates

  • Template-filer skal ligge i nablaweb/templates/app-navn/, eventuelt i app-navn/templates/app-navn/ om du lager en app som står helt for seg selv, og enkelt kan gjenbrukes i andre prosjekter.
  • Templates som viser et enkelt objekt skal hete objekt_detail
  • Templates som viser en liste med objekter skal hete object_list
  • Bruk reverse. Ved å skrive {% url news_detail news.id %} fremfor /nyheter/{{ news.id}}-{{ news.slug }} blir det mye lettere å endre urls i ettertid.
Clone this wiki locally