Duplication Overall
- 51% duplication:
- 5,007 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
- 2,586 duplicated lines
- 1,897 duplicates
Duplication per Extension
Duplication per Component (primary)
Longest Duplicates
The list of 50 longest duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 31 | x 2 | gogo | 146:184 (8%)198:236 (8%) | view | |
| 29 | x 2 | gogo | 16:49 (8%)76:109 (8%) | view | |
| 29 | x 2 | gogo | 16:49 (8%)237:271 (8%) | view | |
| 29 | x 2 | gogo | 16:49 (8%)285:319 (8%) | view | |
| 29 | x 2 | gogo | 16:49 (8%)336:370 (8%) | view | |
| 29 | x 2 | gogo | 16:49 (8%)404:437 (8%) | view | |
| 29 | x 2 | gogo | 76:109 (8%)237:271 (8%) | view | |
| 29 | x 2 | gogo | 76:109 (8%)285:319 (8%) | view | |
| 29 | x 2 | gogo | 76:109 (8%)336:370 (8%) | view | |
| 29 | x 2 | gogo | 76:109 (8%)404:437 (8%) | view | |
| 29 | x 2 | gogo | 237:271 (8%)285:319 (8%) | view | |
| 29 | x 2 | gogo | 237:271 (8%)336:370 (8%) | view | |
| 29 | x 2 | gogo | 237:271 (8%)404:437 (8%) | view | |
| 29 | x 2 | gogo | 285:319 (8%)336:370 (8%) | view | |
| 29 | x 2 | gogo | 285:319 (8%)404:437 (8%) | view | |
| 29 | x 2 | gogo | 336:370 (8%)404:437 (8%) | view | |
| 28 | x 2 | gogo | 342:380 (7%)394:432 (7%) | view | |
| 25 | x 2 | gogo | 82:114 (9%)241:273 (9%) | view | |
| 24 | x 2 | gogo | 171:203 (10%)342:374 (6%) | view | |
| 24 | x 2 | gogo | 171:203 (10%)394:426 (6%) | view | |
| 23 | x 2 | gogo | 116:146 (9%)275:304 (9%) | view | |
| 22 | x 2 | gogo | 119:146 (8%)208:236 (8%) | view | |
| 22 | x 2 | gogo | 119:146 (8%)327:354 (8%) | view | |
| 22 | x 2 | gogo | 208:236 (8%)278:304 (8%) | view | |
| 22 | x 2 | gogo | 208:236 (8%)327:354 (8%) | view | |
| 22 | x 2 | gogo | 278:304 (8%)327:354 (8%) | view | |
| 22 | x 2 | javascriptjavascript | 82:104 (14%)139:161 (14%) | view | |
| 22 | x 2 | javascriptjavascript | 168:190 (14%)197:219 (14%) | view | |
| 21 | x 2 | gogo | 66:90 (5%)104:127 (5%) | view | |
| 21 | x 2 | gogo | 256:282 (5%)296:322 (5%) | view | |
| 21 | x 2 | gogo | 452:478 (5%)492:518 (5%) | view | |
| 18 | x 2 | javascriptjavascript | 35:54 (8%)73:92 (8%) | view | |
| 18 | x 2 | javascriptjavascript | 35:54 (8%)172:191 (8%) | view | |
| 18 | x 2 | javascriptjavascript | 35:54 (8%)201:220 (8%) | view | |
| 18 | x 2 | javascriptjavascript | 35:54 (8%)233:253 (8%) | view | |
| 18 | x 2 | javascriptjavascript | 73:92 (8%)172:191 (8%) | view | |
| 18 | x 2 | javascriptjavascript | 73:92 (8%)201:220 (8%) | view | |
| 18 | x 2 | javascriptjavascript | 73:92 (8%)233:253 (8%) | view | |
| 18 | x 2 | javascriptjavascript | 172:191 (8%)201:220 (8%) | view | |
| 18 | x 2 | javascriptjavascript | 172:191 (8%)233:253 (8%) | view | |
| 18 | x 2 | javascriptjavascript | 201:220 (8%)233:253 (8%) | view | |
| 17 | x 2 | gogo | 123:142 (7%)66:85 (4%) | view | |
| 17 | x 2 | gogo | 123:142 (7%)104:122 (4%) | view | |
| 17 | x 2 | gogo | 231:250 (7%)452:472 (4%) | view | |
| 17 | x 2 | gogo | 231:250 (7%)492:512 (4%) | view | |
| 16 | x 2 | gogo | 298:314 (6%)329:345 (6%) | view | |
| 15 | x 2 | pythonpython | 28:43 (22%)55:69 (22%) | view | |
| 14 | x 2 | java/src/main/java/com/example/geminijava/src/main/java/com/example/gemini | 106:123 (10%)180:197 (10%) | view | |
| 13 | x 2 | gogo | 14:28 (5%)151:166 (5%) | view | |
| 13 | x 2 | javascriptjavascript | 82:94 (8%)168:180 (8%) | view |
Most Frequent Duplicates
The list of 50 most frequently found duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 6 | x 56 | gogogogogogogogogogo... | 14:19 (2%)15:20 (9%)17:22 (2%)16:21 (1%)16:21 (1%)14:19 (16%)16:21 (2%)13:18 (23%)16:21 (6%)14:19 (11%)... | view | |
| 6 | x 56 | gogogogogogogogogogo... | 15:20 (2%)16:21 (9%)18:23 (2%)17:22 (1%)17:22 (1%)15:20 (16%)17:22 (2%)14:19 (23%)17:22 (6%)15:20 (11%)... | view | |
| 6 | x 13 | gogogogogogogogogogo... | 135:140 (2%)78:83 (1%)122:127 (2%)70:75 (2%)122:127 (6%)211:216 (2%)281:286 (2%)330:335 (2%)115:120 (1%)158:163 (1%)... | view | |
| 6 | x 12 | gogogogogogogogogogo... | 126:133 (2%)69:76 (1%)174:181 (2%)234:241 (2%)281:288 (2%)107:113 (1%)259:266 (1%)299:306 (1%)345:352 (1%)397:404 (1%)... | view | |
| 6 | x 12 | gogogogogogogogogogo... | 125:132 (2%)68:75 (1%)173:180 (2%)233:240 (2%)280:287 (2%)106:112 (1%)258:265 (1%)298:305 (1%)344:351 (1%)396:403 (1%)... | view | |
| 6 | x 10 | gogogogogogogogogogo | 133:138 (2%)76:81 (1%)120:125 (2%)120:125 (6%)209:214 (2%)279:284 (2%)328:333 (2%)113:118 (1%)156:161 (1%)208:213 (1%) | view | |
| 6 | x 10 | gogogogogogogogogogo | 134:139 (2%)77:82 (1%)121:126 (2%)121:126 (6%)210:215 (2%)280:285 (2%)329:334 (2%)114:119 (1%)157:162 (1%)209:214 (1%) | view | |
| 6 | x 9 | gogogogogogogogogo | 29:34 (1%)290:295 (2%)28:33 (2%)89:94 (1%)163:168 (1%)250:255 (1%)298:303 (1%)350:355 (1%)417:422 (1%) | view | |
| 6 | x 9 | gogogogogogogogogo | 136:142 (2%)79:85 (1%)123:129 (2%)212:218 (2%)282:288 (2%)331:337 (2%)116:122 (1%)170:177 (1%)222:229 (1%) | view | |
| 6 | x 8 | javascriptjavascriptjavascriptjavascriptjavascriptjavascriptjavascriptjavascript | 58:65 (2%)60:68 (4%)193:201 (4%)110:117 (2%)173:180 (2%)225:232 (2%)293:300 (2%)345:352 (2%) | view | |
| 6 | x 8 | gogogogogogogogo | 28:33 (1%)289:294 (2%)88:93 (1%)162:167 (1%)249:254 (1%)297:302 (1%)349:354 (1%)416:421 (1%) | view | |
| 6 | x 8 | gogogogogogogogo | 27:32 (1%)288:293 (2%)87:92 (1%)161:166 (1%)248:253 (1%)296:301 (1%)348:353 (1%)415:420 (1%) | view | |
| 6 | x 8 | gogogogogogogogo | 18:25 (1%)65:71 (6%)78:85 (1%)142:149 (1%)239:246 (1%)287:294 (1%)338:346 (1%)406:413 (1%) | view | |
| 6 | x 7 | gogogogogogogo | 26:31 (1%)86:91 (1%)160:165 (1%)247:252 (1%)295:300 (1%)347:352 (1%)414:419 (1%) | view | |
| 6 | x 7 | javascriptjavascriptjavascriptjavascriptjavascriptjavascriptjavascript | 36:41 (2%)74:79 (2%)122:127 (2%)173:178 (2%)202:207 (2%)234:239 (2%)275:280 (2%) | view | |
| 6 | x 7 | gogogogogogogo | 132:137 (2%)75:80 (1%)119:124 (2%)208:213 (2%)278:283 (2%)327:332 (2%)112:117 (1%) | view | |
| 6 | x 7 | gogogogogogogo | 30:36 (1%)291:297 (2%)90:96 (1%)251:257 (1%)299:305 (1%)351:357 (1%)418:424 (1%) | view | |
| 6 | x 6 | java/src/main/java/com/example/geminijava/src/main/java/com/example/geminijava/src/main/java/com/example/geminijava/src/main/java/com/example/geminijava/src/main/java/com/example/geminijava/src/main/java/com/example/gemini | 57:65 (3%)106:114 (3%)160:168 (3%)203:211 (3%)246:254 (3%)289:297 (3%) | view | |
| 6 | x 6 | gogogogogogo | 19:26 (2%)62:68 (2%)104:110 (2%)145:151 (2%)301:307 (2%)332:338 (2%) | view | |
| 6 | x 6 | gogogogogogo | 44:49 (1%)104:109 (1%)266:271 (1%)314:319 (1%)365:370 (1%)432:437 (1%) | view | |
| 6 | x 6 | gogogogogogo | 43:51 (2%)85:93 (2%)126:134 (2%)179:187 (2%)219:227 (2%)260:268 (2%) | view | |
| 6 | x 6 | gogogogogogo | 43:48 (1%)103:108 (1%)265:270 (1%)313:318 (1%)364:369 (1%)431:436 (1%) | view | |
| 6 | x 6 | javascriptjavascriptjavascriptjavascriptjavascriptjavascript | 39:45 (2%)77:83 (2%)176:182 (2%)205:211 (2%)237:243 (2%)278:284 (2%) | view | |
| 6 | x 6 | gogogogogogo | 25:30 (1%)85:90 (1%)246:251 (1%)294:299 (1%)346:351 (1%)413:418 (1%) | view | |
| 6 | x 6 | javascriptjavascriptjavascriptjavascriptjavascriptjavascript | 37:42 (2%)75:80 (2%)174:179 (2%)203:208 (2%)235:240 (2%)276:281 (2%) | view | |
| 6 | x 6 | gogogogogogo | 36:43 (1%)96:103 (1%)257:265 (1%)305:313 (1%)357:364 (1%)424:431 (1%) | view | |
| 6 | x 6 | javascriptjavascriptjavascriptjavascriptjavascriptjavascript | 35:40 (2%)73:78 (2%)172:177 (2%)201:206 (2%)233:238 (2%)274:279 (2%) | view | |
| 6 | x 6 | gogogogogogo | 40:46 (1%)100:106 (1%)261:268 (1%)309:316 (1%)361:367 (1%)428:434 (1%) | view | |
| 6 | x 6 | javascriptjavascriptjavascriptjavascriptjavascriptjavascript | 40:46 (2%)78:84 (2%)177:183 (2%)206:212 (2%)238:244 (2%)279:285 (2%) | view | |
| 6 | x 6 | gogogogogogo | 22:29 (1%)82:89 (1%)243:250 (1%)291:298 (1%)342:350 (1%)410:417 (1%) | view | |
| 6 | x 6 | gogogogogogo | 37:44 (1%)97:104 (1%)258:266 (1%)306:314 (1%)358:365 (1%)425:432 (1%) | view | |
| 6 | x 6 | gogogogogogo | 34:42 (1%)94:102 (1%)255:264 (1%)303:312 (1%)355:363 (1%)422:430 (1%) | view | |
| 6 | x 6 | gogogogogogo | 31:37 (1%)91:97 (1%)252:258 (1%)300:306 (1%)352:358 (1%)419:425 (1%) | view | |
| 6 | x 6 | gogogogogogo | 33:40 (1%)93:100 (1%)254:261 (1%)302:309 (1%)354:361 (1%)421:428 (1%) | view | |
| 6 | x 6 | gogogogogogo | 19:26 (1%)79:86 (1%)240:247 (1%)288:295 (1%)339:347 (1%)407:414 (1%) | view | |
| 6 | x 6 | gogogogogogo | 50:55 (1%)130:135 (1%)240:245 (1%)326:331 (1%)436:441 (1%)522:527 (1%) | view | |
| 6 | x 6 | javascriptjavascriptjavascriptjavascriptjavascriptjavascript | 49:54 (2%)87:92 (2%)186:191 (2%)215:220 (2%)248:253 (2%)288:293 (2%) | view | |
| 6 | x 6 | gogogogogogo | 51:56 (1%)131:136 (1%)241:246 (1%)327:332 (1%)437:442 (1%)523:528 (1%) | view | |
| 6 | x 6 | gogogogogogo | 42:47 (1%)102:107 (1%)264:269 (1%)312:317 (1%)363:368 (1%)430:435 (1%) | view | |
| 6 | x 6 | gogogogogogo | 39:45 (1%)99:105 (1%)260:267 (1%)308:315 (1%)360:366 (1%)427:433 (1%) | view | |
| 6 | x 6 | javascriptjavascriptjavascriptjavascriptjavascriptjavascript | 38:44 (2%)76:82 (2%)175:181 (2%)204:210 (2%)236:242 (2%)277:283 (2%) | view | |
| 6 | x 6 | gogogogogogo | 47:54 (2%)139:146 (2%)178:186 (2%)228:236 (2%)297:304 (2%)346:354 (2%) | view | |
| 6 | x 6 | gogogogogogo | 20:27 (1%)80:87 (1%)241:248 (1%)289:296 (1%)340:348 (1%)408:415 (1%) | view | |
| 6 | x 6 | gogogogogogo | 21:28 (1%)81:88 (1%)242:249 (1%)290:297 (1%)341:349 (1%)409:416 (1%) | view | |
| 6 | x 6 | gogogogogogo | 18:25 (2%)61:67 (2%)103:109 (2%)144:150 (2%)300:306 (2%)331:337 (2%) | view | |
| 6 | x 6 | gogogogogogo | 32:39 (1%)92:99 (1%)253:260 (1%)301:308 (1%)353:360 (1%)420:427 (1%) | view | |
| 6 | x 5 | javascriptjavascriptjavascriptjavascriptjavascript | 45:51 (2%)83:89 (2%)182:188 (2%)211:217 (2%)243:250 (2%) | view | |
| 6 | x 5 | gogogogogo | 89:97 (1%)183:191 (1%)281:289 (1%)379:387 (1%)477:485 (1%) | view | |
| 6 | x 5 | gogogogogo | 42:50 (2%)107:115 (2%)147:155 (2%)175:183 (2%)327:343 (2%) | view | |
| 6 | x 5 | javascriptjavascriptjavascriptjavascriptjavascript | 42:49 (2%)80:87 (2%)179:186 (2%)208:215 (2%)240:248 (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."