De Explore-Plan-Code-workflow

Softwareontwikkeling met Claude Code

Dani Zysman

AI Curriculum Manager @ DataCamp

Het "Dive In"-probleem

IJsberg: prompt boven waterlijn, verborgen complexiteit eronder

Softwareontwikkeling met Claude Code

De workflow

Stroomschema: Init → Explore → Plan → Code

Softwareontwikkeling met Claude Code

API-projectoverzicht

music-analytics-api/
  app.py           # Application entry point
  routes.py        # API endpoints
  models.py        # Artist/Album models
  analytics.py     # Statistics functions
  middleware.py    # Request logging
  config.py        # Session settings

Een eenvoudige Music Analytics API met bestaande patronen die we moeten respecteren.

Softwareontwikkeling met Claude Code

CLAUDE.md: Projectgeheugen

CLAUDE.md:

  • Geeft Claude blijvende context over je project
  • Claude leest dit elke sessie automatisch
  • Je hoeft je setup niet telkens opnieuw uit te leggen
Softwareontwikkeling met Claude Code

Begin met /init

> /init
Music Analytics API
A Flask-based REST API for music data analytics.

Project Structure
- app.py       Flask application entry point
- routes.py    API endpoint definitions
- analytics.py Statistical analysis functions

Coding Conventions
- Use type hints for function parameters
- Include docstrings for all public functions
- Follow PEP 8 style guidelines
Softwareontwikkeling met Claude Code

Planmodus

  • Schakel om met Shift+Tab of typ /plan
  • Als er een plan is, druk Ctrl+G om te visualiseren, goed te keuren, te bekijken of te bewerken
Softwareontwikkeling met Claude Code

Planning overslaan

> Add a /api/login endpoint that creates a session for a user
from flask import jsonify, request
from flask_login import LoginManager, login_user
from app import app

login_manager = LoginManager(app)
@app.route('/api/login', methods=['POST'])
def login():
    """Handle user login and create session."""
    data = request.get_json()
    user = User.query.filter_by(username=data['username']).first()
    if user and user.password == data['password']:
        login_user(user)
        return jsonify({'status': 'success'})
    return jsonify({'error': 'Invalid credentials'}), 401
Softwareontwikkeling met Claude Code

Eerst plannen, dan coderen

> /plan Add a /api/login endpoint that creates a session for a user
Plan: Voeg POST /api/login-endpoint toe

Context
De music analytics API heeft sessie-infrastructuur
(flask_session, SECRET_KEY, session al geïmporteerd in routes)
maar geen authenticatie.

Te wijzigen bestanden
- models.py:  voeg User-klasse, UserStore-klasse, user_store-singleton toe
- routes.py:  breid import uit, voeg loginroute toe

Geen wijzigingen nodig in app.py, config.py, middleware.py of analytics.py.
Softwareontwikkeling met Claude Code

Uitgebreid nadenken

> think about how to add authentication to this API
Softwareontwikkeling met Claude Code

Niveaus van nadenken

Opdracht Diepte van redeneren
think Basisredenering
think more Uitgebreidere redenering
think a lot Grondige redenering
think longer Langer redeneren
ultrathink Maximale redenering
Softwareontwikkeling met Claude Code

Context window en tokens beheren

excalidraw: Contextvenster dat zich vult met prompts en antwoorden, toont tokenverdeling

  • "Context window exceeded" → sessie is te lang, gebruik /clear
  • Claude geeft voorrang aan recente gesprekken als de context vol raakt
Softwareontwikkeling met Claude Code

De volledige workflow

Stroomschema: /init → Explore → Plan → Review → Code → Test

Softwareontwikkeling met Claude Code

Laten we oefenen!

Softwareontwikkeling met Claude Code

Preparing Video For Download...