Duplication Overall
- 59% duplication:
- 3,667 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
- 2,197 duplicated lines
- 352 duplicates
Duplication per Extension
Duplication per Component (primary)
Longest Duplicates
The list of 50 longest duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 226 | x 2 | srcsrc | 297:528 (32%)445:676 (26%) | view | |
| 217 | x 2 | srcsrc | 102:320 (25%)458:676 (25%) | view | |
| 217 | x 2 | srcsrc | 310:528 (30%)102:320 (25%) | view | |
| 85 | x 2 | srcsrc | 332:416 (12%)439:523 (12%) | view | |
| 85 | x 2 | srcsrc | 124:208 (9%)231:315 (9%) | view | |
| 85 | x 2 | srcsrc | 124:208 (9%)587:671 (9%) | view | |
| 85 | x 2 | srcsrc | 231:315 (9%)480:564 (9%) | view | |
| 85 | x 2 | srcsrc | 480:564 (9%)587:671 (9%) | view | |
| 85 | x 2 | srcsrc | 332:416 (12%)231:315 (9%) | view | |
| 85 | x 2 | srcsrc | 332:416 (12%)587:671 (9%) | view | |
| 85 | x 2 | srcsrc | 439:523 (12%)124:208 (9%) | view | |
| 85 | x 2 | srcsrc | 439:523 (12%)480:564 (9%) | view | |
| 80 | x 2 | srcsrc | 532:615 (11%)680:763 (9%) | view | |
| 74 | x 2 | srcsrc | 324:400 (8%)693:769 (8%) | view | |
| 71 | x 2 | srcsrc | 545:615 (10%)324:394 (8%) | view | |
| 54 | x 2 | src/jobssrc/jobs | 6:90 (85%)6:90 (71%) | view | |
| 42 | x 2 | srcsrc | 701:756 (5%)827:882 (4%) | view | |
| 41 | x 2 | srcsrc | 27:99 (5%)24:84 (4%) | view | |
| 41 | x 2 | src/jobssrc/jobs | 6:70 (67%)6:70 (65%) | view | |
| 40 | x 2 | srcsrc | 625:668 (5%)773:816 (4%) | view | |
| 33 | x 2 | srcsrc | 761:811 (4%)887:937 (3%) | view | |
| 26 | x 2 | srcsrc | 69:94 (16%)66:91 (21%) | view | |
| 20 | x 2 | srcsrc | 312:331 (2%)418:437 (2%) | view | |
| 20 | x 2 | srcsrc | 104:123 (2%)210:229 (2%) | view | |
| 20 | x 2 | srcsrc | 104:123 (2%)566:585 (2%) | view | |
| 20 | x 2 | srcsrc | 210:229 (2%)460:479 (2%) | view | |
| 20 | x 2 | srcsrc | 460:479 (2%)566:585 (2%) | view | |
| 20 | x 2 | srcsrc | 312:331 (2%)210:229 (2%) | view | |
| 20 | x 2 | srcsrc | 312:331 (2%)566:585 (2%) | view | |
| 20 | x 2 | srcsrc | 418:437 (2%)104:123 (2%) | view | |
| 20 | x 2 | srcsrc | 418:437 (2%)460:479 (2%) | view | |
| 19 | x 2 | srcsrc | 201:219 (2%)392:410 (2%) | view | |
| 19 | x 2 | srcsrc | 201:219 (2%)499:517 (2%) | view | |
| 19 | x 2 | srcsrc | 201:219 (2%)184:202 (2%) | view | |
| 19 | x 2 | srcsrc | 201:219 (2%)291:309 (2%) | view | |
| 19 | x 2 | srcsrc | 201:219 (2%)540:558 (2%) | view | |
| 19 | x 2 | srcsrc | 201:219 (2%)647:665 (2%) | view | |
| 19 | x 2 | src/jobssrc/jobs | 21:47 (25%)21:47 (54%) | view | |
| 19 | x 2 | src/jobssrc/jobs | 21:47 (30%)21:47 (54%) | view | |
| 17 | x 2 | srcsrc | 1:23 (2%)1:23 (1%) | view | |
| 15 | x 2 | src/jobssrc/jobs | 30:48 (24%)44:62 (19%) | view | |
| 15 | x 2 | src/jobssrc/jobs | 30:48 (23%)44:62 (19%) | view | |
| 15 | x 2 | src/jobssrc/jobs | 30:48 (24%)44:62 (23%) | view | |
| 15 | x 2 | src/jobssrc/jobs | 44:62 (23%)30:48 (23%) | view | |
| 14 | x 2 | srcsrc | 163:176 (1%)346:359 (1%) | view | |
| 14 | x 2 | srcsrc | 163:176 (1%)453:466 (1%) | view | |
| 14 | x 2 | srcsrc | 163:176 (1%)138:151 (1%) | view | |
| 14 | x 2 | srcsrc | 163:176 (1%)245:258 (1%) | view | |
| 14 | x 2 | srcsrc | 163:176 (1%)494:507 (1%) | view | |
| 14 | x 2 | srcsrc | 163:176 (1%)601:614 (1%) | view |
Most Frequent Duplicates
The list of 50 most frequently found duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 6 | x 15 | srcsrcsrcsrcsrcsrcsrcsrcsrcsrc... | 1:6 (26%)1:6 (26%)1:6 (26%)1:6 (30%)1:6 (5%)1:6 (35%)1:6 (<1%)1:6 (35%)1:6 (26%)1:6 (30%)... | view | |
| 6 | x 13 | srcsrcsrcsrcsrcsrcsrcsrcsrcsrc... | 5:10 (26%)5:10 (26%)5:10 (26%)5:10 (30%)5:10 (35%)5:10 (35%)5:10 (26%)5:10 (30%)5:10 (26%)5:10 (30%)... | view | |
| 6 | x 12 | srcsrcsrcsrcsrcsrcsrcsrcsrcsrc... | 3:8 (26%)3:8 (26%)3:8 (26%)3:8 (30%)3:8 (35%)3:8 (35%)3:8 (26%)3:8 (30%)3:8 (26%)3:8 (30%)... | view | |
| 6 | x 12 | srcsrcsrcsrcsrcsrcsrcsrcsrcsrc... | 4:9 (26%)4:9 (26%)4:9 (26%)4:9 (30%)4:9 (35%)4:9 (35%)4:9 (26%)4:9 (30%)4:9 (26%)4:9 (30%)... | view | |
| 6 | x 12 | srcsrcsrcsrcsrcsrcsrcsrcsrcsrc... | 2:7 (26%)2:7 (26%)2:7 (26%)2:7 (30%)2:7 (35%)2:7 (35%)2:7 (26%)2:7 (30%)2:7 (26%)2:7 (30%)... | view | |
| 6 | x 9 | srcsrcsrcsrcsrcsrcsrcsrcsrc | 299:308 (<1%)447:456 (<1%)534:543 (<1%)627:636 (<1%)680:689 (<1%)710:719 (<1%)682:691 (<1%)775:784 (<1%)836:845 (<1%) | view | |
| 6 | x 9 | srcsrcsrcsrcsrcsrcsrcsrcsrc | 301:309 (<1%)449:457 (<1%)536:544 (<1%)629:637 (<1%)682:690 (<1%)712:720 (<1%)684:692 (<1%)777:785 (<1%)838:846 (<1%) | view | |
| 6 | x 9 | srcsrcsrcsrcsrcsrcsrcsrcsrc | 6:13 (35%)6:13 (35%)6:13 (26%)6:13 (30%)6:13 (26%)6:12 (30%)6:13 (26%)6:12 (30%)6:13 (26%) | view | |
| 6 | x 9 | srcsrcsrcsrcsrcsrcsrcsrcsrc | 23:30 (26%)22:29 (26%)23:30 (26%)19:26 (30%)23:30 (26%)18:25 (30%)18:25 (30%)23:30 (26%)23:30 (26%) | view | |
| 6 | x 9 | srcsrcsrcsrcsrcsrcsrcsrcsrc | 21:28 (26%)20:27 (26%)21:28 (26%)17:24 (30%)21:28 (26%)16:23 (30%)16:23 (30%)21:28 (26%)21:28 (26%) | view | |
| 6 | x 9 | srcsrcsrcsrcsrcsrcsrcsrcsrc | 22:29 (26%)21:28 (26%)22:29 (26%)18:25 (30%)22:29 (26%)17:24 (30%)17:24 (30%)22:29 (26%)22:29 (26%) | view | |
| 6 | x 9 | srcsrcsrcsrcsrcsrcsrcsrcsrc | 298:304 (<1%)446:452 (<1%)533:539 (<1%)626:632 (<1%)679:685 (<1%)709:715 (<1%)681:687 (<1%)774:780 (<1%)835:841 (<1%) | view | |
| 6 | x 8 | databasedatabasedatabasedatabasedatabasedatabasedatabasedatabase | 7:12 (11%)7:12 (17%)7:12 (16%)7:12 (17%)45:51 (16%)43:49 (17%)61:67 (11%)44:50 (17%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 164:169 (<1%)139:144 (<1%)347:352 (<1%)454:459 (<1%)246:251 (<1%)495:500 (<1%)602:607 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 203:208 (<1%)186:191 (<1%)394:399 (<1%)501:506 (<1%)293:298 (<1%)542:547 (<1%)649:654 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 140:145 (<1%)112:117 (<1%)320:325 (<1%)426:431 (<1%)218:223 (<1%)468:473 (<1%)574:579 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 185:190 (<1%)163:168 (<1%)371:376 (<1%)478:483 (<1%)270:275 (<1%)519:524 (<1%)626:631 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 212:217 (<1%)195:200 (<1%)403:408 (<1%)510:515 (<1%)302:307 (<1%)551:556 (<1%)658:663 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 187:192 (<1%)165:170 (<1%)373:378 (<1%)480:485 (<1%)272:277 (<1%)521:526 (<1%)628:633 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 204:209 (<1%)187:192 (<1%)395:400 (<1%)502:507 (<1%)294:299 (<1%)543:548 (<1%)650:655 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 168:173 (<1%)143:148 (<1%)351:356 (<1%)458:463 (<1%)250:255 (<1%)499:504 (<1%)606:611 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 171:176 (<1%)146:151 (<1%)354:359 (<1%)461:466 (<1%)253:258 (<1%)502:507 (<1%)609:614 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 141:146 (<1%)113:118 (<1%)321:326 (<1%)427:432 (<1%)219:224 (<1%)469:474 (<1%)575:580 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 208:213 (<1%)191:196 (<1%)399:404 (<1%)506:511 (<1%)298:303 (<1%)547:552 (<1%)654:659 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 205:210 (<1%)188:193 (<1%)396:401 (<1%)503:508 (<1%)295:300 (<1%)544:549 (<1%)651:656 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 139:144 (<1%)111:116 (<1%)319:324 (<1%)425:430 (<1%)217:222 (<1%)467:472 (<1%)573:578 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 137:142 (<1%)109:114 (<1%)317:322 (<1%)423:428 (<1%)215:220 (<1%)465:470 (<1%)571:576 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 193:198 (<1%)172:177 (<1%)380:385 (<1%)487:492 (<1%)279:284 (<1%)528:533 (<1%)635:640 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 155:160 (<1%)129:134 (<1%)337:342 (<1%)444:449 (<1%)236:241 (<1%)485:490 (<1%)592:597 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 166:171 (<1%)141:146 (<1%)349:354 (<1%)456:461 (<1%)248:253 (<1%)497:502 (<1%)604:609 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 169:174 (<1%)144:149 (<1%)352:357 (<1%)459:464 (<1%)251:256 (<1%)500:505 (<1%)607:612 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 163:168 (<1%)138:143 (<1%)346:351 (<1%)453:458 (<1%)245:250 (<1%)494:499 (<1%)601:606 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 186:191 (<1%)164:169 (<1%)372:377 (<1%)479:484 (<1%)271:276 (<1%)520:525 (<1%)627:632 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 138:143 (<1%)110:115 (<1%)318:323 (<1%)424:429 (<1%)216:221 (<1%)466:471 (<1%)572:577 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 206:211 (<1%)189:194 (<1%)397:402 (<1%)504:509 (<1%)296:301 (<1%)545:550 (<1%)652:657 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 156:161 (<1%)130:135 (<1%)338:343 (<1%)445:450 (<1%)237:242 (<1%)486:491 (<1%)593:598 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 297:303 (<1%)445:451 (<1%)532:538 (<1%)625:631 (<1%)678:684 (<1%)680:686 (<1%)773:779 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 210:215 (<1%)193:198 (<1%)401:406 (<1%)508:513 (<1%)300:305 (<1%)549:554 (<1%)656:661 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 181:186 (<1%)159:164 (<1%)367:372 (<1%)474:479 (<1%)266:271 (<1%)515:520 (<1%)622:627 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 202:207 (<1%)185:190 (<1%)393:398 (<1%)500:505 (<1%)292:297 (<1%)541:546 (<1%)648:653 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 170:175 (<1%)145:150 (<1%)353:358 (<1%)460:465 (<1%)252:257 (<1%)501:506 (<1%)608:613 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 211:216 (<1%)194:199 (<1%)402:407 (<1%)509:514 (<1%)301:306 (<1%)550:555 (<1%)657:662 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 135:140 (<1%)107:112 (<1%)315:320 (<1%)421:426 (<1%)213:218 (<1%)463:468 (<1%)569:574 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 184:189 (<1%)162:167 (<1%)370:375 (<1%)477:482 (<1%)269:274 (<1%)518:523 (<1%)625:630 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 201:206 (<1%)184:189 (<1%)392:397 (<1%)499:504 (<1%)291:296 (<1%)540:545 (<1%)647:652 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 147:152 (<1%)120:125 (<1%)328:333 (<1%)564:569 (<1%)343:348 (<1%)476:481 (<1%)712:717 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 165:170 (<1%)140:145 (<1%)348:353 (<1%)455:460 (<1%)247:252 (<1%)496:501 (<1%)603:608 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 207:212 (<1%)190:195 (<1%)398:403 (<1%)505:510 (<1%)297:302 (<1%)546:551 (<1%)653:658 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 214:219 (<1%)197:202 (<1%)405:410 (<1%)512:517 (<1%)304:309 (<1%)553:558 (<1%)660:665 (<1%) | view | |
| 6 | x 7 | srcsrcsrcsrcsrcsrcsrc | 209:214 (<1%)192:197 (<1%)400:405 (<1%)507:512 (<1%)299:304 (<1%)548:553 (<1%)655:660 (<1%) | 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."