Verbeter onze Pair Programming met Effectieve Code Documentatie en Commentaar
description
Met deze prompt leer je hoe je tijdens pair programming samen duidelijke en nuttige documentatie en commentaar schrijft, wat leidt tot betere samenwerking, minder misverstanden en eenvoudiger onderhoud van de code. Dit is effectiever dan alleen focussen op codekwaliteit zonder goede uitleg, omdat het ook kennisoverdracht bevordert.
prompt
Help mij onze pair programming sessies te verbeteren door samen te werken aan het schrijven van duidelijke en nuttige code documentatie en commentaar. Beschrijf mijn huidige documentatiepraktijk: ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Uw huidige documentatiepraktijk bestaat uit het toevoegen van korte commentaarregels bij functies zonder verdere uitleg. Dit is een goede eerste stap, maar er is ruimte voor verbetering om de leesbaarheid, begrijpelijkheid en onderhoudbaarheid van uw code te vergroten.
Hier zijn enkele suggesties om dit te verbeteren:
1. Uitgebreide functiedocumentatie:
- Voeg docstrings toe boven functies waarin je uitlegt wat de functie doet, welke parameters ze verwacht, wat de terugkeerwaarde is en eventuele bijwerkingen of uitzonderingen.
- Bijvoorbeeld:
```python
def bereken_totaal(prijzen):
"""
Bereken het totaalbedrag van een lijst prijzen.
Parameters:
prijzen (list of float): Een lijst met prijswaarden.
Returns:
float: Het totaalbedrag van alle prijzen.
"""
```
2. Gebruik van inline commentaar:
- Voeg korte, duidelijke inline commentaren toe op complexe of niet vanzelfsprekende codeblokken om de logica uit te leggen.
- Vermijd overmatig commentaar op eenvoudige regels, focus op de intentie of complexe delen.
3. Consistente stijl en taalgebruik:
- Gebruik een consistente stijl voor je commentaar en documentatie (bijvoorbeeld PEP 8 voor Python).
- Schrijf alle documentatie in dezelfde taal en op een formele, duidelijke manier.
4. Beschrijf belangrijke ontwerpkeuzes:
- Leg uit waarom bepaalde implementaties of oplossingen gekozen zijn, vooral als ze niet direct duidelijk zijn.
5. Maak gebruik van duidelijke naamgeving:
- Zorg dat variabelen, functies en klassen duidelijke, beschrijvende namen hebben zodat extra documentatie minder nodig is.
6. Documenteer modules en klassen:
- Voeg module- en klasdokumentatie toe waarin je de algemene structuur en het doel beschrijft.
Door deze verbeteringen door te voeren, wordt jullie code niet alleen gemakkelijker te begrijpen en te onderhouden, maar ook efficiënter te ontwikkelen en samen te werken.
provider: deepseek
model: deepseek-chat
Zeker, ik help je graag om jullie documentatiepraktijken naar een hoger niveau te tillen. Hierbij een analyse en concrete suggesties:
**Analyse van jullie huidige praktijk:**
Jullie huidige aanpak van korte function comments is een begin, maar het mist context, doel en details die essentieel zijn voor onderhoud en samenwerking. Dit kan leiden tot:
- Onduidelijkheid over de bedoeling van complexe logica
- Moeilijkere onboarding van nieuwe teamleden
- Tijdverlies bij het terugzoeken van de oorspronkelijke logica
**Verbetersuggesties:**
1. **Gebruik docstring-formaat voor functies**
```python
def bereken_totaal(prijzen: list, btw_percentage: float) -> float:
"""
Bereken het totaalbedrag inclusief BTW van een lijst met prijzen.
Args:
prijzen: Lijst met bedragen (float) zonder BTW
btw_percentage: BTW percentage als decimaal (bijv. 0.21 voor 21%)
Returns:
Totaalbedrag inclusief BTW afgerond op 2 decimalen
Raises:
ValueError: Als prijzen-lijst leeg is of negatieve waarden bevat
"""
```
2. **Voeg "waarom" commentaar toe, niet alleen "wat"**
```python
# Slecht:
x += 1 # Verhoog x met 1
# Beter:
x += 1 # Compenseer voor zero-based indexing in de externe API
```
3. **Documenteer complexe algoritmes met voorbeelden**
```python
def sorteer_gebruikers(gebruikers: list) -> list:
"""
Sorteer gebruikers op prioriteit: actieve admins eerst, dan actieve gebruikers, dan inactieven.
Example:
Input: [{'actief': True, 'admin': False}, {'actief': True, 'admin': True}]
Output: [{'actief': True, 'admin': True}, {'actief': True, 'admin': False}]
"""
```
4. **Maak gebruik van type hints (Python) of TypeScript types**
```typescript
// Duidelijkere signatuur door type informatie
const formatteerDatum = (datum: Date, formaat: 'nl-NL' | 'en-US'): string => {
// Implementatie
}
```
5. **Creëer een consistente documentatiestandaard**
- Kies een stijl (Google, NumPy, JSDoc) en houd deze consistent
- Documenteer edge cases en uitzonderingen
- Vermeld wijzigingsgeschiedenis bij complexe functies
6. **Gebruik tools voor automatische documentatie**
- Sphinx (Python)
- JSDoc (JavaScript)
- Swagger/OpenAPI voor API endpoints
**Praktische volgende stappen voor jullie pairing sessies:**
1. Besteed de laatste 10 minuten aan documentatie-review
2. Wijs een "documentatie-verantwoordelijke" per sessie aan
3. Gebruik de "vijf minuten regel": als iets langer dan 5 minuten uitleg nodig heeft, verdient het documentatie
**Voorbeeld van voor/na:**
**Voor:**
```python
def calc_total(prices):
# Bereken totaal
return sum(prices) * 1.21
```
**Na:**
```python
def bereken_totaal_inclusief_btw(prijzen: list[float]) -> float:
"""
Bereken het totaalbedrag inclusief 21% BTW.
Args:
prijzen: Lijst van bedragen exclusief BTW
Returns:
Totaalbedrag inclusief BTW, afgerond op 2 decimalen
Example:
>>> bereken_totaal_inclusief_btw([10.0, 20.0])
36.30
"""
if not prijzen:
return 0.0
totaal_exclusief = sum(prijzen)
return round(totaal_exclusief * 1.21, 2)
```
Door deze aanpak te implementeren, zullen jullie niet alleen betere code schrijven, maar ook elkaars werk beter begrijpen en minder tijd besteden aan het ontcijferen van bestaande code.