guardian/202208-seek-infographic
Duplication Places in code with 6 or more lines that are exactly the same. |
Duplication Overall
- 24% duplication:
- 5,804 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
- 1,432 duplicated lines
- 589 duplicates
Duplication per Extension
Duplication per Component (primary)
Longest Duplicates
The list of 50 longest duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 289 | x 2 | atoms/default/client/cssatoms/default/client/css | 1679:1967 (14%)2147:2448 (14%) | view | |
| 17 | x 2 | atoms/default/client/jsatoms/default/client/js | 53:73 (5%)169:189 (5%) | view | |
| 16 | x 2 | atoms/default/client/cssatoms/default/client/css | 1506:1523 (<1%)1974:1991 (<1%) | view | |
| 16 | x 2 | atoms/default/client/jsatoms/default/client/js | 97:116 (5%)329:348 (5%) | view | |
| 13 | x 2 | atoms/default/client/cssatoms/default/client/css | 1085:1097 (<1%)1130:1142 (<1%) | view | |
| 13 | x 2 | atoms/default/client/cssatoms/default/client/css | 1575:1587 (<1%)2043:2055 (<1%) | view | |
| 12 | x 2 | atoms/default/client/cssatoms/default/client/css | 601:612 (<1%)629:640 (<1%) | view | |
| 12 | x 2 | atoms/default/client/cssatoms/default/client/css | 601:612 (<1%)1333:1344 (<1%) | view | |
| 12 | x 2 | atoms/default/client/cssatoms/default/client/css | 629:640 (<1%)1333:1344 (<1%) | view | |
| 12 | x 2 | atoms/default/client/cssatoms/default/client/css | 785:796 (<1%)1395:1406 (<1%) | view | |
| 12 | x 2 | atoms/default/client/cssatoms/default/client/css | 1174:1185 (<1%)1840:1851 (<1%) | view | |
| 12 | x 2 | atoms/default/client/cssatoms/default/client/css | 1174:1185 (<1%)2316:2327 (<1%) | view | |
| 11 | x 2 | atoms/default/client/cssatoms/default/client/css | 848:858 (<1%)1174:1184 (<1%) | view | |
| 11 | x 2 | atoms/default/client/cssatoms/default/client/css | 848:858 (<1%)1840:1850 (<1%) | view | |
| 11 | x 2 | atoms/default/client/cssatoms/default/client/css | 848:858 (<1%)2316:2326 (<1%) | view | |
| 11 | x 2 | atoms/default/client/cssatoms/default/client/css | 1190:1200 (<1%)1250:1260 (<1%) | view | |
| 11 | x 2 | atoms/default/client/cssatoms/default/client/css | 1314:1324 (<1%)1493:1503 (<1%) | view | |
| 11 | x 2 | atoms/default/client/cssatoms/default/client/css | 1660:1670 (<1%)2128:2138 (<1%) | view | |
| 11 | x 2 | atoms/default/client/cssatoms/default/client/css | 179:189 (1%)10:21 (8%) | view | |
| 10 | x 2 | atoms/default/client/cssatoms/default/client/css | 601:610 (<1%)1190:1199 (<1%) | view | |
| 10 | x 2 | atoms/default/client/cssatoms/default/client/css | 601:610 (<1%)1250:1259 (<1%) | view | |
| 10 | x 2 | atoms/default/client/cssatoms/default/client/css | 629:638 (<1%)1190:1199 (<1%) | view | |
| 10 | x 2 | atoms/default/client/cssatoms/default/client/css | 629:638 (<1%)1250:1259 (<1%) | view | |
| 10 | x 2 | atoms/default/client/cssatoms/default/client/css | 666:675 (<1%)678:687 (<1%) | view | |
| 10 | x 2 | atoms/default/client/cssatoms/default/client/css | 832:841 (<1%)1286:1295 (<1%) | view | |
| 10 | x 2 | atoms/default/client/cssatoms/default/client/css | 1190:1199 (<1%)1333:1342 (<1%) | view | |
| 10 | x 2 | atoms/default/client/cssatoms/default/client/css | 1250:1259 (<1%)1333:1342 (<1%) | view | |
| 10 | x 2 | atoms/default/client/cssatoms/default/client/css | 1632:1641 (<1%)1660:1669 (<1%) | view | |
| 10 | x 2 | atoms/default/client/cssatoms/default/client/css | 1632:1641 (<1%)2100:2109 (<1%) | view | |
| 10 | x 2 | atoms/default/client/cssatoms/default/client/css | 1632:1641 (<1%)2128:2137 (<1%) | view | |
| 10 | x 2 | atoms/default/client/cssatoms/default/client/css | 1660:1669 (<1%)2100:2109 (<1%) | view | |
| 10 | x 2 | atoms/default/client/cssatoms/default/client/css | 2100:2109 (<1%)2128:2137 (<1%) | view | |
| 9 | x 2 | atoms/default/client/cssatoms/default/client/css | 753:783 (<1%)1399:1416 (<1%) | view | |
| 9 | x 2 | atoms/default/client/cssatoms/default/client/css | 244:252 (1%)82:90 (7%) | view | |
| 9 | x 2 | atoms/default/client/cssshared/css | 367:376 (<1%)21:30 (2%) | view | |
| 8 | x 2 | atoms/default/client/cssatoms/default/client/css | 512:522 (<1%)550:557 (<1%) | view | |
| 8 | x 2 | atoms/default/client/cssatoms/default/client/css | 753:760 (<1%)789:796 (<1%) | view | |
| 8 | x 2 | atoms/default/client/cssatoms/default/client/css | 832:839 (<1%)1085:1092 (<1%) | view | |
| 8 | x 2 | atoms/default/client/cssatoms/default/client/css | 832:839 (<1%)1130:1137 (<1%) | view | |
| 8 | x 2 | atoms/default/client/cssatoms/default/client/css | 848:855 (<1%)1769:1776 (<1%) | view | |
| 8 | x 2 | atoms/default/client/cssatoms/default/client/css | 848:855 (<1%)2245:2252 (<1%) | view | |
| 8 | x 2 | atoms/default/client/cssatoms/default/client/css | 1034:1041 (<1%)1044:1051 (<1%) | view | |
| 8 | x 2 | atoms/default/client/cssatoms/default/client/css | 1054:1061 (<1%)1064:1071 (<1%) | view | |
| 8 | x 2 | atoms/default/client/cssatoms/default/client/css | 1085:1092 (<1%)1286:1293 (<1%) | view | |
| 8 | x 2 | atoms/default/client/cssatoms/default/client/css | 1089:1096 (<1%)1254:1261 (<1%) | view | |
| 8 | x 2 | atoms/default/client/cssatoms/default/client/css | 1130:1137 (<1%)1286:1293 (<1%) | view | |
| 8 | x 2 | atoms/default/client/cssatoms/default/client/css | 1134:1141 (<1%)1254:1261 (<1%) | view | |
| 8 | x 2 | atoms/default/client/cssatoms/default/client/css | 1174:1181 (<1%)1769:1776 (<1%) | view | |
| 8 | x 2 | atoms/default/client/cssatoms/default/client/css | 1174:1181 (<1%)2245:2252 (<1%) | view | |
| 8 | x 2 | atoms/default/client/cssatoms/default/client/css | 1267:1274 (<1%)1277:1284 (<1%) | view |
Most Frequent Duplicates
The list of 50 most frequently found duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 6 | x 30 | atoms/default/client/jsatoms/default/client/jsatoms/default/client/jsatoms/default/client/jsatoms/default/client/jsatoms/default/client/jsatoms/default/client/jsatoms/default/client/jsatoms/default/client/jsatoms/default/client/js... | 9:15 (2%)20:26 (2%)31:37 (2%)42:48 (2%)53:59 (2%)64:70 (2%)75:81 (2%)86:92 (2%)97:103 (2%)108:114 (2%)... | view | |
| 6 | x 13 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/css... | 749:754 (<1%)832:837 (<1%)848:853 (<1%)1085:1090 (<1%)1130:1135 (<1%)1174:1179 (<1%)1286:1291 (<1%)1769:1774 (<1%)1789:1794 (<1%)1840:1845 (<1%)... | view | |
| 6 | x 8 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 601:606 (<1%)629:634 (<1%)785:790 (<1%)813:818 (<1%)1190:1195 (<1%)1250:1255 (<1%)1333:1338 (<1%)1395:1400 (<1%) | view | |
| 6 | x 7 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 605:610 (<1%)633:638 (<1%)1089:1094 (<1%)1134:1139 (<1%)1194:1199 (<1%)1254:1259 (<1%)1337:1342 (<1%) | view | |
| 6 | x 6 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 849:854 (<1%)1175:1180 (<1%)1770:1775 (<1%)1841:1846 (<1%)2246:2251 (<1%)2317:2322 (<1%) | view | |
| 6 | x 6 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 850:855 (<1%)1176:1181 (<1%)1771:1776 (<1%)1842:1847 (<1%)2247:2252 (<1%)2318:2323 (<1%) | view | |
| 6 | x 5 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 602:607 (<1%)630:635 (<1%)1191:1196 (<1%)1251:1256 (<1%)1334:1339 (<1%) | view | |
| 6 | x 5 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 603:608 (<1%)631:636 (<1%)1192:1197 (<1%)1252:1257 (<1%)1335:1340 (<1%) | view | |
| 6 | x 5 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 604:609 (<1%)632:637 (<1%)1193:1198 (<1%)1253:1258 (<1%)1336:1341 (<1%) | view | |
| 6 | x 4 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 1636:1641 (<1%)1664:1669 (<1%)2104:2109 (<1%)2132:2137 (<1%) | view | |
| 6 | x 4 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 852:857 (<1%)1178:1183 (<1%)1844:1849 (<1%)2320:2325 (<1%) | view | |
| 6 | x 4 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 1633:1638 (<1%)1661:1666 (<1%)2101:2106 (<1%)2129:2134 (<1%) | view | |
| 6 | x 4 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 1634:1639 (<1%)1662:1667 (<1%)2102:2107 (<1%)2130:2135 (<1%) | view | |
| 6 | x 4 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 1924:1929 (<1%)1933:1938 (<1%)2401:2406 (<1%)2411:2416 (<1%) | view | |
| 6 | x 4 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 851:856 (<1%)1177:1182 (<1%)1843:1848 (<1%)2319:2324 (<1%) | view | |
| 6 | x 4 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 833:838 (<1%)1086:1091 (<1%)1131:1136 (<1%)1287:1292 (<1%) | view | |
| 6 | x 4 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 1090:1095 (<1%)1135:1140 (<1%)1195:1200 (<1%)1255:1260 (<1%) | view | |
| 6 | x 4 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 1632:1637 (<1%)1660:1665 (<1%)2100:2105 (<1%)2128:2133 (<1%) | view | |
| 6 | x 4 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 1635:1640 (<1%)1663:1668 (<1%)2103:2108 (<1%)2131:2136 (<1%) | view | |
| 6 | x 4 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 1925:1930 (<1%)1934:1939 (<1%)2402:2407 (<1%)2412:2417 (<1%) | view | |
| 6 | x 4 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 834:839 (<1%)1087:1092 (<1%)1132:1137 (<1%)1288:1293 (<1%) | view | |
| 6 | x 4 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 1926:1931 (<1%)1935:1940 (<1%)2403:2408 (<1%)2413:2418 (<1%) | view | |
| 6 | x 4 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 853:858 (<1%)1179:1184 (<1%)1845:1850 (<1%)2321:2326 (<1%) | view | |
| 6 | x 4 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 1314:1319 (<1%)1493:1498 (<1%)1509:1514 (<1%)1977:1982 (<1%) | view | |
| 6 | x 3 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 755:760 (<1%)791:796 (<1%)1401:1406 (<1%) | view | |
| 6 | x 3 | atoms/default/client/jsatoms/default/client/jsatoms/default/client/js | 44:50 (2%)160:166 (2%)276:282 (2%) | view | |
| 6 | x 3 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 607:612 (<1%)635:640 (<1%)1339:1344 (<1%) | view | |
| 6 | x 3 | atoms/default/client/jsatoms/default/client/jsatoms/default/client/js | 33:39 (2%)149:155 (2%)265:271 (2%) | view | |
| 6 | x 3 | atoms/default/client/jsatoms/default/client/jsatoms/default/client/js | 77:83 (2%)193:199 (2%)309:315 (2%) | view | |
| 6 | x 3 | atoms/default/client/jsatoms/default/client/jsatoms/default/client/js | 55:61 (2%)171:177 (2%)287:293 (2%) | view | |
| 6 | x 3 | atoms/default/client/jsatoms/default/client/jsatoms/default/client/js | 66:72 (2%)182:188 (2%)298:304 (2%) | view | |
| 6 | x 3 | atoms/default/client/jsatoms/default/client/jsatoms/default/client/js | 11:17 (2%)127:133 (2%)243:249 (2%) | view | |
| 6 | x 3 | atoms/default/client/jsatoms/default/client/jsatoms/default/client/js | 22:28 (2%)138:144 (2%)254:260 (2%) | view | |
| 6 | x 3 | atoms/default/client/jsatoms/default/client/jsatoms/default/client/js | 110:116 (2%)226:232 (2%)342:348 (2%) | view | |
| 6 | x 3 | atoms/default/client/jsatoms/default/client/jsatoms/default/client/js | 99:105 (2%)215:221 (2%)331:337 (2%) | view | |
| 6 | x 3 | atoms/default/client/jsatoms/default/client/jsatoms/default/client/js | 88:94 (2%)204:210 (2%)320:326 (2%) | view | |
| 6 | x 3 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 753:758 (<1%)789:794 (<1%)1399:1404 (<1%) | view | |
| 6 | x 3 | atoms/default/client/jsatoms/default/client/jsatoms/default/client/js | 12:18 (2%)128:134 (2%)244:250 (2%) | view | |
| 6 | x 3 | atoms/default/client/jsatoms/default/client/jsatoms/default/client/js | 89:95 (2%)205:211 (2%)321:327 (2%) | view | |
| 6 | x 3 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 754:759 (<1%)790:795 (<1%)1400:1405 (<1%) | view | |
| 6 | x 3 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 1196:1201 (<1%)1515:1520 (<1%)1983:1988 (<1%) | view | |
| 6 | x 3 | atoms/default/client/jsatoms/default/client/jsatoms/default/client/js | 23:29 (2%)139:145 (2%)255:261 (2%) | view | |
| 6 | x 3 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 1091:1096 (<1%)1136:1141 (<1%)1256:1261 (<1%) | view | |
| 6 | x 3 | atoms/default/client/jsatoms/default/client/jsatoms/default/client/js | 56:62 (2%)172:178 (2%)288:294 (2%) | view | |
| 6 | x 3 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 606:611 (<1%)634:639 (<1%)1338:1343 (<1%) | view | |
| 6 | x 3 | atoms/default/client/jsatoms/default/client/jsatoms/default/client/js | 45:51 (2%)161:167 (2%)277:283 (2%) | view | |
| 6 | x 3 | atoms/default/client/jsatoms/default/client/jsatoms/default/client/js | 78:84 (2%)194:200 (2%)310:316 (2%) | view | |
| 6 | x 3 | atoms/default/client/jsatoms/default/client/jsatoms/default/client/js | 34:40 (2%)150:156 (2%)266:272 (2%) | view | |
| 6 | x 3 | atoms/default/client/cssatoms/default/client/cssatoms/default/client/css | 1180:1185 (<1%)1846:1851 (<1%)2322:2327 (<1%) | view | |
| 6 | x 3 | atoms/default/client/jsatoms/default/client/jsatoms/default/client/js | 67:73 (2%)183:189 (2%)299:305 (2%) | 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."