## Package com.puppycrawl.tools.checkstyle.checks.duplicates

Duplicate code detection.

See:
Description

Class Summary
StrictDuplicateCodeCheck: Checks for duplicate code.

## Package com.puppycrawl.tools.checkstyle.checks.duplicates Description

Duplicate code detection.

There are many trade-offs when writing a duplicate code detection tool. Some of the conflicting goals are:

- Fast
- Low memory usage
- Avoid false alarms
- Support multiple/arbitrary languages
- Support Fuzzy matches (comments, whitespace, linebreaks, variable renaming, etc.)

StrictDuplicateCodeCheck is fast enough to facilitate checking very large code bases in acceptable time (minutes). It consumes very little memory, false alarms are not impossible but a really rare case. While it supports multiple languages it does not support fuzzy matches (that's why it's called Strict).

Note that there are brilliant commercial implementations of duplicate code detection tools. One that is particularly noteworthy is Simian from RedHill Consulting, Inc.

Simian has managed to find a very good balance of the above tradeoffs. It is superior to the checks in this package in many repects. Simian is reasonably priced (free for noncommercial projects) and includes a Checkstyle plugin. We encourage all users of Checkstyle to evaluate Simian as an alternative to the Checks we offer in our distribution.

Back to the Checkstyle Home Page