Skip to main content

Thinking Guides

Purpose: Expand your thinking to catch things you might not have considered.


Why Thinking Guides?

Most bugs and tech debt come from "didn't think of that", not from lack of skill:

  • Didn't think about what happens at layer boundaries → cross-layer bugs
  • Didn't think about code patterns repeating → duplicated code everywhere
  • Didn't think about edge cases → runtime errors
  • Didn't think about future maintainers → unreadable code

These guides help you ask the right questions before coding.


Available Guides

GuidePurposeWhen to Use
Code Reuse Thinking GuideIdentify patterns and reduce duplicationWhen you notice repeated patterns
Cross-Layer Thinking GuideThink through data flow across layersFeatures spanning multiple layers

Quick Reference: Thinking Triggers

When to Think About Cross-Layer Issues

  • Feature touches 3+ layers (API, Service, Component, Database)
  • Data format changes between layers
  • Multiple consumers need the same data
  • You're not sure where to put some logic

→ Read Cross-Layer Thinking Guide

When to Think About Code Reuse

  • You're writing similar code to something that exists
  • You see the same pattern repeated 3+ times
  • You're adding a new field to multiple places
  • You're modifying any constant or config
  • You're creating a new utility/helper function ← Search first!

→ Read Code Reuse Thinking Guide


Pre-Modification Rule (CRITICAL)

Before changing ANY value, ALWAYS search first!

# Search for the value you're about to change
grep -r "value_to_change" .

This single habit prevents most "forgot to update X" bugs.


How to Use This Directory

  1. Before coding: Skim the relevant thinking guide
  2. During coding: If something feels repetitive or complex, check the guides
  3. After bugs: Add new insights to the relevant guide (learn from mistakes)

Contributing

Found a new "didn't think of that" moment? Add it to the relevant guide.


Core Principle: 30 minutes of thinking saves 3 hours of debugging.