Membuat Berkas CLAUDE.md yang Efektif

Pengembangan Perangkat Lunak dengan Claude Code

Dani Zysman

AI Curriculum Manager @ DataCamp

Praktik Terbaik CLAUDE.md

  • Mulai dengan /init, lalu iterasi
    • Tambahkan konteks saat Claude keliru
    • Cantumkan perubahan konvensi
  • Tujuan: Dokumen hidup yang berkembang bersama proyek Anda
Pengembangan Perangkat Lunak dengan Claude Code

Proyek Sejauh Ini

music-analytics-api/
  app.py           # Titik masuk aplikasi
  routes.py        # Endpoint API
  models.py        # Model Artist/Album
  analytics.py     # Fungsi statistik
  middleware.py    # Pencatatan permintaan
  config.py        # Pengaturan sesi
  CLAUDE.md        # <- Berkas memori proyek
Pengembangan Perangkat Lunak dengan Claude Code

Apa yang MASUK vs KELUAR dari CLAUDE.md

recraft: Apa yang perlu disertakan vs diabaikan dalam CLAUDE.md

Aturan: Jika lebih panjang dari secarik sticky note, jangan masukkan.

Pengembangan Perangkat Lunak dengan Claude Code

Mengiterasi CLAUDE.md

> Tambahkan penanganan error ke endpoint /artists.
Selesai. Saya menambahkan penanganan error ke /artists (routes.py:9-19):
- Blok try-except membungkus pengambilan dan serialisasi
- Penangan AttributeError jika data store belum diinisialisasi
- Penangan exception umum yang mengembalikan detail error dengan status 500

return jsonify({'error': f'Failed to retrieve artists: {str(e)}'}), 500
> Jangan mengekspos detail exception ke pengguna, itu berisiko keamanan. Catat secara internal 
dan kembalikan pesan umum. Perbarui CLAUDE.md.
Mengubah /artists untuk mencatat error secara internal dan mengembalikan 
pesan 500 umum. CLAUDE.md diperbarui dengan konvensi: 
tidak pernah mengekspos detail exception dalam respons.
Pengembangan Perangkat Lunak dengan Claude Code

CLAUDE.md yang Baik vs. Membengkak

Membengkak (200+ baris)

# Inventory API
Ini adalah Inventory Management 
API yang dibangun dengan Flask...

## Kode Sumber Lengkap
### routes.py
from flask import jsonify...
[seluruh berkas ditempel]

### models.py
[seluruh berkas ditempel]

## Dokumentasi API
GET /items mengembalikan...

Bagus (15 baris)

# Inventory API
Flask REST API untuk inventaris.

## Perintah
- Jalan: flask run --port 5001
- Uji: pytest tests/

## Konvensi
- Gunakan type hints
- Jaga routes tetap ringkas
Pengembangan Perangkat Lunak dengan Claude Code

Referensi Berkas - Menggunakan @

> @routes.py API ini punya endpoint apa?
API Endpoints (6 rute GET)

Artists
- GET /artists              Semua artis
- GET /artists/<id>         Satu artis berdasarkan ID
- GET /artists/<id>/albums  Album untuk seorang artis
Albums
- GET /albums               Semua album
- GET /stats/albums         Statistik popularitas album
- GET /stats/average-tracks Rata-rata jumlah trek per album

Semua endpoint mengembalikan JSON.
Pengembangan Perangkat Lunak dengan Claude Code

CLAUDE.md + @ Bersama-sama

# CLAUDE.md - Music Analytics API
REST API berbasis Flask untuk analitik data musik, menyediakan endpoint untuk artis,
album, dan statistik.
...

## Berkas Kunci @routes.py - Definisi endpoint API @models.py - Model data Artist dan Album dengan in-memory store ...

CLAUDE.md memberi konteks persisten. Gunakan @ agar Claude selalu mengenali berkas kunci Anda.

Pengembangan Perangkat Lunak dengan Claude Code

Tiga Level Konteks

Tiga level konteks CLAUDE.md

Pengembangan Perangkat Lunak dengan Claude Code

Kapan Menggunakan Masing-masing

  • CLAUDE.md (proyek, bersama)

    • Perintah uji, konvensi pengodean, struktur proyek
  • CLAUDE.local.md (proyek, personal)

    • Path lokal, kunci API, preferensi alur kerja pribadi
  • ~/.claude/CLAUDE.md (global, personal)

    • Preferensi gaya lintas proyek
    • Perilaku bawaan yang selalu Anda inginkan
Pengembangan Perangkat Lunak dengan Claude Code

Ringkasan Bab 1

  • /init danCLAUDE.md → Konteks proyek persisten
  • Shift+Tab atau /plan → Alihkan mode Plan
  • think ... ultrathink → Penalaran mendalam (5 level)
Pengembangan Perangkat Lunak dengan Claude Code

Ayo berlatih!

Pengembangan Perangkat Lunak dengan Claude Code

Preparing Video For Download...