guardian/content_delivery_system
Duplication Places in code with 6 or more lines that are exactly the same. |
Duplication Overall
- 16% duplication:
- 20,547 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
- 3,364 duplicated lines
- 246 duplicates
Duplication per Extension
Duplication per Component (primary)
Longest Duplicates
The list of 50 longest duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 88 | x 2 | CDS/CDSCDS/CDS | 183:311 (41%)185:313 (39%) | view | |
| 57 | x 2 | CDS/scriptsCDS/scripts | 143:208 (32%)168:232 (16%) | view | |
| 52 | x 2 | CDS/RubyCDS/scripts | 3:122 (36%)2:129 (18%) | view | |
| 50 | x 2 | CDS/scriptsCDS/scripts | 36:102 (23%)34:100 (20%) | view | |
| 41 | x 2 | CDS/scriptsCDS/scripts | 32:73 (12%)23:64 (20%) | view | |
| 41 | x 2 | CDS/scriptsCDS/scripts | 186:233 (12%)197:244 (20%) | view | |
| 41 | x 2 | CDS/scriptsCDS/scripts | 224:280 (17%)368:424 (11%) | view | |
| 40 | x 2 | CDS/scriptsCDS/scripts | 161:208 (22%)197:243 (19%) | view | |
| 39 | x 2 | CDS/scriptsCDS/scripts | 85:127 (11%)78:120 (19%) | view | |
| 36 | x 2 | CDS/CDSCDS/CDS | 125:170 (16%)137:182 (16%) | view | |
| 32 | x 2 | CDS/CDSCDS/CDS | 41:85 (15%)58:100 (14%) | view | |
| 28 | x 2 | CDS/RubyCDS/scripts | 172:208 (19%)337:374 (9%) | view | |
| 28 | x 2 | CDS/scriptsCDS/scripts | 293:323 (11%)324:354 (8%) | view | |
| 27 | x 2 | CDS/scriptsCDS/scripts | 98:129 (15%)124:155 (13%) | view | |
| 24 | x 2 | CDS/scriptsCDS/scripts | 131:158 (7%)124:151 (11%) | view | |
| 24 | x 2 | CDS/scriptsCDS/scripts | 98:125 (13%)131:158 (7%) | view | |
| 23 | x 2 | CDS/CDSCDS/CDS/Parser | 490:519 (4%)170:197 (16%) | view | |
| 22 | x 2 | CDS/scriptsCDS/scripts | 46:69 (33%)58:81 (16%) | view | |
| 22 | x 2 | CDS/scriptsCDS/scripts | 20:47 (52%)26:53 (30%) | view | |
| 22 | x 2 | CDS/Ruby/lib/VidispineCDS/Ruby/lib/Vidispine | 106:134 (21%)256:285 (9%) | view | |
| 22 | x 2 | CDS/scriptsCDS/scripts | 69:94 (12%)103:127 (6%) | view | |
| 22 | x 2 | CDS/scriptsCDS/scripts | 69:94 (12%)96:120 (10%) | view | |
| 21 | x 2 | CDSCDS | 32:57 (53%)32:57 (53%) | view | |
| 21 | x 2 | CDS/scriptsCDS/scripts | 34:56 (8%)105:127 (6%) | view | |
| 21 | x 2 | CDS/scriptsCDS/scripts | 34:56 (8%)98:120 (10%) | view | |
| 21 | x 2 | CDS/scriptsCDS/scripts | 34:56 (8%)72:94 (11%) | view | |
| 20 | x 2 | CDS/scriptsCDS/scripts | 173:196 (7%)260:283 (5%) | view | |
| 20 | x 2 | CDS/scriptsCDS/scripts | 95:117 (7%)141:163 (11%) | view | |
| 19 | x 2 | CDS/scriptsCDS/scripts | 20:39 (10%)32:51 (5%) | view | |
| 19 | x 2 | CDS/scriptsCDS/scripts | 20:39 (10%)23:42 (9%) | view | |
| 19 | x 2 | CDS/scriptsCDS/scripts | 97:117 (7%)168:188 (5%) | view | |
| 19 | x 2 | CDSCDS | 1158:1179 (2%)16:37 (24%) | view | |
| 18 | x 2 | CDSCDS | 2517:2534 (<1%)2575:2592 (<1%) | view | |
| 18 | x 2 | CDS/scriptsCDS/scripts | 155:173 (7%)37:55 (31%) | view | |
| 17 | x 2 | CDS/scriptsCDS/scripts | 438:455 (4%)479:497 (4%) | view | |
| 16 | x 2 | CDSCDS | 2494:2514 (<1%)2552:2572 (<1%) | view | |
| 16 | x 2 | CDS/RubyCDS/scripts | 215:231 (11%)403:419 (5%) | view | |
| 15 | x 2 | CDS/scriptsCDS/scripts | 41:55 (8%)52:66 (4%) | view | |
| 15 | x 2 | CDS/scriptsCDS/scripts | 41:55 (8%)43:57 (7%) | view | |
| 15 | x 2 | CDSCDS/scripts | 1076:1090 (1%)291:305 (6%) | view | |
| 14 | x 2 | CDS/Ruby/lib/VidispineCDS/Ruby/lib/Vidispine | 49:64 (13%)70:85 (13%) | view | |
| 14 | x 2 | CDS/scriptsCDS/scripts | 174:188 (4%)166:180 (6%) | view | |
| 14 | x 2 | CDS/scriptsCDS/scripts | 69:84 (21%)91:105 (10%) | view | |
| 14 | x 2 | CDS/scriptsCDS/scripts | 148:162 (6%)251:265 (4%) | view | |
| 14 | x 2 | CDS/scriptsCDS/scripts | 149:163 (7%)166:180 (6%) | view | |
| 14 | x 2 | CDS/scriptsCDS/scripts | 103:117 (5%)166:180 (6%) | view | |
| 14 | x 2 | CDS/scriptsCDS/scripts | 23:41 (16%)37:55 (6%) | view | |
| 14 | x 2 | CDSCDS | 23:36 (7%)5:18 (<1%) | view | |
| 13 | x 2 | CDS/scriptsCDS/scripts | 464:476 (3%)486:498 (3%) | view | |
| 13 | x 2 | CDSCDS | 389:402 (1%)415:429 (1%) | view |
Most Frequent Duplicates
The list of 50 most frequently found duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 6 | x 8 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 314:319 (1%)325:330 (1%)338:343 (1%)350:355 (1%)364:369 (1%)378:383 (1%)393:398 (1%)406:411 (1%) | view | |
| 6 | x 7 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 25:31 (6%)31:37 (4%)504:510 (<1%)22:28 (7%)26:32 (11%)20:26 (8%)45:51 (7%) | view | |
| 6 | x 7 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 28:33 (6%)34:39 (4%)507:512 (<1%)25:30 (7%)29:34 (11%)23:28 (8%)48:53 (7%) | view | |
| 6 | x 7 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 27:32 (6%)33:38 (4%)506:511 (<1%)24:29 (7%)28:33 (11%)22:27 (8%)47:52 (7%) | view | |
| 6 | x 7 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 24:30 (6%)30:36 (4%)503:509 (<1%)21:27 (7%)25:31 (11%)19:25 (8%)44:50 (7%) | view | |
| 6 | x 6 | CDS/RubyCDS/RubyCDS/RubyCDS/RubyCDS/RubyCDS/Ruby | 7:12 (26%)9:14 (25%)11:16 (35%)9:14 (25%)7:12 (46%)10:15 (17%) | view | |
| 6 | x 6 | CDS/RubyCDS/RubyCDS/RubyCDS/RubyCDS/RubyCDS/Ruby | 5:11 (26%)7:13 (25%)9:15 (35%)7:13 (25%)5:11 (46%)8:14 (17%) | view | |
| 6 | x 6 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 316:321 (2%)64:69 (1%)55:60 (2%)86:91 (2%)93:98 (1%)347:352 (1%) | view | |
| 6 | x 5 | CDS/RubyCDS/RubyCDS/RubyCDS/RubyCDS/Ruby | 4:10 (26%)6:12 (25%)8:14 (35%)6:12 (25%)4:10 (46%) | view | |
| 6 | x 5 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 254:259 (2%)266:271 (2%)278:283 (2%)290:295 (2%)301:306 (2%) | view | |
| 6 | x 5 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 252:257 (2%)264:269 (2%)276:281 (2%)288:293 (2%)299:304 (2%) | view | |
| 6 | x 5 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 253:258 (2%)265:270 (2%)277:282 (2%)289:294 (2%)300:305 (2%) | view | |
| 6 | x 5 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 108:113 (2%)179:184 (1%)154:159 (3%)171:176 (2%)190:195 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 366:371 (1%)380:385 (1%)395:400 (1%)408:413 (1%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 50:55 (2%)121:126 (1%)88:93 (3%)114:119 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 111:117 (2%)182:188 (1%)157:163 (3%)174:180 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 107:112 (2%)178:183 (1%)153:158 (3%)170:175 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 51:56 (2%)122:127 (1%)89:94 (3%)115:120 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 103:108 (2%)174:179 (1%)149:154 (3%)166:171 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 324:329 (1%)349:354 (1%)377:382 (1%)405:410 (1%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 62:68 (2%)133:139 (1%)100:106 (3%)126:132 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 432:437 (1%)450:455 (1%)470:475 (1%)492:497 (1%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 40:45 (2%)111:116 (1%)78:83 (3%)104:109 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 61:67 (2%)132:138 (1%)99:105 (3%)125:131 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 429:434 (1%)447:452 (1%)467:472 (1%)489:494 (1%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 34:40 (2%)105:111 (1%)72:78 (3%)98:104 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 426:431 (1%)444:449 (1%)464:469 (1%)486:491 (1%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 431:436 (1%)449:454 (1%)469:474 (1%)491:496 (1%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 109:114 (2%)180:185 (1%)155:160 (3%)172:177 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 63:69 (2%)134:140 (1%)101:107 (3%)127:133 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 45:51 (2%)116:122 (1%)83:89 (3%)109:115 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 60:66 (2%)131:137 (1%)98:104 (3%)124:130 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 430:435 (1%)448:453 (1%)468:473 (1%)490:495 (1%) | view | |
| 6 | x 4 | CDSCDS/scriptsCDS/scriptsCDS/scripts | 1084:1089 (<1%)253:258 (2%)397:402 (1%)299:304 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 106:111 (2%)177:182 (1%)152:157 (3%)169:174 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 322:328 (1%)347:353 (1%)375:381 (1%)403:409 (1%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 48:54 (2%)119:125 (1%)86:92 (3%)112:118 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 42:47 (2%)113:118 (1%)80:85 (3%)106:111 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 41:46 (2%)112:117 (1%)79:84 (3%)105:110 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 39:44 (2%)110:115 (1%)77:82 (3%)103:108 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 47:53 (2%)118:124 (1%)85:91 (3%)111:117 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 104:109 (2%)175:180 (1%)150:155 (3%)167:172 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 105:110 (2%)176:181 (1%)151:156 (3%)168:173 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 43:48 (2%)114:119 (1%)81:86 (3%)107:112 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 321:327 (1%)346:352 (1%)374:380 (1%)402:408 (1%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 110:115 (2%)181:186 (1%)156:161 (3%)173:178 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 428:433 (1%)446:451 (1%)466:471 (1%)488:493 (1%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 44:50 (2%)115:121 (1%)82:88 (3%)108:114 (2%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 427:432 (1%)445:450 (1%)465:470 (1%)487:492 (1%) | view | |
| 6 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 38:43 (2%)109:114 (1%)76:81 (3%)102:107 (2%) | view |
Duplicated Units
The list of top 13 duplicated units.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 31 | x 2 | CDS/CDSCDS/CDS | 127:167 139:179 | view | |
| 31 | x 2 | CDS/scriptsCDS/scripts | 377:417 233:273 | view | |
| 30 | x 2 | CDS/CDSCDS/CDS | 213:263 215:265 | view | |
| 26 | x 2 | CDS/scriptsCDS/scripts | 69:102 67:100 | view | |
| 16 | x 2 | CDS/scriptsCDS/scripts | 36:62 34:60 | view | |
| 15 | x 4 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 109:126 38:55 102:119 76:93 | view | |
| 14 | x 2 | CDS/CDSCDS/CDS | 59:77 74:92 | view | |
| 10 | x 2 | CDS/CDS/ParserCDS/CDS | 183:195 505:517 | view | |
| 9 | x 2 | CDS/CDSCDS/CDS | 185:199 187:201 | view | |
| 8 | x 2 | CDS/CDS/ParserCDS/CDS | 170:181 490:503 | view | |
| 7 | x 2 | CDS/CDSCDS/CDS | 45:55 62:72 | view | |
| 7 | x 2 | CDS/CDSCDS/CDS | 201:211 203:213 | view | |
| 7 | x 10 | CDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scriptsCDS/scripts | 18:27 25:34 24:33 46:55 21:30 30:39 503:512 19:28 44:53 21:30 | 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."