guardian/editorial-design-website
Duplication Places in code with 6 or more lines that are exactly the same. |
Duplication Overall
- 18% duplication:
- 4,804 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
- 865 duplicated lines
- 438 duplicates
Duplication per Extension
Duplication per Component (primary)
Longest Duplicates
The list of 50 longest duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 36 | x 2 | src/routes/interactive-embed/componentssrc/routes/interactive-embed/components | 117:154 (26%)115:152 (25%) | view | |
| 16 | x 2 | src/lib/stylessrc/lib/styles | 323:339 (1%)380:396 (1%) | view | |
| 16 | x 2 | src/lib/stylessrc/lib/styles | 342:358 (1%)361:377 (1%) | view | |
| 13 | x 2 | src/routes/interactive-embed/componentssrc/routes/interactive-embed/components | 24:38 (9%)38:51 (9%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 3:14 (3%)16:27 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 11:22 (3%)63:74 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 11:22 (3%)115:126 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 12:23 (3%)38:49 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 24:35 (3%)76:87 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 24:35 (3%)128:139 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 29:40 (3%)42:53 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 37:48 (3%)89:100 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 37:48 (3%)141:152 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 50:61 (3%)102:113 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 51:62 (3%)77:88 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 55:66 (3%)68:79 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 63:74 (3%)115:126 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 64:75 (3%)90:101 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 76:87 (3%)128:139 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 81:92 (3%)94:105 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 89:100 (3%)141:152 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 103:114 (3%)129:140 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 107:118 (3%)120:131 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 107:118 (3%)211:222 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 107:118 (3%)224:235 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 107:118 (3%)315:326 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 107:118 (3%)328:339 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 116:127 (3%)142:153 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 120:131 (3%)211:222 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 120:131 (3%)224:235 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 120:131 (3%)315:326 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 120:131 (3%)328:339 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 133:144 (3%)146:157 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 133:144 (3%)237:248 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 133:144 (3%)250:261 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 133:144 (3%)341:352 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 146:157 (3%)237:248 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 146:157 (3%)250:261 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 146:157 (3%)341:352 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 154:165 (3%)206:217 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 155:166 (3%)181:192 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 159:170 (3%)172:183 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 159:170 (3%)263:274 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 159:170 (3%)276:287 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 167:178 (3%)219:230 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 168:179 (3%)194:205 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 172:183 (3%)263:274 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 172:183 (3%)276:287 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 180:191 (3%)232:243 (3%) | view | |
| 12 | x 2 | src/lib/stylessrc/lib/styles | 185:196 (3%)198:209 (3%) | view |
Most Frequent Duplicates
The list of 50 most frequently found duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 6 | x 28 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles... | 3:8 (1%)16:21 (1%)29:34 (1%)42:47 (1%)55:60 (1%)68:73 (1%)81:86 (1%)94:99 (1%)107:112 (1%)120:125 (1%)... | view | |
| 6 | x 28 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles... | 4:9 (1%)17:22 (1%)30:35 (1%)43:48 (1%)56:61 (1%)69:74 (1%)82:87 (1%)95:100 (1%)108:113 (1%)121:126 (1%)... | view | |
| 6 | x 12 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles... | 109:114 (1%)122:127 (1%)135:140 (1%)148:153 (1%)213:218 (1%)226:231 (1%)239:244 (1%)252:257 (1%)317:322 (1%)330:335 (1%)... | view | |
| 6 | x 8 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 161:166 (1%)174:179 (1%)187:192 (1%)200:205 (1%)265:270 (1%)278:283 (1%)291:296 (1%)304:309 (1%) | view | |
| 6 | x 6 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 137:142 (1%)150:155 (1%)241:246 (1%)254:259 (1%)345:350 (1%)358:363 (1%) | view | |
| 6 | x 6 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 2:7 (1%)28:33 (1%)54:59 (1%)80:85 (1%)106:111 (1%)132:137 (1%) | view | |
| 6 | x 6 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 138:143 (1%)151:156 (1%)242:247 (1%)255:260 (1%)346:351 (1%)359:364 (1%) | view | |
| 6 | x 6 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 12:17 (1%)38:43 (1%)64:69 (1%)90:95 (1%)116:121 (1%)142:147 (1%) | view | |
| 6 | x 6 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 15:20 (1%)41:46 (1%)67:72 (1%)93:98 (1%)119:124 (1%)145:150 (1%) | view | |
| 6 | x 6 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 149:155 (<1%)244:250 (<1%)434:440 (<1%)500:506 (<1%)652:658 (<1%)823:829 (<1%) | view | |
| 6 | x 6 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 13:18 (1%)39:44 (1%)65:70 (1%)91:96 (1%)117:122 (1%)143:148 (1%) | view | |
| 6 | x 6 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 111:116 (1%)124:129 (1%)215:220 (1%)228:233 (1%)319:324 (1%)332:337 (1%) | view | |
| 6 | x 6 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 14:19 (1%)40:45 (1%)66:71 (1%)92:97 (1%)118:123 (1%)144:149 (1%) | view | |
| 6 | x 6 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 136:141 (1%)149:154 (1%)240:245 (1%)253:258 (1%)344:349 (1%)357:362 (1%) | view | |
| 6 | x 6 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 113:118 (1%)126:131 (1%)217:222 (1%)230:235 (1%)321:326 (1%)334:339 (1%) | view | |
| 6 | x 6 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 110:115 (1%)123:128 (1%)214:219 (1%)227:232 (1%)318:323 (1%)331:336 (1%) | view | |
| 6 | x 6 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 1:6 (1%)27:32 (1%)53:58 (1%)79:84 (1%)105:110 (1%)131:136 (1%) | view | |
| 6 | x 6 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 112:117 (1%)125:130 (1%)216:221 (1%)229:234 (1%)320:325 (1%)333:338 (1%) | view | |
| 6 | x 5 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 25:30 (1%)51:56 (1%)77:82 (1%)103:108 (1%)129:134 (1%) | view | |
| 6 | x 5 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 139:144 (1%)152:157 (1%)243:248 (1%)256:261 (1%)347:352 (1%) | view | |
| 6 | x 5 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 26:31 (1%)52:57 (1%)78:83 (1%)104:109 (1%)130:135 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 273:278 (1%)299:304 (1%)325:330 (1%)351:356 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 274:279 (1%)300:305 (1%)326:331 (1%)352:357 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 163:168 (1%)176:181 (1%)267:272 (1%)280:285 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 262:267 (1%)288:293 (1%)314:319 (1%)340:345 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 272:277 (1%)298:303 (1%)324:329 (1%)350:355 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 206:212 (<1%)358:364 (<1%)595:601 (<1%)747:753 (<1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 157:162 (1%)183:188 (1%)209:214 (1%)235:240 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 275:280 (1%)301:306 (1%)327:332 (1%)353:358 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 187:193 (<1%)339:345 (<1%)576:582 (<1%)728:734 (<1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 164:169 (1%)177:182 (1%)268:273 (1%)281:286 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 168:174 (<1%)263:269 (<1%)519:525 (<1%)671:677 (<1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 168:173 (1%)194:199 (1%)220:225 (1%)246:251 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 171:176 (1%)197:202 (1%)223:228 (1%)249:254 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 260:265 (1%)286:291 (1%)312:317 (1%)338:343 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 156:161 (1%)182:187 (1%)208:213 (1%)234:239 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 261:266 (1%)287:292 (1%)313:318 (1%)339:344 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 191:196 (1%)204:209 (1%)295:300 (1%)308:313 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 165:170 (1%)178:183 (1%)269:274 (1%)282:287 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 188:193 (1%)201:206 (1%)292:297 (1%)305:310 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 155:160 (1%)181:186 (1%)207:212 (1%)233:238 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 190:195 (1%)203:208 (1%)294:299 (1%)307:312 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 162:167 (1%)175:180 (1%)266:271 (1%)279:284 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 57:62 (1%)70:75 (1%)83:88 (1%)96:101 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 170:175 (1%)196:201 (1%)222:227 (1%)248:253 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 5:10 (1%)18:23 (1%)31:36 (1%)44:49 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 169:174 (1%)195:200 (1%)221:226 (1%)247:252 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 189:194 (1%)202:207 (1%)293:298 (1%)306:311 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 158:163 (1%)184:189 (1%)210:215 (1%)236:241 (1%) | view | |
| 6 | x 4 | src/lib/stylessrc/lib/stylessrc/lib/stylessrc/lib/styles | 259:264 (1%)285:290 (1%)311:316 (1%)337:342 (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."