guardian/interactive-euro-lr
Duplication Places in code with 6 or more lines that are exactly the same. |
Duplication Overall
- 35% duplication:
- 4,462 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
- 1,594 duplicated lines
- 170 duplicates
Duplication per Extension
Duplication per Component (primary)
Longest Duplicates
The list of 50 longest duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 129 | x 2 | src/jssrc/js | 16:230 (51%)16:230 (52%) | view | |
| 82 | x 2 | src/jssrc/js | 163:307 (32%)156:300 (31%) | view | |
| 73 | x 2 | src/jssrc/js | 137:258 (29%)151:271 (27%) | view | |
| 66 | x 2 | src/jssrc/js | 312:400 (26%)310:398 (26%) | view | |
| 65 | x 2 | src/jssrc/js | 102:212 (26%)102:212 (26%) | view | |
| 65 | x 2 | src/jssrc/js | 102:212 (26%)102:212 (26%) | view | |
| 59 | x 2 | src/jssrc/js | 16:116 (23%)16:116 (22%) | view | |
| 57 | x 2 | src/jssrc/js | 16:108 (21%)16:108 (18%) | view | |
| 57 | x 2 | src/jssrc/js | 137:230 (23%)151:245 (21%) | view | |
| 57 | x 2 | src/jssrc/js | 16:108 (22%)16:108 (18%) | view | |
| 55 | x 2 | src/jssrc/js | 156:246 (20%)162:252 (18%) | view | |
| 55 | x 2 | src/jssrc/js | 163:253 (22%)162:252 (18%) | view | |
| 52 | x 2 | src/jssrc/js | 16:97 (20%)16:97 (19%) | view | |
| 52 | x 2 | src/jssrc/js | 16:97 (20%)16:97 (21%) | view | |
| 52 | x 2 | src/jssrc/js | 217:307 (20%)217:307 (21%) | view | |
| 52 | x 2 | src/jssrc/js | 16:97 (20%)16:97 (19%) | view | |
| 52 | x 2 | src/jssrc/js | 16:97 (20%)16:97 (20%) | view | |
| 52 | x 2 | src/jssrc/js | 16:97 (21%)16:97 (19%) | view | |
| 52 | x 2 | src/jssrc/js | 16:97 (20%)16:97 (19%) | view | |
| 52 | x 2 | src/jssrc/js | 16:97 (19%)16:97 (17%) | view | |
| 52 | x 2 | src/jssrc/js | 16:97 (19%)16:97 (19%) | view | |
| 52 | x 2 | src/jssrc/js | 16:97 (20%)16:97 (17%) | view | |
| 52 | x 2 | src/jssrc/js | 16:97 (21%)16:97 (19%) | view | |
| 52 | x 2 | src/jssrc/js | 217:307 (21%)210:300 (19%) | view | |
| 52 | x 2 | src/jssrc/js | 16:97 (21%)16:97 (17%) | view | |
| 46 | x 2 | src/jssrc/js | 137:212 (18%)151:227 (17%) | view | |
| 42 | x 2 | src/jssrc/js | 233:309 (16%)233:309 (17%) | view | |
| 42 | x 2 | src/js/libsrc/js | 15:86 (34%)309:364 (16%) | view | |
| 41 | x 2 | src/jssrc/js | 233:307 (16%)233:307 (16%) | view | |
| 41 | x 2 | src/jssrc/js | 233:307 (16%)226:300 (15%) | view | |
| 34 | x 2 | src/jssrc/js | 23:65 (11%)24:68 (16%) | view | |
| 34 | x 2 | src/jssrc/js | 23:65 (12%)24:68 (16%) | view | |
| 34 | x 2 | src/jssrc/js | 23:65 (13%)24:68 (16%) | view | |
| 34 | x 2 | src/jssrc/js | 23:65 (13%)24:68 (16%) | view | |
| 34 | x 2 | src/jssrc/js | 23:65 (12%)24:68 (16%) | view | |
| 34 | x 2 | src/jssrc/js | 23:65 (13%)24:68 (16%) | view | |
| 29 | x 2 | src/jssrc/js | 328:365 (11%)331:366 (11%) | view | |
| 29 | x 2 | src/jssrc/js | 330:367 (11%)331:366 (11%) | view | |
| 29 | x 2 | src/jssrc/js | 163:212 (11%)156:205 (11%) | view | |
| 29 | x 2 | src/jssrc/js | 178:227 (10%)162:211 (9%) | view | |
| 29 | x 2 | src/jssrc/js | 178:227 (10%)156:205 (11%) | view | |
| 29 | x 2 | src/jssrc/js | 163:212 (11%)162:211 (9%) | view | |
| 29 | x 2 | src/jssrc/js | 163:212 (11%)156:205 (11%) | view | |
| 29 | x 2 | src/jssrc/js | 163:212 (11%)162:211 (9%) | view | |
| 25 | x 2 | src/jssrc/js | 251:297 (9%)257:303 (8%) | view | |
| 25 | x 2 | src/jssrc/js | 382:414 (10%)381:413 (10%) | view | |
| 25 | x 2 | src/jssrc/js | 258:304 (10%)257:303 (8%) | view | |
| 25 | x 2 | src/jssrc/js | 258:304 (10%)257:303 (8%) | view | |
| 25 | x 2 | src/jssrc/js | 217:253 (10%)216:252 (8%) | view | |
| 25 | x 2 | src/jssrc/js | 258:304 (10%)257:303 (8%) | view |
Most Frequent Duplicates
The list of 50 most frequently found duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 139:149 (1%)163:171 (2%)139:149 (2%)139:149 (2%)137:147 (2%)153:164 (2%)139:149 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 35:43 (1%)36:46 (2%)35:43 (2%)35:43 (2%)35:43 (2%)35:43 (2%)35:43 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 287:296 (1%)374:383 (2%)288:297 (2%)288:297 (2%)281:290 (2%)300:309 (2%)288:297 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 294:303 (1%)381:390 (2%)295:304 (2%)295:304 (2%)288:297 (2%)307:316 (2%)295:304 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 292:300 (1%)379:387 (2%)293:301 (2%)293:301 (2%)286:294 (2%)305:313 (2%)293:301 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 272:284 (1%)359:371 (2%)273:285 (2%)273:285 (2%)266:278 (2%)285:297 (2%)273:285 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 283:289 (1%)370:376 (2%)284:290 (2%)284:290 (2%)277:283 (2%)296:302 (2%)284:290 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 23:30 (1%)24:31 (2%)23:30 (2%)23:30 (2%)23:30 (2%)23:30 (2%)23:30 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 34:42 (1%)35:45 (2%)34:42 (2%)34:42 (2%)34:42 (2%)34:42 (2%)34:42 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 285:293 (1%)372:380 (2%)286:294 (2%)286:294 (2%)279:287 (2%)298:306 (2%)286:294 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 45:50 (1%)48:53 (2%)45:50 (2%)45:50 (2%)45:50 (2%)45:50 (2%)45:50 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 31:37 (1%)32:38 (2%)31:37 (2%)31:37 (2%)31:37 (2%)31:37 (2%)31:37 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 58:65 (1%)61:68 (2%)58:65 (2%)58:65 (2%)58:65 (2%)58:65 (2%)58:65 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 280:286 (1%)367:373 (2%)281:287 (2%)281:287 (2%)274:280 (2%)293:299 (2%)281:287 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 32:41 (1%)33:42 (2%)32:41 (2%)32:41 (2%)32:41 (2%)32:41 (2%)32:41 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 49:54 (1%)52:57 (2%)49:54 (2%)49:54 (2%)49:54 (2%)49:54 (2%)49:54 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 47:52 (1%)50:55 (2%)47:52 (2%)47:52 (2%)47:52 (2%)47:52 (2%)47:52 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 54:60 (1%)57:63 (2%)54:60 (2%)54:60 (2%)54:60 (2%)54:60 (2%)54:60 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 36:44 (1%)37:47 (2%)36:44 (2%)36:44 (2%)36:44 (2%)36:44 (2%)36:44 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 57:63 (1%)60:66 (2%)57:63 (2%)57:63 (2%)57:63 (2%)57:63 (2%)57:63 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 28:34 (1%)29:35 (2%)28:34 (2%)28:34 (2%)28:34 (2%)28:34 (2%)28:34 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 137:147 (1%)161:168 (2%)137:147 (2%)137:147 (2%)135:145 (2%)151:162 (2%)137:147 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 41:46 (1%)42:49 (2%)41:46 (2%)41:46 (2%)41:46 (2%)41:46 (2%)41:46 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 197:203 (1%)235:241 (2%)198:204 (2%)198:204 (2%)191:197 (2%)213:219 (2%)198:204 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 44:49 (1%)47:52 (2%)44:49 (2%)44:49 (2%)44:49 (2%)44:49 (2%)44:49 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 141:150 (1%)165:172 (2%)141:150 (2%)141:150 (2%)139:148 (2%)155:165 (2%)141:150 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 281:287 (1%)368:374 (2%)282:288 (2%)282:288 (2%)275:281 (2%)294:300 (2%)282:288 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 50:56 (1%)53:59 (2%)50:56 (2%)50:56 (2%)50:56 (2%)50:56 (2%)50:56 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/js/libsrc/jssrc/jssrc/js | 125:130 (5%)424:429 (2%)391:396 (2%)159:164 (4%)434:439 (2%)392:397 (2%)390:395 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 51:57 (1%)54:60 (2%)51:57 (2%)51:57 (2%)51:57 (2%)51:57 (2%)51:57 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 29:35 (1%)30:36 (2%)29:35 (2%)29:35 (2%)29:35 (2%)29:35 (2%)29:35 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 232:238 (1%)341:347 (2%)233:239 (2%)233:239 (2%)226:232 (2%)246:252 (2%)233:239 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 276:285 (1%)363:372 (2%)277:286 (2%)277:286 (2%)270:279 (2%)289:298 (2%)277:286 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 270:283 (1%)357:370 (2%)271:284 (2%)271:284 (2%)264:277 (2%)283:296 (2%)271:284 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 246:252 (1%)305:311 (2%)247:253 (2%)247:253 (2%)240:246 (2%)260:266 (2%)247:253 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 46:51 (1%)49:54 (2%)46:51 (2%)46:51 (2%)46:51 (2%)46:51 (2%)46:51 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 284:292 (1%)371:379 (2%)285:293 (2%)285:293 (2%)278:286 (2%)297:305 (2%)285:293 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 293:301 (1%)380:388 (2%)294:302 (2%)294:302 (2%)287:295 (2%)306:314 (2%)294:302 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 42:47 (1%)45:50 (2%)42:47 (2%)42:47 (2%)42:47 (2%)42:47 (2%)42:47 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 27:32 (1%)28:33 (2%)27:32 (2%)27:32 (2%)27:32 (2%)27:32 (2%)27:32 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 289:299 (1%)376:386 (2%)290:300 (2%)290:300 (2%)283:293 (2%)302:312 (2%)290:300 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 48:53 (1%)51:56 (2%)48:53 (2%)48:53 (2%)48:53 (2%)48:53 (2%)48:53 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 56:61 (1%)59:64 (2%)56:61 (2%)56:61 (2%)56:61 (2%)56:61 (2%)56:61 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 162:174 (1%)185:197 (2%)163:175 (2%)163:175 (2%)156:168 (2%)178:190 (2%)163:175 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 286:294 (1%)373:381 (2%)287:295 (2%)287:295 (2%)280:288 (2%)299:307 (2%)287:295 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 30:36 (1%)31:37 (2%)30:36 (2%)30:36 (2%)30:36 (2%)30:36 (2%)30:36 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 267:280 (1%)354:367 (2%)268:281 (2%)268:281 (2%)261:274 (2%)280:293 (2%)268:281 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 25:31 (1%)26:32 (2%)25:31 (2%)25:31 (2%)25:31 (2%)25:31 (2%)25:31 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 37:45 (1%)38:48 (2%)37:45 (2%)37:45 (2%)37:45 (2%)37:45 (2%)37:45 (2%) | view | |
| 6 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 52:58 (1%)55:61 (2%)52:58 (2%)52:58 (2%)52:58 (2%)52:58 (2%)52:58 (2%) | view |
Duplicated Units
The list of top 13 duplicated units.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 33 | x 3 | src/jssrc/jssrc/js | 116:170 116:170 116:170 | view | |
| 22 | x 6 | src/jssrc/jssrc/jssrc/jssrc/jssrc/js | 41:67 41:67 41:67 41:67 41:67 41:67 | view | |
| 22 | x 6 | src/jssrc/jssrc/jssrc/jssrc/jssrc/js | 173:208 172:207 166:201 173:208 173:208 188:223 | view | |
| 12 | x 3 | src/jssrc/jssrc/js | 210:228 210:228 225:243 | view | |
| 12 | x 3 | src/jssrc/jssrc/js | 209:227 203:221 210:228 | view | |
| 11 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 23:39 23:39 24:40 23:39 23:39 23:39 23:39 | view | |
| 9 | x 6 | src/jssrc/jssrc/jssrc/jssrc/jssrc/js | 76:94 76:94 76:94 76:94 76:94 76:94 | view | |
| 9 | x 4 | src/jssrc/jssrc/jssrc/js | 229:242 223:236 230:243 230:243 | view | |
| 8 | x 2 | src/jssrc/js | 230:243 245:256 | view | |
| 7 | x 2 | src/jssrc/js | 97:112 97:112 | view | |
| 7 | x 6 | src/jssrc/jssrc/jssrc/jssrc/jssrc/js | 246:256 304:314 239:249 246:256 246:256 259:269 | view | |
| 7 | x 7 | src/jssrc/jssrc/jssrc/jssrc/jssrc/jssrc/js | 281:291 280:290 367:377 274:284 281:291 281:291 293:303 | view | |
| 7 | x 2 | src/jssrc/js | 97:112 97:112 | 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."