Explaining & Reviewing Code

Paste code and ask Claude to explain what it does or to review it for bugs and improvements.

Two of the highest-value uses of Claude are understanding unfamiliar code and getting a second pair of eyes on your own.

Explain

Paste a function and ask Claude to walk through it line by line, name the tricky parts, and describe edge cases. This is faster than reading docs for a library you have never seen.

Review

Ask Claude to review a diff or a file for bugs, security issues, and readability. Be explicit about what you care about: "focus on correctness and security, not style".

Make reviews actionable

Ask Claude to report each finding with a short explanation and a suggested fix, so you can act on it immediately.

Example

Example Β· javascript
const code = `function getTotal(items) {
  let total = 0;
  for (let i = 0; i <= items.length; i++) {
    total += items[i].price;
  }
  return total;
}`;

const prompt = `Review this JavaScript for bugs. For each issue, give the problem\nand a corrected version. Focus on correctness.\n\n${code}`;

const response = await client.messages.create({
  model: "claude-opus-4-8",
  max_tokens: 2048,
  messages: [{ role: "user", content: prompt }],
});
// Claude will flag the off-by-one bug: i <= items.length should be i < items.length

When to use it

  • Paste an unfamiliar open-source utility function and ask Claude to explain each line before you use it in production.
  • Have Claude review a pull request diff for potential race conditions or unhandled promise rejections.
  • Ask Claude to spot security issues in an authentication flow before it ships to users.

More examples

Ask Claude to explain a function

Sends unfamiliar code and asks for a line-by-line explanation to accelerate understanding.

Example Β· javascript
const code = `
function debounce(fn, delay) {
  let timer;
  return (...args) => {
    clearTimeout(timer);
    timer = setTimeout(() => fn(...args), delay);
  };
}`;

const msg = await client.messages.create({
  model: "claude-haiku-4-5",
  max_tokens: 256,
  messages: [{ role: "user", content: `Explain this JS function line by line:\n${code}` }],
});

Code review for bugs and improvements

Uses a senior-engineer persona in the system prompt to get direct, actionable review feedback.

Example Β· javascript
const code = `/* ...paste your function here... */`;

const msg = await client.messages.create({
  model: "claude-sonnet-4-5",
  max_tokens: 512,
  system: "You are a senior JavaScript engineer. Be direct and concise.",
  messages: [{
    role: "user",
    content: `Review this code for bugs, edge cases, and readability improvements:\n${code}`
  }],
});

Security review of an auth handler

Points Claude at a deliberately flawed handler to get a focused list of security vulnerabilities.

Example Β· javascript
const handler = `
async function login(req, res) {
  const { email, password } = req.body;
  const user = await db.query(
    'SELECT * FROM users WHERE email = ' + email
  );
  if (user && user.password === password) res.json({ token: 'abc' });
}`;

const msg = await client.messages.create({
  model: "claude-sonnet-4-5",
  max_tokens: 512,
  messages: [{ role: "user", content: `List all security issues in this login handler:\n${handler}` }],
});

Discussion

  • Be the first to comment on this lesson.