Att skapa effektiva CLAUDE.md-filer

Mjukvaruutveckling med Claude Code

Dani Zysman

AI Curriculum Manager @ DataCamp

Bästa praxis för CLAUDE.md

  • Börja med /init, sedan iterera
    • Lägg till kontext när Claude gör misstag
    • Inkludera ändringar i konventioner
  • Mål: Ett levande dokument som utvecklas med ditt projekt
Mjukvaruutveckling med Claude Code

Projektet hittills

music-analytics-api/
  app.py           # Programmets startpunkt
  routes.py        # API-slutpunkter
  models.py        # Artist-/Album-modeller
  analytics.py     # Statistikfunktioner
  middleware.py    # Loggning av förfrågningar
  config.py        # Sessionsinställningar
  CLAUDE.md        # <- Projektets minnesfil
Mjukvaruutveckling med Claude Code

Vad som är IN och UT i CLAUDE.md

recraft: Vad som ska inkluderas respektive utelämnas i CLAUDE.md

Regel: Om det är längre än en post-it-lapp hör det inte hemma där.

Mjukvaruutveckling med Claude Code

Iterera på CLAUDE.md

> Lägg till felhantering för /artists-slutpunkten.
Klart. Jag har lagt till felhantering för /artists (routes.py:9-19):
- Try-except-block som omsluter hämtning och serialisering
- AttributeError-hanterare om datalagret inte är initierat
- Generell undantagshanterare som returnerar felinformation med statuskod 500

return jsonify({'error': f'Failed to retrieve artists: {str(e)}'}), 500
> Exponera inte undantagsinformation för användare, det är en säkerhetsrisk. Logga internt 
och returnera ett generiskt meddelande.  Uppdatera CLAUDE.md.
Uppdaterade /artists så att fel loggas internt och ett generiskt 
500-meddelande returneras. CLAUDE.md uppdaterades med konventionen: 
exponera aldrig undantagsinformation i svar.
Mjukvaruutveckling med Claude Code

Bra kontra uppblåst CLAUDE.md

Uppblåst (200+ rader)

# Inventory API
Detta är ett API för lagerhantering 
byggt med Flask...

## Fullständig källkod
### routes.py
from flask import jsonify...
[hela filen inklistrad]

### models.py
[hela filen inklistrad]

## API-dokumentation
GET /items returnerar...

Bra (15 rader)

# Inventory API
Flask REST-API för lagerhantering.

## Kommandon
- Kör: flask run --port 5001
- Testa: pytest tests/

## Konventioner
- Använd typannoteringar
- Håll routes tunna
Mjukvaruutveckling med Claude Code

Filreferenser – använd @

> @routes.py vilka slutpunkter har det här API:et?
API-slutpunkter (6 GET-routes)

Artister
- GET /artists              Alla artister
- GET /artists/<id>         Enskild artist via ID
- GET /artists/<id>/albums  Album för en artist
Album
- GET /albums               Alla album
- GET /stats/albums         Statistik över albumpopularitet
- GET /stats/average-tracks Genomsnittligt antal låtar per album

Alla slutpunkter returnerar JSON.
Mjukvaruutveckling med Claude Code

CLAUDE.md och @ tillsammans

# CLAUDE.md - Music Analytics API
Ett Flask-baserat REST-API för musikdataanalys, med slutpunkter för artister,
album och statistik.
...

## Nyckelfiler @routes.py - Definition av API-slutpunkter @models.py - Artist- och Album-datamodeller med in-memory-lager ...

CLAUDE.md ger varaktig kontext. Använd @ så att Claude alltid känner till dina nyckelfiler.

Mjukvaruutveckling med Claude Code

Tre nivåer av kontext

Tre nivåer av kontext i CLAUDE.md

Mjukvaruutveckling med Claude Code

När du använder vilken

  • CLAUDE.md (projekt, delad)

    • Testkommandon, kodkonventioner, projektstruktur
  • CLAUDE.local.md (projekt, personlig)

    • Lokala sökvägar, API-nycklar, personliga arbetsflödesinställningar
  • ~/.claude/CLAUDE.md (global, personlig)

    • Stilpreferenser för alla projekt
    • Standardbeteenden du alltid vill ha
Mjukvaruutveckling med Claude Code

Sammanfattning av kapitel 1

  • /init ochCLAUDE.md → Varaktig projektkontext
  • Shift+Tab eller /plan → Växla Plan-läge
  • think ... ultrathink → Djup resonemang (5 nivåer)
Mjukvaruutveckling med Claude Code

Nu kör vi en övning!

Mjukvaruutveckling med Claude Code

Preparing Video For Download...