Why Clean Code Matters
You spend 10x more time reading code than writing it. Clean code saves teams thousands of hours in maintenance. It is not a luxury – it is professional responsibility.
Meaningful Names
# Bad
def calc(x, y, z):
return x * y * (1 - z)
# Good
def calculate_discounted_price(price, quantity, discount_rate):
return price * quantity * (1 - discount_rate)
# Bad
d = 86400
# Good
SECONDS_PER_DAY = 86400
Functions Should Do One Thing
# Bad - too many responsibilities
def process_user(data):
validate(data)
save_to_db(data)
send_email(data)
log_activity(data)
# Good - separated concerns
def validate_user(data):
if not data.get("email"):
raise ValueError("Email required")
def save_user(data):
return db.users.insert(data)
def on_user_created(user):
send_welcome_email(user.email)
logger.info(f"User {user.email} created")
Comments: Explain Why, Not What
# Bad - restates the code
x = x + 1 # increment x
# Good - explains intent
# Retry counter starts at 1 because first attempt already failed
retry_count = 1
Avoid Magic Numbers
# Bad
if len(password) < 8:
raise ValueError("Too short")
# Good
MIN_PASSWORD_LENGTH = 8
if len(password) < MIN_PASSWORD_LENGTH:
raise ValueError(f"Must be at least {MIN_PASSWORD_LENGTH} chars")
The Boy Scout Rule
Leave the code better than you found it. Fix one small thing nearby when you are in a file. Over time, this keeps codebases healthy.
Refactoring Checklist
- Functions over 20 lines? Extract smaller functions
- Deeply nested conditions? Invert or extract
- Duplicate code? Create shared function
- Mysterious number? Make it a named constant
- Long parameter list? Group into an object
