guardian/oz-2022-covid-rates-explainer
Duplication Places in code with 6 or more lines that are exactly the same. |
Duplication Overall
- 71% duplication:
- 4,565 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
- 3,261 duplicated lines
- 186 duplicates
Duplication per Extension
Duplication per Component (primary)
Longest Duplicates
The list of 50 longest duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 383 | x 2 | atoms/over-fifty/client/cssatoms/rates-circles/client/css | 1:478 (100%)1:478 (100%) | view | |
| 383 | x 2 | atoms/default/client/cssatoms/over-fifty/client/css | 1:478 (100%)1:478 (100%) | view | |
| 383 | x 2 | atoms/default/client/cssatoms/rates-circles/client/css | 1:478 (100%)1:478 (100%) | view | |
| 217 | x 2 | atoms/default/client/jsatoms/over-fifty/client/js | 294:594 (47%)294:594 (47%) | view | |
| 215 | x 2 | atoms/default/client/jsatoms/over-fifty/client/js | 24:292 (46%)24:292 (46%) | view | |
| 107 | x 2 | atoms/default/client/cssatoms/over-fifty/client/css | 2:135 (100%)2:135 (100%) | view | |
| 99 | x 2 | shared/cssshared/css | 1:112 (94%)1:112 (94%) | view | |
| 50 | x 2 | atoms/default/client/cssatoms/rates-circles/client/css | 1:72 (100%)1:72 (100%) | view | |
| 50 | x 2 | atoms/default/client/cssatoms/over-fifty/client/css | 1:72 (100%)1:72 (100%) | view | |
| 50 | x 2 | atoms/over-fifty/client/cssatoms/rates-circles/client/css | 1:72 (100%)1:72 (100%) | view | |
| 38 | x 2 | atoms/default/client/jsatoms/rates-circles/client/js | 492:547 (8%)538:592 (5%) | view | |
| 38 | x 2 | atoms/over-fifty/client/jsatoms/rates-circles/client/js | 492:547 (8%)538:592 (5%) | view | |
| 37 | x 2 | atoms/over-fifty/client/cssatoms/rates-circles/client/css | 31:75 (34%)44:88 (28%) | view | |
| 37 | x 2 | atoms/default/client/cssatoms/rates-circles/client/css | 31:75 (34%)44:88 (28%) | view | |
| 35 | x 2 | atoms/over-fifty/client/cssatoms/rates-circles/client/css | 91:135 (32%)124:168 (26%) | view | |
| 35 | x 2 | atoms/default/client/cssatoms/rates-circles/client/css | 91:135 (32%)124:168 (26%) | view | |
| 32 | x 2 | atoms/default/client/jsatoms/rates-circles/client/js | 243:278 (6%)299:333 (4%) | view | |
| 32 | x 2 | atoms/over-fifty/client/jsatoms/rates-circles/client/js | 243:278 (6%)299:333 (4%) | view | |
| 21 | x 2 | shared/jsshared/js | 46:84 (38%)90:128 (27%) | view | |
| 18 | x 2 | atoms/default/client/jsatoms/rates-circles/client/js | 1:24 (100%)1:24 (100%) | view | |
| 18 | x 2 | atoms/default/client/jsatoms/over-fifty/client/js | 1:24 (100%)1:24 (100%) | view | |
| 18 | x 2 | atoms/over-fifty/client/jsatoms/rates-circles/client/js | 1:24 (100%)1:24 (100%) | view | |
| 16 | x 2 | atoms/default/client/jsatoms/rates-circles/client/js | 210:228 (3%)253:271 (2%) | view | |
| 16 | x 2 | atoms/over-fifty/client/jsatoms/rates-circles/client/js | 210:228 (3%)253:271 (2%) | view | |
| 16 | x 2 | atoms/over-fifty/client/jsatoms/rates-circles/client/js | 594:620 (3%)855:881 (2%) | view | |
| 15 | x 2 | atoms/over-fifty/client/jsatoms/rates-circles/client/js | 1:22 (100%)1:22 (100%) | view | |
| 15 | x 2 | atoms/default/client/jsatoms/over-fifty/client/js | 1:22 (100%)1:22 (100%) | view | |
| 15 | x 2 | atoms/default/client/jsatoms/rates-circles/client/js | 1:22 (100%)1:22 (100%) | view | |
| 15 | x 2 | atoms/default/client/jsatoms/rates-circles/client/js | 24:42 (3%)30:48 (2%) | view | |
| 15 | x 2 | atoms/over-fifty/client/jsatoms/rates-circles/client/js | 24:42 (3%)30:48 (2%) | view | |
| 14 | x 2 | atoms/rates-circles/client/jsatoms/rates-circles/client/js | 554:573 (2%)733:752 (2%) | view | |
| 14 | x 2 | shared/jsshared/js | 25:39 (25%)41:55 (18%) | view | |
| 14 | x 2 | atoms/default/client/jsatoms/over-fifty/client/js | 601:620 (3%)601:620 (3%) | view | |
| 14 | x 2 | atoms/default/client/jsatoms/rates-circles/client/js | 508:527 (3%)733:752 (2%) | view | |
| 14 | x 2 | atoms/default/client/jsatoms/rates-circles/client/js | 601:620 (3%)862:881 (2%) | view | |
| 14 | x 2 | atoms/over-fifty/client/jsatoms/rates-circles/client/js | 508:527 (3%)733:752 (2%) | view | |
| 13 | x 2 | atoms/over-fifty/client/cssatoms/rates-circles/client/css | 77:92 (12%)90:105 (9%) | view | |
| 13 | x 2 | atoms/default/client/cssatoms/rates-circles/client/css | 77:92 (12%)90:105 (9%) | view | |
| 12 | x 2 | shared/jsshared/js | 3:14 (22%)5:16 (15%) | view | |
| 12 | x 2 | atoms/default/client/jsatoms/rates-circles/client/js | 347:362 (2%)469:484 (1%) | view | |
| 12 | x 2 | atoms/over-fifty/client/jsatoms/rates-circles/client/js | 277:297 (2%)351:368 (1%) | view | |
| 12 | x 2 | atoms/over-fifty/client/jsatoms/rates-circles/client/js | 347:362 (2%)469:484 (1%) | view | |
| 11 | x 2 | atoms/rates-circles/client/jsatoms/rates-circles/client/js | 538:552 (1%)717:731 (1%) | view | |
| 11 | x 2 | atoms/over-fifty/client/cssatoms/rates-circles/client/css | 2:16 (10%)2:19 (8%) | view | |
| 11 | x 2 | atoms/default/client/cssatoms/rates-circles/client/css | 2:16 (10%)2:19 (8%) | view | |
| 11 | x 2 | atoms/default/client/jsatoms/rates-circles/client/js | 90:100 (2%)122:132 (1%) | view | |
| 11 | x 2 | atoms/default/client/jsatoms/rates-circles/client/js | 492:506 (2%)717:731 (1%) | view | |
| 11 | x 2 | atoms/over-fifty/client/jsatoms/rates-circles/client/js | 90:100 (2%)122:132 (1%) | view | |
| 11 | x 2 | atoms/over-fifty/client/jsatoms/rates-circles/client/js | 492:506 (2%)717:731 (1%) | view | |
| 10 | x 2 | atoms/default/client/jsatoms/default/client/js | 312:323 (2%)408:419 (2%) | view |
Most Frequent Duplicates
The list of 50 most frequently found duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 6 | x 9 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/over-fifty/client/jsatoms/over-fifty/client/jsatoms/default/client/jsatoms/default/client/jsatoms/rates-circles/client/jsatoms/rates-circles/client/js | 334:340 (1%)445:451 (<1%)334:340 (1%)430:436 (1%)558:564 (1%)430:436 (1%)558:564 (1%)609:615 (<1%)808:814 (<1%) | view | |
| 6 | x 9 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/over-fifty/client/jsatoms/over-fifty/client/jsatoms/default/client/jsatoms/default/client/jsatoms/rates-circles/client/jsatoms/rates-circles/client/js | 312:318 (1%)400:406 (<1%)312:318 (1%)408:414 (1%)536:542 (1%)408:414 (1%)536:542 (1%)581:587 (<1%)768:774 (<1%) | view | |
| 6 | x 9 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/over-fifty/client/jsatoms/over-fifty/client/jsatoms/default/client/jsatoms/default/client/jsatoms/rates-circles/client/jsatoms/rates-circles/client/js | 333:339 (1%)444:450 (<1%)333:339 (1%)429:435 (1%)557:563 (1%)429:435 (1%)557:563 (1%)608:614 (<1%)807:813 (<1%) | view | |
| 6 | x 9 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/over-fifty/client/jsatoms/over-fifty/client/jsatoms/default/client/jsatoms/default/client/jsatoms/rates-circles/client/jsatoms/rates-circles/client/js | 315:321 (1%)403:409 (<1%)315:321 (1%)411:417 (1%)539:545 (1%)411:417 (1%)539:545 (1%)584:590 (<1%)771:777 (<1%) | view | |
| 6 | x 9 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/over-fifty/client/jsatoms/over-fifty/client/jsatoms/default/client/jsatoms/default/client/jsatoms/rates-circles/client/jsatoms/rates-circles/client/js | 331:337 (1%)442:448 (<1%)331:337 (1%)427:433 (1%)555:561 (1%)427:433 (1%)555:561 (1%)606:612 (<1%)805:811 (<1%) | view | |
| 6 | x 9 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/over-fifty/client/jsatoms/over-fifty/client/jsatoms/default/client/jsatoms/default/client/jsatoms/rates-circles/client/jsatoms/rates-circles/client/js | 314:320 (1%)402:408 (<1%)314:320 (1%)410:416 (1%)538:544 (1%)410:416 (1%)538:544 (1%)583:589 (<1%)770:776 (<1%) | view | |
| 6 | x 7 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/rates-circles/client/jsatoms/rates-circles/client/jsatoms/over-fifty/client/jsatoms/default/client/js | 244:249 (1%)171:176 (<1%)244:249 (1%)300:305 (<1%)309:314 (<1%)253:258 (1%)253:258 (1%) | view | |
| 6 | x 7 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/over-fifty/client/jsatoms/over-fifty/client/jsatoms/default/client/jsatoms/default/client/js | 336:342 (1%)611:617 (<1%)336:342 (1%)432:438 (1%)560:566 (1%)432:438 (1%)560:566 (1%) | view | |
| 6 | x 7 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/over-fifty/client/jsatoms/over-fifty/client/jsatoms/default/client/jsatoms/default/client/js | 317:323 (1%)586:592 (<1%)317:323 (1%)413:419 (1%)541:547 (1%)413:419 (1%)541:547 (1%) | view | |
| 6 | x 7 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/rates-circles/client/jsatoms/rates-circles/client/jsatoms/over-fifty/client/jsatoms/default/client/js | 245:250 (1%)172:177 (<1%)245:250 (1%)301:306 (<1%)310:315 (<1%)254:259 (1%)254:259 (1%) | view | |
| 6 | x 7 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/over-fifty/client/jsatoms/over-fifty/client/jsatoms/default/client/jsatoms/default/client/js | 335:341 (1%)610:616 (<1%)335:341 (1%)431:437 (1%)559:565 (1%)431:437 (1%)559:565 (1%) | view | |
| 6 | x 7 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/over-fifty/client/jsatoms/over-fifty/client/jsatoms/default/client/jsatoms/default/client/js | 316:322 (1%)585:591 (<1%)316:322 (1%)412:418 (1%)540:546 (1%)412:418 (1%)540:546 (1%) | view | |
| 6 | x 6 | atoms/default/client/cssatoms/over-fifty/client/cssatoms/rates-circles/client/cssatoms/rates-circles/client/cssatoms/default/client/cssatoms/over-fifty/client/css | 105:110 (5%)105:110 (5%)138:143 (4%)154:159 (4%)121:126 (5%)121:126 (5%) | view | |
| 6 | x 6 | atoms/over-fifty/client/cssatoms/rates-circles/client/cssatoms/default/client/cssatoms/over-fifty/client/cssatoms/rates-circles/client/cssatoms/default/client/css | 71:78 (1%)71:78 (1%)71:78 (1%)184:191 (1%)184:191 (1%)184:191 (1%) | view | |
| 6 | x 6 | atoms/over-fifty/client/cssatoms/rates-circles/client/cssatoms/default/client/cssatoms/over-fifty/client/cssatoms/rates-circles/client/cssatoms/default/client/css | 73:79 (1%)73:79 (1%)73:79 (1%)186:192 (1%)186:192 (1%)186:192 (1%) | view | |
| 6 | x 6 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/over-fifty/client/jsatoms/default/client/jsatoms/rates-circles/client/js | 263:268 (1%)318:323 (<1%)263:268 (1%)272:277 (1%)272:277 (1%)327:332 (<1%) | view | |
| 6 | x 6 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/over-fifty/client/jsatoms/default/client/jsatoms/rates-circles/client/js | 264:269 (1%)319:324 (<1%)264:269 (1%)273:278 (1%)273:278 (1%)328:333 (<1%) | view | |
| 6 | x 4 | atoms/default/client/jsatoms/over-fifty/client/jsatoms/over-fifty/client/jsatoms/default/client/js | 462:467 (1%)462:467 (1%)582:587 (1%)582:587 (1%) | view | |
| 6 | x 4 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/rates-circles/client/js | 514:522 (1%)560:568 (<1%)514:522 (1%)739:747 (<1%) | view | |
| 6 | x 4 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/rates-circles/client/js | 496:503 (1%)542:549 (<1%)496:503 (1%)721:728 (<1%) | view | |
| 6 | x 4 | atoms/rates-circles/client/jsatoms/rates-circles/client/jsatoms/rates-circles/client/jsatoms/rates-circles/client/js | 413:420 (<1%)455:462 (<1%)781:788 (<1%)818:825 (<1%) | view | |
| 6 | x 4 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/rates-circles/client/js | 516:525 (1%)562:571 (<1%)516:525 (1%)741:750 (<1%) | view | |
| 6 | x 4 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/rates-circles/client/js | 521:527 (1%)567:573 (<1%)521:527 (1%)746:752 (<1%) | view | |
| 6 | x 4 | atoms/default/client/jsatoms/over-fifty/client/jsatoms/over-fifty/client/jsatoms/default/client/js | 461:466 (1%)461:466 (1%)581:586 (1%)581:586 (1%) | view | |
| 6 | x 4 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/rates-circles/client/js | 508:515 (1%)554:561 (<1%)508:515 (1%)733:740 (<1%) | view | |
| 6 | x 4 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/rates-circles/client/js | 573:581 (1%)647:654 (<1%)573:581 (1%)832:838 (<1%) | view | |
| 6 | x 4 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/rates-circles/client/js | 520:526 (1%)566:572 (<1%)520:526 (1%)745:751 (<1%) | view | |
| 6 | x 4 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/rates-circles/client/js | 498:506 (1%)544:552 (<1%)498:506 (1%)723:731 (<1%) | view | |
| 6 | x 4 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/rates-circles/client/js | 515:523 (1%)561:569 (<1%)515:523 (1%)740:748 (<1%) | view | |
| 6 | x 4 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/rates-circles/client/js | 493:500 (1%)539:546 (<1%)493:500 (1%)718:725 (<1%) | view | |
| 6 | x 4 | atoms/default/client/jsatoms/over-fifty/client/jsatoms/over-fifty/client/jsatoms/default/client/js | 464:469 (1%)464:469 (1%)584:589 (1%)584:589 (1%) | view | |
| 6 | x 4 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/rates-circles/client/js | 494:502 (1%)540:548 (<1%)494:502 (1%)719:727 (<1%) | view | |
| 6 | x 4 | atoms/default/client/jsatoms/over-fifty/client/jsatoms/over-fifty/client/jsatoms/default/client/js | 463:468 (1%)463:468 (1%)583:588 (1%)583:588 (1%) | view | |
| 6 | x 4 | atoms/default/client/jsatoms/over-fifty/client/jsatoms/over-fifty/client/jsatoms/default/client/js | 459:465 (1%)459:465 (1%)579:585 (1%)579:585 (1%) | view | |
| 6 | x 4 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/rates-circles/client/js | 510:516 (1%)556:562 (<1%)510:516 (1%)735:741 (<1%) | view | |
| 6 | x 4 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/rates-circles/client/js | 512:521 (1%)558:567 (<1%)512:521 (1%)737:746 (<1%) | view | |
| 6 | x 4 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/rates-circles/client/js | 492:498 (1%)538:544 (<1%)492:498 (1%)717:723 (<1%) | view | |
| 6 | x 4 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/rates-circles/client/js | 497:504 (1%)543:550 (<1%)497:504 (1%)722:729 (<1%) | view | |
| 6 | x 4 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/jsatoms/rates-circles/client/js | 511:520 (1%)557:566 (<1%)511:520 (1%)736:745 (<1%) | view | |
| 6 | x 3 | atoms/over-fifty/client/cssatoms/rates-circles/client/cssatoms/default/client/css | 285:290 (1%)285:290 (1%)285:290 (1%) | view | |
| 6 | x 3 | atoms/over-fifty/client/cssatoms/rates-circles/client/cssatoms/default/client/css | 291:297 (1%)291:297 (1%)291:297 (1%) | view | |
| 6 | x 3 | atoms/over-fifty/client/cssatoms/rates-circles/client/cssatoms/default/client/css | 328:334 (1%)328:334 (1%)328:334 (1%) | view | |
| 6 | x 3 | atoms/over-fifty/client/cssatoms/rates-circles/client/cssatoms/default/client/css | 45:51 (12%)45:51 (12%)45:51 (12%) | view | |
| 6 | x 3 | atoms/over-fifty/client/cssatoms/rates-circles/client/cssatoms/default/client/css | 21:28 (1%)21:28 (1%)21:28 (1%) | view | |
| 6 | x 3 | atoms/default/client/cssatoms/over-fifty/client/cssatoms/rates-circles/client/css | 63:70 (5%)63:70 (5%)76:83 (4%) | view | |
| 6 | x 3 | atoms/over-fifty/client/cssatoms/rates-circles/client/cssatoms/default/client/css | 364:371 (1%)364:371 (1%)364:371 (1%) | view | |
| 6 | x 3 | atoms/default/client/cssatoms/over-fifty/client/cssatoms/rates-circles/client/css | 15:21 (1%)15:21 (1%)15:21 (1%) | view | |
| 6 | x 3 | atoms/over-fifty/client/cssatoms/rates-circles/client/cssatoms/default/client/css | 233:238 (1%)233:238 (1%)233:238 (1%) | view | |
| 6 | x 3 | atoms/over-fifty/client/cssatoms/rates-circles/client/cssatoms/default/client/css | 300:305 (1%)300:305 (1%)300:305 (1%) | view | |
| 6 | x 3 | atoms/default/client/jsatoms/over-fifty/client/jsatoms/rates-circles/client/js | 27:32 (1%)27:32 (1%)33:38 (<1%) | view |
Duplicated Units
The list of top 8 duplicated units.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 467 | x 2 | atoms/over-fifty/client/jsatoms/default/client/js | 4:620 4:620 | view | |
| 86 | x 2 | atoms/over-fifty/client/jsatoms/default/client/js | 476:597 476:597 | view | |
| 71 | x 2 | atoms/over-fifty/client/jsatoms/default/client/js | 376:474 376:474 | view | |
| 55 | x 2 | atoms/over-fifty/client/jsatoms/default/client/js | 300:374 300:374 | view | |
| 16 | x 3 | atoms/over-fifty/client/jsatoms/rates-circles/client/jsatoms/default/client/js | 6:26 6:26 6:26 | view | |
| 11 | x 2 | atoms/over-fifty/client/jsatoms/default/client/js | 581:594 581:594 | view | |
| 9 | x 2 | atoms/over-fifty/client/jsatoms/default/client/js | 362:372 362:372 | view | |
| 9 | x 2 | atoms/over-fifty/client/jsatoms/default/client/js | 461:472 461:472 | 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."