Code Review Checklist

Comprehensive guide to code review checklist covering architecture, implementation, testing, and operational patterns for production engineering teams.

Code reviews are the primary checkpoint for software quality, alignment, and knowledge sharing. They matter most during feature development, bug fixes, refactoring, and onboarding new contributors. This checklist guides reviewers and authors through the essential steps of a thorough, actionable review, from first glance to final approval.

Preparing for a Code Review

Before a pull request (PR) is opened, the author should ensure it is ready for feedback. The review begins not when the PR is created, but when it is *reviewable*.

Reviewing the Code

The reviewer begins with a quick pass to assess scope, clarity, and correctness. This phase takes 15–30 minutes and sets the tone for deeper feedback.

Initial Scan: Read the Code from Top to Bottom

Check for Architecture and Design Consistency

Validate Implementation Details

    if err := db.QueryRow("SELECT * FROM users WHERE id = $1", userID).Scan(&user); err != nil {
        return nil, fmt.Errorf("failed to fetch user: %w", err)
    }
    func (s *UserService) CreateUser(ctx context.Context, user *User) error {
        // Use ctx in database calls and logging
        log.Printf(ctx, "Creating user %s", user.Email)
        // ...
    }

Evaluate Testing Strategy

    go test -v ./...

Check for Performance and Observability

    start := time.Now()
    defer func() {
        log.Printf("Processing user: %s took %v", user.Email, time.Since(start))
    }()
    go func() {
        log.Println(http.ListenAndServe("localhost:6060", pprof.Handler()))
    }()

Validate Deployment and Configuration

    auth:
      jwt:
        secret: "super-secret-key"
        expiry: 24h
        issuer: "auth-service"
    logging:
      level: "info"
      format: "json"

Review for Readability and Maintainability

    // This timeout ensures that users don’t see stale data during peak load.
    // We chose 30s because the cache is invalidated every 25s.
    const cacheTTL = 30 * time.Second

Providing Feedback

Feedback should be specific, actionable, and prioritized. Use the PR comment interface with clear, concise messages.

Types of Feedback

Feedback Priorities

Approving a Pull Request

After feedback is addressed, the reviewer finalizes the review.

Final Review Checklist

Approval Workflow

  LGTM! All feedback addressed. The implementation is clean and well-documented.

  Merging now.
    git checkout main
    git pull origin main
    git merge --squash feature/auth-jwt
    git commit -m "feat(auth): add JWT authentication
    "
    git push origin main
    git checkout feature/auth-jwt
    git rebase main
    git checkout main
    git merge feature/auth-jwt
    git push origin main
    git checkout main
    git merge feature/auth-jwt
    git push origin main

Post-Merge Actions

  git tag v1.2.0 -m "Release 1.2.0: JWT auth, improved logging"
  git push origin v1.2.0
    ## [1.2.0] - 2025-04-05

    ### Features
    - Add JWT-based authentication ([#42])
    - Add health check endpoint ([#103])

    ### Improvements
    - Improve error logging with structured output

Common Pitfalls and Silent Failures

Summary

A code review is not just a passover of code. It is a collaborative process of shaping the system, catching bugs early, and spreading knowledge. Use this checklist to ensure every review is thorough, actionable, and focused on the right things. Start with a clear PR, validate architecture and implementation, test deeply, and close with a clear approval. Over time, consistent use of this checklist will make the codebase more robust and the team more cohesive.

This page was rewritten on 18 October 2026. It replaced a templated version that was not specific to its own title. How these pages are written and checked. If anything here is wrong, tell us at [email protected] and we will correct it.