Kodstil, docstrings och README
Kunna skriva kod och dokumentation som en annan person kan använda.
Förkunskaper
Intuition
Kod läses många fler gånger än den skrivs — ofta av dig själv, om tre månader, när du glömt allt.
Namn är den billigaste dokumentationen: antal_godkanda slår n2. Funktionsnamn ska vara verb (las_csv, berakna_medel).
Docstring förklarar vad och varför, inte hur (det syns i koden):
def medel(varden, ignorera_tomma=False):
"""Medelvärde av varden.
Tom lista lyfter ValueError om inte ignorera_tomma=True (då 0.0).
Används av rapporten, som inte får krascha på tomma grupper.
"""
Kommentarer ska förklara det oväntade: varför står det + 1e-8 här? Inte # öka i med 1.
Kod
En README som räcker — fem rubriker:
# Projektnamn
En mening om vad det gör och för vem.
## Installation
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
## Användning
python -m minapp.cli --data data/train.csv --out rapport.md
## Utveckling
pytest -q # tester
ruff check . # linter
ruff format . # formatterare
## Begränsningar
Hanterar bara svensk text; max 100 MB indata.
Verktyg gör resten automatiskt: ruff format (eller black) formaterar likadant varje gång — då slutar diffar handla om mellanslag. ruff check hittar oanvända importer, odefinierade namn och vanliga misstag. Kör båda i CI så behöver ingen tjata om stil i kodgranskningen.
Behärskning innebär
- Skriver läsbara namn och docstrings
- Skriver en README som räcker för att komma igång
- Använder formatterare och linter
Logga in för att göra övningarna och bygga upp din behärskning.