Duplication Overall
- 24% duplication:
- 8,831 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
- 2,187 duplicated lines
- 428 duplicates
Duplication per Extension
Duplication per Component (primary)
Duplication Between Components (50+ lines)
flowchart TB
n0["mpapi-next-gen"]
n1["typescript"]
n0 ---|"334"| n1
classDef default fill:#00b2ee,stroke:#ffffff,color:#000000;
classDef highlighted fill:#00b2ee,stroke:#ffffff,color:#000000;
linkStyle 0 stroke:#DC143CFF,stroke-width:10px
Download:
Mermaid (.mmd)
(open online Mermaid editor)
2D force graph
|
3D force graph
Show more details on duplication between components...
From Component
--> To Component
Duplicated
Lines
File Pairs
Details
mpapi-next-gen (23%)
  --> typescript (3%)
334
6 file pairs
details...
flowchart TB
n0["mpapi-next-gen"]
n1["typescript"]
n0 ---|"334"| n1
classDef default fill:#00b2ee,stroke:#ffffff,color:#000000;
classDef highlighted fill:#00b2ee,stroke:#ffffff,color:#000000;
linkStyle 0 stroke:#DC143CFF,stroke-width:10px
Show more details on duplication between components...
| From Component --> To Component |
Duplicated Lines |
File Pairs | Details |
|---|---|---|---|
| mpapi-next-gen (23%)   --> typescript (3%) |
334 | 6 file pairs | details... |
Longest Duplicates
The list of 50 longest duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 55 | x 2 | typescript/src/feast/acquisition-eventstypescript/src/feast/acquisition-events | 52:111 (41%)236:299 (20%) | view | |
| 51 | x 2 | mpapi-next-gen/src/commontypescript/src/utils | 40:104 (68%)33:97 (75%) | view | |
| 42 | x 2 | ROOTROOT | 1503:1544 (2%)1593:1634 (2%) | view | |
| 27 | x 2 | ROOTROOT | 1321:1347 (1%)48:74 (7%) | view | |
| 26 | x 2 | mpapi-next-gen/src/commontypescript/src/models | 3:31 (100%)3:31 (100%) | view | |
| 23 | x 2 | typescript/src/servicestypescript/src/services | 189:216 (18%)14:41 (42%) | view | |
| 22 | x 2 | typescript/src/feast/acquisition-eventstypescript/src/feast/update-subs | 11:33 (8%)21:43 (17%) | view | |
| 21 | x 2 | ROOTROOT | 78:98 (1%)1321:1341 (1%) | view | |
| 21 | x 2 | ROOTROOT | 78:98 (1%)48:68 (5%) | view | |
| 20 | x 2 | ROOTROOT | 1415:1434 (1%)1504:1523 (1%) | view | |
| 20 | x 2 | ROOTROOT | 1415:1434 (1%)1594:1613 (1%) | view | |
| 20 | x 2 | typescript/src/feast/update-substypescript/src/update-subs | 123:148 (15%)43:63 (40%) | view | |
| 19 | x 2 | ROOTROOT | 70:88 (6%)115:133 (6%) | view | |
| 19 | x 2 | mpapi-next-gen/src/commontypescript/src/models | 42:60 (24%)79:97 (19%) | view | |
| 18 | x 2 | adjust_report_etladjust_report_etl | 75:93 (7%)107:125 (7%) | view | |
| 17 | x 2 | adjust_report_etladjust_report_etl | 190:207 (6%)260:277 (6%) | view | |
| 16 | x 2 | ROOTROOT | 348:363 (3%)379:394 (3%) | view | |
| 16 | x 2 | mpapi-next-gen/src/commontypescript/src/models | 74:89 (20%)113:128 (16%) | view | |
| 16 | x 2 | ROOTROOT | 1521:1536 (<1%)301:316 (3%) | view | |
| 16 | x 2 | ROOTROOT | 1611:1626 (<1%)301:316 (3%) | view | |
| 16 | x 2 | ROOTROOT | 6:21 (4%)9:24 (3%) | view | |
| 15 | x 2 | ROOTROOT | 1390:1404 (<1%)1534:1548 (<1%) | view | |
| 15 | x 2 | adjust_report_etladjust_report_etl | 171:188 (6%)241:258 (6%) | view | |
| 15 | x 2 | ROOTROOT | 11:25 (<1%)9:23 (3%) | view | |
| 15 | x 2 | ROOTROOT | 11:25 (<1%)6:20 (4%) | view | |
| 14 | x 2 | ROOTROOT | 846:859 (<1%)931:944 (<1%) | view | |
| 13 | x 2 | ROOTROOT | 855:867 (<1%)873:885 (<1%) | view | |
| 13 | x 2 | ROOTROOT | 940:952 (<1%)958:970 (<1%) | view | |
| 13 | x 2 | ROOTROOT | 46:58 (3%)106:118 (3%) | view | |
| 13 | x 2 | typescript/src/feast/update-substypescript/src/update-subs | 11:25 (72%)13:27 (26%) | view | |
| 13 | x 2 | ROOTROOT | 4:16 (4%)5:17 (3%) | view | |
| 12 | x 2 | ROOTROOT | 866:877 (<1%)951:962 (<1%) | view | |
| 12 | x 2 | ROOTROOT | 996:1007 (<1%)1028:1039 (<1%) | view | |
| 12 | x 2 | ROOTROOT | 996:1007 (<1%)1060:1071 (<1%) | view | |
| 12 | x 2 | ROOTROOT | 996:1007 (<1%)1092:1103 (<1%) | view | |
| 12 | x 2 | ROOTROOT | 1028:1039 (<1%)1060:1071 (<1%) | view | |
| 12 | x 2 | ROOTROOT | 1028:1039 (<1%)1092:1103 (<1%) | view | |
| 12 | x 2 | ROOTROOT | 1060:1071 (<1%)1092:1103 (<1%) | view | |
| 12 | x 2 | ROOTROOT | 1175:1186 (<1%)1200:1211 (<1%) | view | |
| 12 | x 2 | ROOTROOT | 1175:1186 (<1%)1306:1317 (<1%) | view | |
| 12 | x 2 | ROOTROOT | 1200:1211 (<1%)1306:1317 (<1%) | view | |
| 12 | x 2 | ROOTROOT | 86:97 (2%)146:157 (2%) | view | |
| 12 | x 2 | ROOTROOT | 150:161 (3%)214:225 (3%) | view | |
| 12 | x 2 | ROOTROOT | 1175:1186 (<1%)86:97 (2%) | view | |
| 12 | x 2 | ROOTROOT | 1175:1186 (<1%)146:157 (2%) | view | |
| 12 | x 2 | ROOTROOT | 1200:1211 (<1%)86:97 (2%) | view | |
| 12 | x 2 | ROOTROOT | 1200:1211 (<1%)146:157 (2%) | view | |
| 12 | x 2 | ROOTROOT | 1306:1317 (<1%)86:97 (2%) | view | |
| 12 | x 2 | ROOTROOT | 1306:1317 (<1%)146:157 (2%) | view | |
| 12 | x 2 | ROOTROOT | 1542:1553 (<1%)314:325 (2%) | view |
Most Frequent Duplicates
The list of 50 most frequently found duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 6 | x 16 | ROOTROOTROOTROOTROOTROOTROOTROOTROOTROOT... | 57:62 (1%)265:270 (1%)722:727 (<1%)102:107 (1%)146:151 (1%)186:191 (1%)279:284 (1%)295:300 (1%)309:314 (1%)736:741 (<1%)... | view | |
| 6 | x 16 | ROOTROOTROOTROOTROOTROOTROOTROOTROOTROOT... | 56:61 (1%)264:269 (1%)721:726 (<1%)101:106 (1%)145:150 (1%)185:190 (1%)278:283 (1%)294:299 (1%)308:313 (1%)735:740 (<1%)... | view | |
| 6 | x 12 | ROOTROOTROOTROOTROOTROOTROOTROOTROOTROOT... | 720:725 (<1%)263:268 (1%)277:282 (1%)293:298 (1%)307:312 (1%)734:739 (<1%)750:755 (<1%)764:769 (<1%)780:785 (<1%)794:799 (<1%)... | view | |
| 6 | x 11 | ROOTROOTROOTROOTROOTROOTROOTROOTROOTROOT... | 385:390 (<1%)442:447 (<1%)474:479 (<1%)506:511 (<1%)537:542 (<1%)568:573 (<1%)598:603 (<1%)628:633 (<1%)658:663 (<1%)690:695 (<1%)... | view | |
| 6 | x 9 | ROOTROOTROOTROOTROOTROOTROOTROOTROOT | 451:456 (<1%)483:488 (<1%)514:519 (<1%)545:550 (<1%)575:580 (<1%)605:610 (<1%)635:640 (<1%)667:672 (<1%)699:704 (<1%) | view | |
| 6 | x 8 | ROOTROOTROOTROOTROOTROOTROOTROOT | 458:463 (<1%)490:495 (<1%)521:526 (<1%)552:557 (<1%)612:617 (<1%)642:647 (<1%)674:679 (<1%)706:711 (<1%) | view | |
| 6 | x 7 | ROOTROOTROOTROOTROOTROOTROOT | 126:131 (1%)156:161 (1%)188:193 (1%)220:225 (1%)249:254 (1%)339:344 (1%)369:374 (1%) | view | |
| 6 | x 7 | ROOTROOTROOTROOTROOTROOTROOT | 112:117 (1%)142:147 (1%)172:177 (1%)204:209 (1%)236:241 (1%)325:330 (1%)355:360 (1%) | view | |
| 6 | x 7 | ROOTROOTROOTROOTROOTROOTROOT | 123:128 (1%)153:158 (1%)185:190 (1%)217:222 (1%)246:251 (1%)336:341 (1%)366:371 (1%) | view | |
| 6 | x 7 | ROOTROOTROOTROOTROOTROOTROOT | 125:130 (1%)155:160 (1%)187:192 (1%)219:224 (1%)248:253 (1%)338:343 (1%)368:373 (1%) | view | |
| 6 | x 7 | ROOTROOTROOTROOTROOTROOTROOT | 122:127 (1%)152:157 (1%)184:189 (1%)216:221 (1%)245:250 (1%)335:340 (1%)365:370 (1%) | view | |
| 6 | x 7 | ROOTROOTROOTROOTROOTROOTROOT | 124:129 (1%)154:159 (1%)186:191 (1%)218:223 (1%)247:252 (1%)337:342 (1%)367:372 (1%) | view | |
| 6 | x 6 | ROOTROOTROOTROOTROOTROOT | 1180:1185 (<1%)91:96 (1%)151:156 (1%)1205:1210 (<1%)1286:1291 (<1%)1311:1316 (<1%) | view | |
| 6 | x 6 | ROOTROOTROOTROOTROOTROOT | 834:839 (<1%)922:927 (<1%)979:984 (<1%)1011:1016 (<1%)1043:1048 (<1%)1075:1080 (<1%) | view | |
| 6 | x 6 | ROOTROOTROOTROOTROOTROOT | 93:98 (<1%)63:68 (1%)1336:1341 (<1%)1392:1397 (<1%)1536:1541 (<1%)1626:1631 (<1%) | view | |
| 6 | x 6 | ROOTROOTROOTROOTROOTROOT | 733:738 (<1%)276:281 (1%)306:311 (1%)763:768 (<1%)793:798 (<1%)823:828 (<1%) | view | |
| 6 | x 6 | ROOTROOTROOTROOTROOTROOT | 719:724 (<1%)262:267 (1%)292:297 (1%)749:754 (<1%)779:784 (<1%)809:814 (<1%) | view | |
| 6 | x 6 | ROOTROOTROOTROOTROOTROOT | 941:946 (<1%)959:964 (<1%)989:994 (<1%)1021:1026 (<1%)1053:1058 (<1%)1085:1090 (<1%) | view | |
| 6 | x 6 | ROOTROOTROOTROOTROOTROOT | 1181:1186 (<1%)92:97 (1%)152:157 (1%)1206:1211 (<1%)1287:1292 (<1%)1312:1317 (<1%) | view | |
| 6 | x 5 | ROOTROOTROOTROOTROOT | 836:841 (<1%)981:986 (<1%)1013:1018 (<1%)1045:1050 (<1%)1077:1082 (<1%) | view | |
| 6 | x 5 | ROOTROOTROOTROOTROOT | 1176:1181 (<1%)87:92 (1%)147:152 (1%)1201:1206 (<1%)1307:1312 (<1%) | view | |
| 6 | x 5 | ROOTROOTROOTROOTROOT | 1179:1184 (<1%)90:95 (1%)150:155 (1%)1204:1209 (<1%)1310:1315 (<1%) | view | |
| 6 | x 5 | ROOTROOTROOTROOTROOT | 1177:1182 (<1%)88:93 (1%)148:153 (1%)1202:1207 (<1%)1308:1313 (<1%) | view | |
| 6 | x 5 | ROOTROOTROOTROOTROOT | 835:840 (<1%)980:985 (<1%)1012:1017 (<1%)1044:1049 (<1%)1076:1081 (<1%) | view | |
| 6 | x 5 | ROOTROOTROOTROOTROOT | 1175:1180 (<1%)86:91 (1%)146:151 (1%)1200:1205 (<1%)1306:1311 (<1%) | view | |
| 6 | x 5 | ROOTROOTROOTROOTROOT | 1178:1183 (<1%)89:94 (1%)149:154 (1%)1203:1208 (<1%)1309:1314 (<1%) | view | |
| 6 | x 5 | ROOTROOTROOTROOTROOT | 151:156 (1%)183:188 (1%)215:220 (1%)244:249 (1%)364:369 (1%) | view | |
| 6 | x 4 | ROOTROOTROOTROOT | 50:55 (1%)68:73 (1%)110:115 (1%)128:133 (1%) | view | |
| 6 | x 4 | ROOTROOTROOTROOT | 59:64 (1%)104:109 (1%)148:153 (1%)188:193 (1%) | view | |
| 6 | x 4 | ROOTROOTROOTROOT | 49:54 (1%)67:72 (1%)109:114 (1%)127:132 (1%) | view | |
| 6 | x 4 | ROOTROOTROOTROOT | 208:213 (1%)214:219 (1%)221:226 (1%)228:233 (1%) | view | |
| 6 | x 4 | ROOTROOTROOTROOT | 58:63 (1%)103:108 (1%)147:152 (1%)187:192 (1%) | view | |
| 6 | x 4 | ROOTROOTROOTROOT | 78:83 (<1%)48:53 (1%)1321:1326 (<1%)1719:1724 (<1%) | view | |
| 6 | x 4 | ROOTROOTROOTROOT | 48:53 (1%)66:71 (1%)108:113 (1%)126:131 (1%) | view | |
| 6 | x 4 | ROOTROOTROOTROOT | 1001:1006 (<1%)1033:1038 (<1%)1065:1070 (<1%)1097:1102 (<1%) | view | |
| 6 | x 4 | ROOTROOTROOTROOT | 11:16 (1%)14:19 (1%)16:21 (<1%)10:15 (1%) | view | |
| 6 | x 4 | ROOTROOTROOTROOT | 6:11 (1%)9:14 (1%)11:16 (<1%)5:10 (1%) | view | |
| 6 | x 4 | ROOTROOTROOTROOT | 996:1001 (<1%)1028:1033 (<1%)1060:1065 (<1%)1092:1097 (<1%) | view | |
| 6 | x 4 | ROOTROOTROOTROOT | 8:13 (1%)11:16 (1%)13:18 (<1%)7:12 (1%) | view | |
| 6 | x 4 | ROOTROOTROOTROOT | 9:14 (1%)12:17 (1%)14:19 (<1%)8:13 (1%) | view | |
| 6 | x 4 | ROOTROOTROOTROOT | 1000:1005 (<1%)1032:1037 (<1%)1064:1069 (<1%)1096:1101 (<1%) | view | |
| 6 | x 4 | ROOTROOTROOTROOT | 999:1004 (<1%)1031:1036 (<1%)1063:1068 (<1%)1095:1100 (<1%) | view | |
| 6 | x 4 | ROOTROOTROOTROOT | 997:1002 (<1%)1029:1034 (<1%)1061:1066 (<1%)1093:1098 (<1%) | view | |
| 6 | x 4 | ROOTROOTROOTROOT | 12:17 (1%)15:20 (1%)17:22 (<1%)11:16 (1%) | view | |
| 6 | x 4 | ROOTROOTROOTROOT | 1002:1007 (<1%)1034:1039 (<1%)1066:1071 (<1%)1098:1103 (<1%) | view | |
| 6 | x 4 | ROOTROOTROOTROOT | 7:12 (1%)10:15 (1%)12:17 (<1%)6:11 (1%) | view | |
| 6 | x 4 | ROOTROOTROOTROOT | 10:15 (1%)13:18 (1%)15:20 (<1%)9:14 (1%) | view | |
| 6 | x 4 | ROOTROOTROOTROOT | 47:52 (1%)65:70 (1%)107:112 (1%)125:130 (1%) | view | |
| 6 | x 4 | ROOTROOTROOTROOT | 998:1003 (<1%)1030:1035 (<1%)1062:1067 (<1%)1094:1099 (<1%) | view | |
| 6 | x 3 | ROOTROOTROOT | 1387:1392 (<1%)298:303 (1%)1501:1506 (<1%) | view |
Duplicated Units
The list of top 5 duplicated units.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 32 | x 2 | typescript/src/utilsmpapi-next-gen/src/common | 61:99 68:106 | view | |
| 19 | x 2 | typescript/src/modelsmpapi-next-gen/src/common | 109:129 70:90 | view | |
| 16 | x 2 | typescript/src/servicestypescript/src/services | 200:217 25:42 | view | |
| 14 | x 2 | typescript/src/utilsmpapi-next-gen/src/common | 44:59 51:66 | view | |
| 14 | x 2 | typescript/src/update-substypescript/src/feast/update-subs | 13:29 11:27 | 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."