Duplication Overall
- 39% duplication:
- 1,326 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
- 526 duplicated lines
- 52 duplicates
Duplication per Extension
Duplication per Component (primary)
Longest Duplicates
The list of 50 longest duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 65 | x 2 | src/services/__fixtures__src/types/crop/__fixtures__ | 1:69 (38%)1:69 (98%) | view | |
| 50 | x 2 | src/services/__fixtures__src/types/image/__fixtures__ | 35:84 (31%)29:78 (62%) | view | |
| 40 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 26:69 (23%)85:128 (23%) | view | |
| 40 | x 2 | src/services/__fixtures__src/types/crop/__fixtures__ | 85:128 (23%)26:69 (60%) | view | |
| 17 | x 2 | src/services/__fixtures__src/types/crop/__fixtures__ | 107:124 (10%)18:35 (25%) | view | |
| 17 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 18:35 (10%)107:124 (10%) | view | |
| 16 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 72:88 (9%)131:147 (9%) | view | |
| 16 | x 2 | src/services/__fixtures__src/types/image/__fixtures__ | 6:21 (9%)2:17 (20%) | view | |
| 15 | x 2 | src/services/__fixtures__src/types/crop/__fixtures__ | 90:104 (9%)2:16 (22%) | view | |
| 15 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 2:16 (8%)90:104 (9%) | view | |
| 14 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 50:64 (9%)111:125 (9%) | view | |
| 14 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 2:15 (8%)72:85 (8%) | view | |
| 14 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 2:15 (8%)131:144 (8%) | view | |
| 14 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 72:85 (8%)90:103 (8%) | view | |
| 14 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 131:144 (8%)90:103 (8%) | view | |
| 14 | x 2 | src/services/__fixtures__src/types/crop/__fixtures__ | 72:85 (8%)2:15 (21%) | view | |
| 14 | x 2 | src/services/__fixtures__src/types/crop/__fixtures__ | 131:144 (8%)2:15 (21%) | view | |
| 12 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 38:49 (7%)51:62 (7%) | view | |
| 12 | x 2 | src/types/image/__fixtures__src/types/image/__fixtures__ | 32:43 (15%)45:56 (15%) | view | |
| 12 | x 2 | src/services/__fixtures__src/types/image/__fixtures__ | 38:49 (7%)45:56 (15%) | view | |
| 12 | x 2 | src/services/__fixtures__src/types/image/__fixtures__ | 51:62 (7%)32:43 (15%) | view | |
| 9 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 83:92 (6%)144:153 (6%) | view | |
| 9 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 61:69 (5%)175:183 (5%) | view | |
| 9 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 120:128 (5%)175:183 (5%) | view | |
| 9 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 85:94 (5%)115:124 (5%) | view | |
| 9 | x 2 | src/services/__fixtures__src/types/crop/__fixtures__ | 175:183 (5%)61:69 (13%) | view | |
| 9 | x 2 | src/services/__fixtures__src/types/image/__fixtures__ | 24:32 (5%)19:27 (11%) | view | |
| 8 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 69:78 (5%)130:139 (5%) | view | |
| 8 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 31:39 (4%)148:156 (4%) | view | |
| 8 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 41:49 (4%)157:165 (4%) | view | |
| 8 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 51:59 (4%)166:174 (4%) | view | |
| 8 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 90:98 (4%)148:156 (4%) | view | |
| 8 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 100:108 (4%)157:165 (4%) | view | |
| 8 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 110:118 (4%)166:174 (4%) | view | |
| 8 | x 2 | src/services/__fixtures__src/types/crop/__fixtures__ | 127:135 (4%)37:45 (12%) | view | |
| 8 | x 2 | src/services/__fixtures__src/types/crop/__fixtures__ | 138:146 (4%)47:55 (12%) | view | |
| 8 | x 2 | src/services/__fixtures__src/types/crop/__fixtures__ | 149:157 (4%)57:65 (12%) | view | |
| 8 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 37:45 (4%)127:135 (4%) | view | |
| 8 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 47:55 (4%)138:146 (4%) | view | |
| 8 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 57:65 (4%)149:157 (4%) | view | |
| 8 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 96:104 (4%)127:135 (4%) | view | |
| 8 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 106:114 (4%)138:146 (4%) | view | |
| 8 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 116:124 (4%)149:157 (4%) | view | |
| 8 | x 2 | src/services/__fixtures__src/types/crop/__fixtures__ | 148:156 (4%)31:39 (12%) | view | |
| 8 | x 2 | src/services/__fixtures__src/types/crop/__fixtures__ | 157:165 (4%)41:49 (12%) | view | |
| 8 | x 2 | src/services/__fixtures__src/types/crop/__fixtures__ | 166:174 (4%)51:59 (12%) | view | |
| 7 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 64:71 (4%)139:146 (4%) | view | |
| 7 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 78:85 (4%)125:132 (4%) | view | |
| 6 | x 2 | src/services/__fixtures__src/services/__fixtures__ | 108:113 (3%)153:158 (3%) | view | |
| 6 | x 2 | src/services/__fixtures__src/types/crop/__fixtures__ | 153:158 (3%)19:24 (9%) | view |
Most Frequent Duplicates
The list of 50 most frequently found duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 6 | x 5 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 10:15 (3%)10:15 (9%)98:103 (3%)80:85 (3%)139:144 (3%) | view | |
| 6 | x 5 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 7:12 (3%)7:12 (9%)95:100 (3%)77:82 (3%)136:141 (3%) | view | |
| 6 | x 5 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 2:7 (3%)2:7 (9%)90:95 (3%)72:77 (3%)131:136 (3%) | view | |
| 6 | x 5 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 4:9 (3%)4:9 (9%)92:97 (3%)74:79 (3%)133:138 (3%) | view | |
| 6 | x 5 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 8:13 (3%)8:13 (9%)96:101 (3%)78:83 (3%)137:142 (3%) | view | |
| 6 | x 5 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 5:10 (3%)5:10 (9%)93:98 (3%)75:80 (3%)134:139 (3%) | view | |
| 6 | x 5 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 6:11 (3%)6:11 (9%)94:99 (3%)76:81 (3%)135:140 (3%) | view | |
| 6 | x 5 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 3:8 (3%)3:8 (9%)91:96 (3%)73:78 (3%)132:137 (3%) | view | |
| 6 | x 5 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 9:14 (3%)9:14 (9%)97:102 (3%)79:84 (3%)138:143 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 49:54 (3%)49:54 (9%)140:145 (3%)108:113 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 32:37 (3%)32:37 (9%)91:96 (3%)149:154 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 61:66 (3%)61:66 (9%)120:125 (3%)175:180 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 52:57 (3%)52:57 (9%)111:116 (3%)167:172 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 42:47 (3%)42:47 (9%)101:106 (3%)158:163 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 50:55 (3%)50:55 (9%)141:146 (3%)109:114 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 31:36 (3%)31:36 (9%)90:95 (3%)148:153 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 41:46 (3%)41:46 (9%)100:105 (3%)157:162 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 63:68 (3%)63:68 (9%)122:127 (3%)177:182 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 149:155 (3%)57:63 (9%)57:63 (3%)116:122 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 62:67 (3%)62:67 (9%)121:126 (3%)176:181 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 47:53 (3%)47:53 (9%)138:144 (3%)106:112 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/image/__fixtures__src/types/image/__fixtures__src/services/__fixtures__ | 43:48 (3%)37:42 (7%)50:55 (7%)56:61 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 152:157 (3%)60:65 (9%)60:65 (3%)119:124 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 40:45 (3%)40:45 (9%)130:135 (3%)99:104 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 51:56 (3%)51:56 (9%)110:115 (3%)166:171 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 39:44 (3%)39:44 (9%)129:134 (3%)98:103 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 37:43 (3%)37:43 (9%)127:133 (3%)96:102 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 30:35 (3%)30:35 (9%)119:124 (3%)89:94 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/image/__fixtures__src/types/image/__fixtures__src/services/__fixtures__ | 40:45 (3%)34:39 (7%)47:52 (7%)53:58 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 64:69 (3%)64:69 (9%)123:128 (3%)178:183 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/image/__fixtures__src/types/image/__fixtures__src/services/__fixtures__ | 38:43 (3%)32:37 (7%)45:50 (7%)51:56 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/image/__fixtures__src/types/image/__fixtures__src/services/__fixtures__ | 42:47 (3%)36:41 (7%)49:54 (7%)55:60 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 53:59 (3%)53:59 (9%)112:118 (3%)168:174 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/image/__fixtures__src/types/image/__fixtures__src/services/__fixtures__ | 41:46 (3%)35:40 (7%)48:53 (7%)54:59 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 33:39 (3%)33:39 (9%)92:98 (3%)150:156 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/image/__fixtures__src/types/image/__fixtures__src/services/__fixtures__ | 39:44 (3%)33:38 (7%)46:51 (7%)52:57 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 151:156 (3%)59:64 (9%)59:64 (3%)118:123 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 29:34 (3%)29:34 (9%)118:123 (3%)88:93 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 43:49 (3%)43:49 (9%)102:108 (3%)159:165 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/image/__fixtures__src/types/image/__fixtures__src/services/__fixtures__ | 44:49 (3%)38:43 (7%)51:56 (7%)57:62 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 19:24 (3%)19:24 (9%)108:113 (3%)153:158 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 27:33 (3%)27:33 (9%)116:122 (3%)86:92 (3%) | view | |
| 6 | x 4 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__src/services/__fixtures__ | 26:32 (3%)26:32 (9%)115:121 (3%)85:91 (3%) | view | |
| 6 | x 3 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__ | 56:62 (3%)56:62 (9%)115:121 (3%) | view | |
| 6 | x 3 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__ | 22:27 (3%)22:27 (9%)111:116 (3%) | view | |
| 6 | x 3 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__ | 44:50 (3%)44:50 (9%)103:109 (3%) | view | |
| 6 | x 3 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__ | 23:29 (3%)23:29 (9%)112:118 (3%) | view | |
| 6 | x 3 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__ | 25:31 (3%)25:31 (9%)114:120 (3%) | view | |
| 6 | x 3 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__ | 24:30 (3%)24:30 (9%)113:119 (3%) | view | |
| 6 | x 3 | src/services/__fixtures__src/types/crop/__fixtures__src/services/__fixtures__ | 54:60 (3%)54:60 (9%)113:119 (3%) | view |
About This Analysis
- For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
- Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
- You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
- To learn more about duplications and techniques for eliminating duplication, Sokrates recommends the following resources:
- Avoid Repetition, MartinFlower.com (IEEE Software article)
- Refactoring duplicated code, sourcemaking.com
- Beck Design Rules, MartinFowler.com
- DRY (Don't Repeat Yourself) Principle, Wikipedia
- The Cut-and-Paste Programming Software Development Anti-Pattern, sourcemaking.com
- Code Smells / Duplicated Code, Jeff Atwood, codinghorror.com:
- "Duplicated code is the bane of software development. Stamp out duplication whenever possible. You should always be on the lookout for more subtle cases of near-duplication, too. Don't Repeat Yourself!"
- Reducing Coupling, MartinFlower.com (IEEE Software article):
- "There are several ways to describe coupling, but it boils down to this: If changing one module in a program requires changing another module, then coupling exists. ... Duplication always implies coupling, because changing one piece of duplicate code implies changing the other."