fix: les 6

This commit is contained in:
2026-03-11 14:07:00 +01:00
parent d5066021ab
commit 9ffdecf2c4
117 changed files with 13198 additions and 5194 deletions

View File

@@ -1,336 +1,130 @@
# Les 15: MCP & Context Management
# Les 15: Eindproject Werkdag 1
---
## Hoofdstuk
**Deel 4: Advanced AI Features** (Les 13-18)
**Deel 4: Advanced AI & Deployment** (Les 13-18)
## Beschrijving
Leer werken met Model Context Protocol (MCP) en geavanceerd context management. Begrijp hoe je AI tools maximale context geeft voor betere resultaten.
Eerste intensieve werkdag aan je eindproject. Focus op core features bouwen, Q&A sessions, individuele hulp, en probleemoplossing. Docent beschikbaar voor guidance en klassikale sparring.
---
## Te Behandelen
## Te Behandelen (~45 min guidance + 120 min work)
### Groepsdiscussie (15 min)
Bespreek klassikaal de project setup ervaringen uit Les 14 - welke structuur conventies werken goed en welke niet?
### Wat is Context?
**Context = wat de AI weet over jouw situatie**
**Soorten context:**
- **Code context:** welke files, welke functies
- **Project context:** tech stack, conventies
- **Taak context:** wat je probeert te bereiken
- **Historische context:** eerdere conversatie
**Meer context = betere antwoorden**
- Q&A session: wat loop je tegen aan?
- Cursor tips & tricks review
- Debugging strategies en common patterns
- Performance optimization basics
- Deployment troubleshooting preview
- Hands-on assistance beschikbaar
- Code review feedback
- Feature planning discussion
---
### Model Context Protocol (MCP)
## Doel van deze Werkdag
**Wat is MCP?**
- Open protocol van Anthropic
- Standaard manier om AI models context te geven
- Verbindt AI met externe tools en data
**Waarom MCP?**
- AI kan nu "tools gebruiken"
- Toegang tot je filesystem
- Database queries uitvoeren
- Web searches doen
- En meer...
**Hoe werkt het:**
```
Jij → vraag → AI → MCP → Tool → resultaat → AI → antwoord → Jij
```
- Core features van je eindproject afmaken
- Architecture validatie (is je setup goed?)
- Database integratie testen
- Auth flows uitwerken
- First AI feature implementeren
- Testing en bug fixes
---
### MCP in de Praktijk
### Checklist voor deze Sessie
**Cursor gebruikt MCP onder de hood:**
- `@file` mentions = file context via MCP
- `@codebase` = codebase search via MCP
- `@Docs` = documentation lookup via MCP
- `@Web` = web search via MCP
**Code Quality:**
- [ ] TypeScript geen errors
- [ ] No console.logs in production code
- [ ] Proper error handling
- [ ] Component props typed
**Claude Desktop met MCP:**
- Kan tools uitvoeren
- Filesystem access
- Terminal commands
- Database queries
**Features:**
- [ ] Core feature 1 werkend
- [ ] Core feature 2 werkend
- [ ] Data persistence (Supabase)
- [ ] Loading states visible
- [ ] Error states handled
---
### Context Management Strategieën
**1. Expliciete Context**
Geef context direct in je prompt:
```
Context: Next.js 14 project met TypeScript en Supabase.
Dit is een e-commerce app voor verkoop van boeken.
Vraag: Hoe implementeer ik een winkelwagen?
```
**2. File Context**
Gebruik @ mentions om relevante files toe te voegen:
```
@src/types/product.ts
@src/lib/supabase.ts
Hoe maak ik een addToCart functie?
```
**3. Project Context**
Gebruik .cursorrules of Claude Project instructions:
```
# In .cursorrules
Dit project is een e-commerce platform.
Alle prices zijn in cents (niet euros).
```
**4. Fresh Context**
Begin nieuwe chat voor nieuw onderwerp:
- Voorkomt context vervuiling
- AI raakt niet in de war met oude info
---
### @ Mentions Strategisch Gebruiken
**Cursor @ mentions:**
| Mention | Wanneer | Voorbeeld |
|---------|---------|-----------|
| `@file.tsx` | Specifieke file context | `@Button.tsx hoe voeg ik loading toe?` |
| `@folder/` | Hele folder context | `@components/ welke patterns gebruik ik?` |
| `@codebase` | Zoeken in project | `@codebase waar handle ik auth?` |
| `@Docs` | Officiële documentatie | `@Docs Next.js App Router` |
| `@Web` | Live web search | `@Web Supabase RLS policies` |
**Best practice:** Combineer mentions voor rijke context:
```
@src/components/auth/LoginForm.tsx
@src/lib/supabase.ts
@Docs Supabase Auth
Hoe voeg ik Google OAuth toe aan mijn login?
```
---
### Claude Projects voor Persistente Context
**Wat kun je toevoegen aan een Project:**
- Instructies (system prompt)
- Files (code, docs, schema's)
- Kennis die over sessies heen blijft
**Project Instructions Template:**
```markdown
# Project: [Naam]
## Tech Stack
- Next.js 14 met App Router
- TypeScript strict
- Tailwind CSS
- Supabase
## Code Conventies
[jouw conventies]
## Database Schema
[beschrijf je schema]
## Current Focus
[waar werk je nu aan]
```
**Tip:** Upload je database schema, README, en belangrijke types files.
---
### Context Windows en Limieten
**Wat is een context window?**
- Maximum hoeveelheid tekst die AI kan "zien"
- Gemeten in tokens (±4 karakters per token)
**Limieten per model:**
| Model | Context Window |
|-------|---------------|
| GPT-5 | 128K tokens |
| Claude 3 Sonnet | 200K tokens |
| Claude 3 Opus | 200K tokens |
**Praktisch:**
- Lange conversaties → context vol
- Veel file mentions → context vol
- Start fresh chat wanneer nodig
**Signs van vol context:**
- AI vergeet eerdere instructies
- Antwoorden worden minder relevant
- AI herhaalt zichzelf
---
### Context Hygiene
**Do's:**
- Geef alleen relevante context
- Wees specifiek in file mentions
- Start nieuwe chat voor nieuw onderwerp
- Gebruik project-level context voor consistentie
**Don'ts:**
- Hele codebase als context geven
- Oude irrelevante chats voortzetten
- Te veel files tegelijk mentionen
- Context herhalen die AI al heeft
---
### Debugging met Context
**Wanneer AI verkeerde antwoorden geeft:**
1. **Check context:** Heeft AI de juiste files?
2. **Check instructies:** Zijn project rules geladen?
3. **Fresh start:** Begin nieuwe chat
4. **Explicieter:** Voeg meer context toe in prompt
**Debug prompt:**
```
Ik merk dat je antwoord niet klopt.
Heb je toegang tot @src/lib/auth.ts?
Dit is de huidige implementatie: [plak code]
Kun je opnieuw kijken?
```
**Setup:**
- [ ] Project structure clean
- [ ] .cursorrules up-to-date
- [ ] Environment variables configured
- [ ] Git history clean
---
## Tools
- Cursor (@ mentions)
- Claude Projects
- ChatGPT
- Cursor
- Chrome DevTools
- Supabase Dashboard
- GitHub
- Vercel (optional preview)
---
## Lesopdracht (2 uur)
## Lesopdracht (4 uur, hands-on werk)
### Context Management Oefenen
### Intensive Development Session
**Deel 1: @ Mentions Mastery (45 min)**
**Hou je voortgang bij:**
Voer deze taken uit in Cursor:
**Eerste uur (0-60 min):**
- [ ] Maak prioriteiten list van features
- [ ] Fix top 3 bugs van vorige sessies
- [ ] Test alles lokaal
- [ ] Ask docent for guidance if stuck
1. **Single file context:**
- Open je TodoList component
- Vraag: "@TodoList.tsx Hoe kan ik infinite scroll toevoegen?"
- Noteer kwaliteit antwoord
**Twee uur (60-120 min):**
- [ ] Implementeer core feature 1 (CRUD)
- [ ] Implementeer core feature 2
- [ ] Add loading/error states
- [ ] Styling pass 1
2. **Multi-file context:**
- Vraag: "@src/components/ @src/types/ Welke types mis ik?"
- Noteer hoe context helpt
**Drie uur (120-180 min):**
- [ ] Implementeer AI feature (tool calling)
- [ ] Test end-to-end flows
- [ ] Fix bugs found
- [ ] Performance check
3. **Docs context:**
- Vraag: "@Docs Supabase realtime Hoe voeg ik real-time updates toe aan mijn todo app?"
- Noteer of antwoord up-to-date is
4. **Codebase search:**
- Vraag: "@codebase Waar handle ik error states?"
- Noteer of het de juiste plekken vindt
**Deel 2: Claude Project Setup (30 min)**
1. Maak Claude Project voor je eindproject
2. Schrijf comprehensive instructions
3. Upload 3-5 belangrijke files:
- Database schema/types
- Main component
- Supabase client
4. Test met 3 vragen
**Deel 3: Context Vergelijking (45 min)**
Voer dezelfde taak uit met:
1. Geen context (nieuwe chat, geen mentions)
2. File context (@mentions)
3. Project context (Claude Project)
Taak: "Implementeer een search feature voor todos"
Noteer:
- Kwaliteit code
- Relevantie voor jouw project
- Hoeveel aanpassing nodig
**Vier uur (180-240 min):**
- [ ] Polish UI
- [ ] Code cleanup
- [ ] Document decisions
- [ ] Commit and push
### Deliverable
- Notities over @ mentions effectiviteit
- Claude Project met instructions
- Context vergelijkingsnotities
- Werkende core features
- Updated PROMPT-LOG.md (add entries)
- Updated AI-DECISIONS.md
- GitHub commits with progress
- Screenshot of working features
---
## Huiswerk (2 uur)
## Huiswerk
### Optimaliseer Je Context Strategie
Continue building your project for next session.
**Deel 1: .cursorrules Perfectioneren (30 min)**
Update je .cursorrules met:
- Specifieke file structure info
- Naming conventions met voorbeelden
- Common patterns in je project
- DON'Ts specifiek voor jouw situatie
**Deel 2: Claude Project Uitbreiden (45 min)**
1. Upload alle relevante project files
2. Test met complexe vragen:
- "Hoe implementeer ik feature X?"
- "Review mijn auth implementatie"
- "Wat ontbreekt er nog?"
3. Itereer op instructions
**Deel 3: Context Documentation (45 min)**
Maak `docs/CONTEXT-GUIDE.md`:
```markdown
# Context Guide voor [Project]
## Cursor @ Mentions
- Voor UI changes: @src/components/
- Voor data logic: @src/lib/ @src/hooks/
- Voor types: @src/types/
## Claude Project
- Project URL: [link]
- Uploaded files: [lijst]
- Best practices: [jouw learnings]
## Common Prompts
[verzameling werkende prompts]
```
### Deliverable
- Geoptimaliseerde .cursorrules
- Complete Claude Project
- docs/CONTEXT-GUIDE.md
**Checklist:**
- [ ] Core features complete
- [ ] All changes pushed to GitHub
- [ ] PROMPT-LOG.md updated with prompts used
- [ ] AI-DECISIONS.md updated with choices made
- [ ] Ready for next workday session
---
## Leerdoelen
Na deze les kan de student:
- Uitleggen wat context is en waarom het belangrijk is
- Model Context Protocol (MCP) begrijpen
- @ mentions strategisch gebruiken in Cursor
- Een Claude Project opzetten met effectieve instructions
- Context windows en limieten begrijpen
- Context management best practices toepassen
- Debuggen wanneer AI verkeerde antwoorden geeft door context issues
- Zelfstandig problemen identificeren en fixen
- Cursor effectief gebruiken voor rapid development
- Architectuur decisions valideren en aanpassen
- Debugging strategieën toepassen
- Features end-to-end implementeren
- Development workflows versnellen
- Documentatie up-to-date houden