guardian/commercial-templates
Duplication Places in code with 6 or more lines that are exactly the same. |
Duplication Overall
- 17% duplication:
- 8,278 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
- 1,465 duplicated lines
- 136 duplicates
Duplication per Extension
Duplication per Component (primary)
Longest Duplicates
The list of 50 longest duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 46 | x 2 | src/routes/templates/fabric-custom-xlsrc/routes/templates/fabric-custom | svelte |
1:58 (93%)1:58 (93%) | view |
| 43 | x 2 | src/routes/templates/capi-multiple-paidforsrc/routes/templates/capi-single-paidfor | svelte |
101:150 (27%)71:121 (36%) | view |
| 42 | x 2 | src/lib/componentssrc/lib/components | 39:87 (42%)43:91 (40%) | view | |
| 27 | x 2 | src/lib/componentssrc/lib/components | 48:77 (17%)50:79 (20%) | view | |
| 26 | x 2 | src/lib/componentssrc/lib/components | 89:117 (26%)93:121 (25%) | view | |
| 25 | x 2 | src/routes/templates/image-nativesrc/routes/templates/mobile-revealer | svelte |
38:64 (36%)57:83 (20%) | view |
| 24 | x 2 | src/routes/templates/fabric-video-xlsrc/routes/templates/fabric-video | svelte |
15:38 (34%)15:38 (34%) | view |
| 24 | x 2 | src/routes/templates/fabric-video-xlsrc/routes/templates/fabric-video | svelte |
46:69 (34%)47:70 (34%) | view |
| 23 | x 2 | src/routes/templates/fabric-xlsrc/routes/templates/fabric | svelte |
15:38 (38%)15:38 (38%) | view |
| 21 | x 2 | src/routes/templates/fabric-xlsrc/routes/templates/fabric | svelte |
42:62 (35%)42:62 (35%) | view |
| 18 | x 2 | src/routes/templates/interscrollersrc/routes/templates/mobile-revealer | 16:37 (72%)16:37 (72%) | view | |
| 15 | x 2 | src/routes/templates/events-multiplesrc/routes/templates/manual-multiple | svelte |
104:119 (12%)112:127 (11%) | view |
| 15 | x 2 | src/routes/templates/interscrollersrc/routes/templates/mobile-revealer | svelte |
62:77 (19%)67:83 (12%) | view |
| 15 | x 2 | src/routes/templates/image-nativesrc/routes/templates/interscroller | svelte |
48:64 (21%)62:77 (19%) | view |
| 14 | x 2 | .github.github | 31:44 (17%)47:60 (17%) | view | |
| 13 | x 2 | src/styles/fontssrc/styles/fonts | 1:13 (100%)1:13 (100%) | view | |
| 12 | x 2 | src/routes/templates/fabric-video-xlsrc/routes/templates/fabric-xl | svelte |
53:64 (17%)50:61 (20%) | view |
| 12 | x 2 | src/routes/templates/fabric-videosrc/routes/templates/fabric | svelte |
54:65 (17%)50:61 (20%) | view |
| 12 | x 2 | src/routes/templates/fabric-video-xlsrc/routes/templates/fabric | svelte |
53:64 (17%)50:61 (20%) | view |
| 12 | x 2 | src/routes/templates/fabric-videosrc/routes/templates/fabric-xl | svelte |
54:65 (17%)50:61 (20%) | view |
| 11 | x 2 | src/routes/templates/events-multiplesrc/routes/templates/manual-multiple | svelte |
1:14 (9%)1:14 (8%) | view |
| 11 | x 2 | src/routes/templates/fabric-video-xlsrc/routes/templates/fabric-xl | svelte |
1:14 (15%)1:14 (18%) | view |
| 11 | x 2 | src/routes/templates/fabric-videosrc/routes/templates/fabric | svelte |
1:14 (15%)1:14 (18%) | view |
| 10 | x 2 | src/lib/components/iconssrc/lib/components/icons | 1:10 (10%)1:10 (9%) | view | |
| 10 | x 2 | src/lib/components/iconssrc/lib/components/icons | 1:10 (10%)1:10 (11%) | view | |
| 10 | x 2 | src/lib/components/iconssrc/lib/components/icons | 28:37 (20%)41:50 (15%) | view | |
| 9 | x 2 | src/lib/components/iconssrc/lib/components/icons | 496:504 (1%)2:10 (10%) | view | |
| 9 | x 2 | src/lib/components/iconssrc/lib/components/icons | 1:9 (10%)1:9 (8%) | view | |
| 9 | x 2 | src/lib/componentssrc/lib/components | 1:13 (75%)1:13 (75%) | view | |
| 9 | x 2 | src/lib/components/iconssrc/lib/components/icons | 2:10 (9%)496:504 (1%) | view | |
| 9 | x 2 | src/lib/components/iconssrc/lib/components/icons | 1:9 (9%)1:9 (10%) | view | |
| 9 | x 2 | src/routes/templates/fabric-custom-xlsrc/routes/templates/fabric-custom | 7:19 (81%)7:19 (81%) | view | |
| 9 | x 2 | src/routes/templates/capi-multiple-paidforsrc/routes/templates/events-multiple | svelte |
120:128 (5%)106:114 (7%) | view |
| 9 | x 2 | src/routes/templates/capi-single-paidforsrc/routes/templates/manual-multiple | svelte |
92:100 (7%)114:122 (6%) | view |
| 9 | x 2 | src/routes/templates/capi-multiple-paidforsrc/routes/templates/manual-multiple | svelte |
120:128 (5%)114:122 (6%) | view |
| 9 | x 2 | src/routes/templates/capi-single-paidforsrc/routes/templates/events-multiple | svelte |
92:100 (7%)106:114 (7%) | view |
| 9 | x 2 | src/routes/templates/image-nativesrc/routes/templates/mobile-revealer | 10:18 (52%)16:24 (36%) | view | |
| 9 | x 2 | src/routes/templates/image-nativesrc/routes/templates/interscroller | 10:18 (52%)16:24 (36%) | view | |
| 8 | x 2 | src/lib/components/iconssrc/lib/components/icons | 156:163 (1%)229:236 (1%) | view | |
| 8 | x 2 | src/routes/templates/fabric-xlsrc/routes/templates/fabric | svelte |
1:11 (13%)1:11 (13%) | view |
| 8 | x 2 | src/routes/templates/fabric-video-xlsrc/routes/templates/fabric-video | svelte |
1:11 (11%)1:11 (11%) | view |
| 8 | x 2 | src/routes/templates/image-nativesrc/routes/templates/mobile-revealer | svelte |
2:12 (11%)4:14 (6%) | view |
| 8 | x 2 | src/routes/templates/capi-multiple-paidforsrc/routes/templates/capi-single-paidfor | svelte |
9:19 (5%)9:19 (6%) | view |
| 8 | x 2 | src/routes/templates/capi-multiple-paidforsrc/routes/templates/capi-single-paidfor | svelte |
71:81 (5%)46:56 (6%) | view |
| 8 | x 2 | src/routes/templates/capi-multiple-paidforsrc/routes/templates/capi-single-paidfor | svelte |
168:176 (5%)127:135 (6%) | view |
| 8 | x 2 | src/routes/templates/events-multiplesrc/routes/templates/manual-multiple | svelte |
94:102 (6%)98:106 (6%) | view |
| 8 | x 2 | src/lib/componentssrc/lib/components | 32:39 (5%)33:40 (6%) | view | |
| 8 | x 2 | src/lib/components/iconssrc/lib/components/icons | 48:56 (16%)62:70 (12%) | view | |
| 8 | x 2 | src/libsrc/lib | 21:31 (27%)6:15 (14%) | view | |
| 8 | x 2 | src/routes/templates/fabric-video-xlsrc/routes/templates/fabric | svelte |
1:11 (11%)1:11 (13%) | view |
Most Frequent Duplicates
The list of 50 most frequently found duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 6 | x 7 | src/routes/templates/events-multiplesrc/routes/templates/manual-singlesrc/routes/templates/fabric-video-xlsrc/routes/templates/fabricsrc/routes/templates/fabric-videosrc/routes/templates/fabric-xlsrc/routes/templates/manual-multiple | 6:14 (5%)6:14 (4%)3:11 (8%)3:11 (10%)3:11 (8%)3:11 (10%)6:14 (4%) | view | |
| 6 | x 6 | src/lib/components/iconssrc/lib/components/iconssrc/lib/components/iconssrc/lib/components/iconssrc/lib/components/iconssrc/lib/components/icons | 2:7 (7%)92:97 (<1%)2:7 (5%)2:7 (6%)156:161 (<1%)229:234 (<1%) | view | |
| 6 | x 5 | src/routes/templates/fabric-video-xlsrc/routes/templates/fabricsrc/routes/templates/fabric-xlsrc/lib/componentssrc/routes/templates/fabric-video | 19:24 (8%)20:25 (10%)20:25 (10%)57:62 (1%)19:24 (8%) | view | |
| 6 | x 5 | src/routes/templates/capi-multiple-hostedsrc/routes/templates/manual-multiplesrc/routes/templates/capi-multiple-paidforsrc/routes/templates/events-multiplesrc/routes/templates/capi-single-paidfor | 134:139 (3%)117:122 (4%)123:128 (3%)109:114 (5%)95:100 (5%) | view | |
| 6 | x 5 | src/routes/templates/fabric-video-xlsrc/routes/templates/fabricsrc/routes/templates/fabric-xlsrc/lib/componentssrc/routes/templates/fabric-video | 28:33 (8%)29:34 (10%)29:34 (10%)63:68 (1%)28:33 (8%) | view | |
| 6 | x 4 | src/routes/templates/fabric-video-xlsrc/routes/templates/fabricsrc/routes/templates/fabric-xlsrc/routes/templates/fabric-video | 1:7 (8%)1:7 (10%)1:7 (10%)1:7 (8%) | view | |
| 6 | x 4 | src/routes/templates/fabric-video-xlsrc/routes/templates/fabricsrc/routes/templates/fabric-xlsrc/routes/templates/fabric-video | 53:58 (8%)50:55 (10%)50:55 (10%)54:59 (8%) | view | |
| 6 | x 4 | src/routes/templates/fabric-video-xlsrc/routes/templates/fabricsrc/routes/templates/fabric-xlsrc/routes/templates/fabric-video | 54:59 (8%)51:56 (10%)51:56 (10%)55:60 (8%) | view | |
| 6 | x 4 | src/lib/components/iconssrc/lib/components/iconssrc/lib/components/iconssrc/lib/components/icons | 496:501 (<1%)2:7 (6%)2:7 (6%)564:569 (<1%) | view | |
| 6 | x 4 | src/routes/templates/fabric-video-xlsrc/routes/templates/fabricsrc/routes/templates/fabric-xlsrc/routes/templates/fabric-video | 20:25 (8%)21:26 (10%)21:26 (10%)20:25 (8%) | view | |
| 6 | x 4 | src/routes/templates/capi-multiple-paidforsrc/routes/templates/events-multiplesrc/routes/templates/capi-single-paidforsrc/routes/templates/manual-multiple | 120:125 (3%)106:111 (5%)92:97 (5%)114:119 (4%) | view | |
| 6 | x 4 | src/routes/templates/fabric-video-xlsrc/routes/templates/fabricsrc/routes/templates/fabric-xlsrc/routes/templates/fabric-video | 57:62 (8%)54:59 (10%)54:59 (10%)58:63 (8%) | view | |
| 6 | x 4 | src/routes/templates/fabric-video-xlsrc/routes/templates/fabricsrc/routes/templates/fabric-xlsrc/routes/templates/fabric-video | 2:9 (8%)2:9 (10%)2:9 (10%)2:9 (8%) | view | |
| 6 | x 4 | src/routes/templates/capi-multiple-paidforsrc/routes/templates/events-multiplesrc/routes/templates/capi-single-paidforsrc/routes/templates/manual-multiple | 122:127 (3%)108:113 (5%)94:99 (5%)116:121 (4%) | view | |
| 6 | x 4 | src/routes/templates/fabric-video-xlsrc/routes/templates/fabricsrc/routes/templates/fabric-xlsrc/routes/templates/fabric-video | 56:61 (8%)53:58 (10%)53:58 (10%)57:62 (8%) | view | |
| 6 | x 4 | src/routes/templates/fabric-video-xlsrc/routes/templates/fabricsrc/routes/templates/fabric-xlsrc/routes/templates/fabric-video | 55:60 (8%)52:57 (10%)52:57 (10%)56:61 (8%) | view | |
| 6 | x 4 | src/routes/templates/fabric-video-xlsrc/routes/templates/fabricsrc/routes/templates/fabric-xlsrc/routes/templates/fabric-video | 59:64 (8%)56:61 (10%)56:61 (10%)60:65 (8%) | view | |
| 6 | x 4 | src/routes/templates/capi-multiple-paidforsrc/routes/templates/events-multiplesrc/routes/templates/capi-single-paidforsrc/routes/templates/manual-multiple | 121:126 (3%)107:112 (5%)93:98 (5%)115:120 (4%) | view | |
| 6 | x 4 | src/routes/templates/fabric-video-xlsrc/routes/templates/fabricsrc/routes/templates/fabric-xlsrc/routes/templates/fabric-video | 58:63 (8%)55:60 (10%)55:60 (10%)59:64 (8%) | view | |
| 6 | x 3 | src/routes/templates/interscrollersrc/routes/templates/mobile-revealersrc/routes/templates/image-native | 71:77 (7%)77:83 (5%)58:64 (8%) | view | |
| 6 | x 3 | src/lib/components/iconssrc/lib/components/iconssrc/lib/components/icons | 498:503 (<1%)4:9 (6%)4:9 (6%) | view | |
| 6 | x 3 | src/routes/templates/capi-multiple-hostedsrc/routes/templates/manual-multiplesrc/routes/templates/events-multiple | 135:140 (3%)118:123 (4%)110:115 (5%) | view | |
| 6 | x 3 | src/routes/templates/interscrollersrc/routes/templates/mobile-revealersrc/routes/templates/image-native | 63:68 (7%)68:73 (5%)49:54 (8%) | view | |
| 6 | x 3 | src/routes/templates/interscrollersrc/routes/templates/mobile-revealersrc/routes/templates/image-native | 68:73 (7%)73:79 (5%)54:60 (8%) | view | |
| 6 | x 3 | src/routes/templates/interscrollersrc/routes/templates/mobile-revealersrc/routes/templates/image-native | 62:67 (7%)67:72 (5%)48:53 (8%) | view | |
| 6 | x 3 | src/lib/components/iconssrc/lib/components/iconssrc/lib/components/icons | 1:6 (6%)1:6 (7%)1:6 (5%) | view | |
| 6 | x 3 | src/lib/fixturessrc/lib/fixturessrc/lib/fixtures | 82:87 (3%)97:102 (3%)112:117 (3%) | view | |
| 6 | x 3 | src/lib/components/iconssrc/lib/components/iconssrc/lib/components/icons | 499:504 (<1%)5:10 (6%)5:10 (6%) | view | |
| 6 | x 3 | src/lib/components/iconssrc/lib/components/iconssrc/lib/components/icons | 497:502 (<1%)3:8 (6%)3:8 (6%) | view | |
| 6 | x 3 | src/routes/templates/interscrollersrc/routes/templates/mobile-revealersrc/routes/templates/image-native | 70:75 (7%)75:81 (5%)56:62 (8%) | view | |
| 6 | x 3 | src/routes/templates/image-nativesrc/routes/templates/interscrollersrc/routes/templates/mobile-revealer | 11:16 (35%)17:22 (24%)17:22 (24%) | view | |
| 6 | x 3 | src/routes/templates/interscrollersrc/routes/templates/mobile-revealersrc/routes/templates/image-native | 66:71 (7%)71:77 (5%)52:58 (8%) | view | |
| 6 | x 3 | src/routes/templates/capi-multiple-paidforsrc/routes/templates/capi-single-paidforsrc/routes/templates/capi-multiple-hosted | 11:19 (3%)11:19 (5%)14:22 (3%) | view | |
| 6 | x 3 | src/lib/components/iconssrc/lib/components/iconssrc/lib/components/icons | 93:98 (<1%)157:162 (<1%)230:235 (<1%) | view | |
| 6 | x 3 | src/routes/templates/capi-multiple-hostedsrc/routes/templates/manual-multiplesrc/routes/templates/events-multiple | 136:142 (3%)119:125 (4%)111:117 (5%) | view | |
| 6 | x 3 | src/routes/templates/fabric-expandablesrc/routes/templates/fabric-videosrc/routes/templates/fabric | 12:19 (3%)6:13 (8%)6:13 (10%) | view | |
| 6 | x 3 | src/routes/templates/capi-multiple-paidforsrc/routes/templates/capi-single-paidforsrc/routes/templates/capi-multiple-hosted | 10:17 (3%)10:17 (5%)13:20 (3%) | view | |
| 6 | x 3 | src/routes/templates/image-nativesrc/routes/templates/interscrollersrc/routes/templates/mobile-revealer | 10:15 (35%)16:21 (24%)16:21 (24%) | view | |
| 6 | x 3 | src/routes/templates/fabric-custom-xlsrc/routes/templates/fabric-customsrc/routes/templates/super-billboard | 29:35 (12%)29:35 (12%)38:44 (4%) | view | |
| 6 | x 3 | src/routes/templates/fabric-custom-xlsrc/routes/templates/fabric-customsrc/routes/templates/super-billboard | 45:52 (12%)45:52 (12%)108:115 (4%) | view | |
| 6 | x 3 | src/routes/templates/interscrollersrc/routes/templates/mobile-revealersrc/routes/templates/image-native | 64:69 (7%)69:74 (5%)50:55 (8%) | view | |
| 6 | x 3 | src/routes/templates/fabric-expandablesrc/routes/templates/fabric-videosrc/routes/templates/fabric | 11:18 (3%)5:12 (8%)5:12 (10%) | view | |
| 6 | x 3 | src/lib/components/iconssrc/lib/components/iconssrc/lib/components/icons | 4:9 (6%)4:9 (7%)4:9 (5%) | view | |
| 6 | x 3 | src/routes/templates/fabric-custom-xlsrc/routes/templates/fabric-customsrc/routes/templates/super-billboard | 28:34 (12%)28:34 (12%)37:43 (4%) | view | |
| 6 | x 3 | src/routes/templates/image-nativesrc/routes/templates/interscrollersrc/routes/templates/mobile-revealer | 12:17 (35%)18:23 (24%)18:23 (24%) | view | |
| 6 | x 3 | src/routes/templates/interscrollersrc/routes/templates/mobile-revealersrc/routes/templates/image-native | 65:70 (7%)70:75 (5%)51:56 (8%) | view | |
| 6 | x 3 | src/lib/fixturessrc/lib/fixturessrc/lib/fixtures | 83:88 (3%)98:103 (3%)113:118 (3%) | view | |
| 6 | x 3 | src/lib/componentssrc/routes/templates/capi-multiple-paidforsrc/routes/templates/capi-single-paidfor | 299:304 (1%)135:142 (3%)107:113 (5%) | view | |
| 6 | x 3 | src/routes/templates/interscrollersrc/routes/templates/mobile-revealersrc/routes/templates/image-native | 69:74 (7%)74:80 (5%)55:61 (8%) | view | |
| 6 | x 3 | src/lib/components/iconssrc/lib/components/iconssrc/lib/components/icons | 3:8 (6%)3:8 (7%)3:8 (5%) | 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."