---
title: Avoid Duplicate Naming
impact: LOW
impactDescription: prevents confusion and shadowing
tags: naming, quality, maintenance
---

## Avoid Duplicate Naming

Avoid using the same name for local variables, method arguments, and instance variables if it causes confusion or shadowing.

**Incorrect (shadowing/ambiguity):**

```ruby
class Processor
  attr_reader :data

  def process(data) # Argument shadows attribute
    data = data.clean # Shadowing
    @data = data
  end
end
```

**Correct (distinct names):**

```ruby
class Processor
  attr_reader :data

  def process(raw_data)
    cleaned_data = raw_data.clean
    @data = cleaned_data
  end
end
```

**Tools:** RuboCop (`Lint/ShadowingOuterLocalVariable`)
---
