Duplication Overall
- 14% duplication:
- 33,574 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
- 4,792 duplicated lines
- 426 duplicates
Duplication per Extension
Duplication per Component (primary)
Longest Duplicates
The list of 50 longest duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 73 | x 2 | scriptsscripts | 16:103 (64%)52:139 (48%) | view | |
| 45 | x 2 | frontend/app/CommissionsListfrontend/app/ProjectEntryList | 313:357 (9%)252:296 (13%) | view | |
| 40 | x 2 | app/servicesapp/services | 25:82 (10%)28:85 (13%) | view | |
| 35 | x 2 | frontend/app/DeletionRecordsfrontend/app/StatusChanges | 87:121 (23%)89:123 (25%) | view | |
| 34 | x 2 | frontend/app/ProjectEntryListfrontend/app/StatusChanges | 1004:1037 (3%)92:125 (25%) | view | |
| 33 | x 2 | frontend/app/DeletionRecordsfrontend/app/WorkingGroups | 89:121 (22%)142:174 (14%) | view | |
| 33 | x 2 | frontend/app/StatusChangesfrontend/app/WorkingGroups | 91:123 (24%)142:174 (14%) | view | |
| 32 | x 2 | frontend/app/ProjectEntryListfrontend/app/WorkingGroups | 1004:1035 (3%)143:174 (14%) | view | |
| 32 | x 2 | frontend/app/DeletionRecordsfrontend/app/ProjectEntryList | 90:121 (21%)1004:1035 (3%) | view | |
| 30 | x 2 | frontend/app/CommissionsListfrontend/app/CommissionsList | 117:148 (6%)398:429 (4%) | view | |
| 28 | x 2 | app/drivers/objectmatrixapp/mxscopy/helpers | 14:61 (100%)15:61 (47%) | view | |
| 27 | x 2 | app/helpersapp/helpers | 119:151 (15%)213:245 (15%) | view | |
| 27 | x 2 | frontend/app/commonfrontend/app/multistep/common | 8:39 (35%)8:40 (37%) | view | |
| 25 | x 2 | frontend/app/CommissionsListfrontend/app/WorkingGroups | 224:248 (8%)150:174 (11%) | view | |
| 25 | x 2 | frontend/app/CommissionsListfrontend/app/DeletionRecords | 224:248 (8%)97:121 (16%) | view | |
| 25 | x 2 | frontend/app/CommissionsListfrontend/app/ProjectEntryList | 224:248 (8%)1011:1035 (2%) | view | |
| 25 | x 2 | frontend/app/CommissionsListfrontend/app/StatusChanges | 224:248 (8%)99:123 (18%) | view | |
| 23 | x 2 | frontend/app/commonfrontend/app/multistep/common | 41:66 (29%)41:66 (31%) | view | |
| 23 | x 2 | public/font-awesome-4.7.0/lesspublic/font-awesome-4.7.0/scss | 10:34 (82%)10:34 (82%) | view | |
| 23 | x 2 | frontend/app/CommissionsListfrontend/app/ProjectEntryList | 156:180 (14%)426:450 (4%) | view | |
| 22 | x 2 | frontend/app/ProjectEntryListfrontend/app/ProjectEntryList | 309:333 (2%)342:366 (2%) | view | |
| 21 | x 2 | frontend/app/ProjectEntryListfrontend/app/ProjectEntryList | 106:126 (10%)171:191 (12%) | view | |
| 20 | x 2 | frontend/app/ObituariesListfrontend/app/ProjectEntryList | 296:317 (6%)603:625 (2%) | view | |
| 19 | x 2 | frontend/app/ProjectEntryListfrontend/app/ProjectEntryList | 48:66 (33%)96:114 (13%) | view | |
| 19 | x 2 | frontend/app/ObituariesListfrontend/app/ProjectEntryList | 124:144 (6%)116:136 (4%) | view | |
| 18 | x 2 | frontend/app/CommissionsListfrontend/app/ProjectEntryList | 152:175 (3%)120:143 (5%) | view | |
| 18 | x 2 | app/servicesapp/services | 85:107 (17%)48:70 (21%) | view | |
| 18 | x 2 | frontend/app/ProjectEntryListfrontend/app/ProjectEntryList | 87:106 (8%)77:96 (12%) | view | |
| 17 | x 2 | conf/evolutions/defaultconf/evolutions/default | 8:25 (58%)1:18 (51%) | view | |
| 17 | x 2 | frontend/app/ObituariesListfrontend/app/ProjectEntryList | 246:262 (5%)279:295 (4%) | view | |
| 17 | x 2 | frontend/app/DeletionRecordsfrontend/app/WorkingGroups | 149:166 (11%)213:234 (7%) | view | |
| 17 | x 2 | frontend/app/ProjectEntryListfrontend/app/ProjectEntryList | 36:53 (5%)75:92 (1%) | view | |
| 16 | x 2 | app/servicesapp/services | 141:157 (4%)142:158 (5%) | view | |
| 16 | x 2 | scriptsscripts | 132:153 (14%)178:199 (10%) | view | |
| 15 | x 2 | frontend/app/CommissionsListfrontend/app/ProjectEntryList | 297:311 (3%)236:250 (4%) | view | |
| 15 | x 2 | frontend/app/ProjectEntryListfrontend/app/ProjectEntryList | 30:46 (26%)42:58 (10%) | view | |
| 15 | x 2 | app/drivers/objectmatrixapp/mxscopy/models | 7:22 (100%)7:22 (100%) | view | |
| 15 | x 2 | frontend/app/CommissionsListfrontend/app/WorkingGroups | 291:309 (5%)215:234 (6%) | view | |
| 15 | x 2 | frontend/app/CommissionsListfrontend/app/DeletionRecords | 291:309 (5%)151:166 (10%) | view | |
| 15 | x 2 | frontend/app/filterfrontend/app/filter | 17:32 (8%)29:44 (30%) | view | |
| 14 | x 2 | frontend/app/ObituariesListfrontend/app/ProjectEntryList | 320:334 (4%)406:421 (3%) | view | |
| 14 | x 2 | frontend/appfrontend/app | 237:252 (5%)137:152 (5%) | view | |
| 14 | x 2 | frontend/app/CommissionsListfrontend/app/ProjectEntryList | 518:533 (2%)394:409 (1%) | view | |
| 14 | x 2 | frontend/app/DeletionRecordsfrontend/app/StatusChanges | 149:163 (9%)145:159 (10%) | view | |
| 14 | x 2 | frontend/app/StatusChangesfrontend/app/WorkingGroups | 145:159 (10%)213:230 (6%) | view | |
| 14 | x 2 | app/controllersapp/controllers | 201:214 (7%)426:439 (1%) | view | |
| 13 | x 2 | frontend/app/CommissionsListfrontend/app/ProjectEntryList | 192:205 (2%)177:190 (3%) | view | |
| 13 | x 2 | frontend/app/multistep/commissioncreate_newfrontend/app/multistep/projectcreate_new | 39:51 (30%)55:67 (14%) | view | |
| 13 | x 2 | app/servicesapp/services | 50:65 (25%)50:65 (27%) | view | |
| 13 | x 2 | frontend/app/ProjectEntryListfrontend/app/ProjectEntryList | 70:85 (6%)60:75 (9%) | view |
Most Frequent Duplicates
The list of 50 most frequently found duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 6 | x 7 | frontend/app/ProjectEntryListfrontend/app/WorkingGroupsfrontend/app/ObituariesListfrontend/app/StatusChangesfrontend/app/DeletionRecordsfrontend/app/ProjectEntryListfrontend/app/CommissionsList | 280:285 (1%)152:157 (2%)247:252 (2%)101:106 (4%)99:104 (4%)1013:1018 (<1%)226:231 (2%) | view | |
| 6 | x 7 | frontend/app/ProjectEntryListfrontend/app/WorkingGroupsfrontend/app/ObituariesListfrontend/app/StatusChangesfrontend/app/DeletionRecordsfrontend/app/ProjectEntryListfrontend/app/CommissionsList | 131:136 (1%)96:101 (2%)139:144 (2%)78:83 (4%)76:81 (4%)559:564 (<1%)92:97 (2%) | view | |
| 6 | x 7 | frontend/app/ProjectEntryListfrontend/app/WorkingGroupsfrontend/app/ObituariesListfrontend/app/StatusChangesfrontend/app/DeletionRecordsfrontend/app/ProjectEntryListfrontend/app/CommissionsList | 281:286 (1%)153:158 (2%)248:253 (2%)102:107 (4%)100:105 (4%)1014:1019 (<1%)227:232 (2%) | view | |
| 6 | x 7 | frontend/app/ProjectEntryListfrontend/app/WorkingGroupsfrontend/app/ObituariesListfrontend/app/StatusChangesfrontend/app/DeletionRecordsfrontend/app/ProjectEntryListfrontend/app/CommissionsList | 289:294 (1%)168:173 (2%)256:261 (2%)117:122 (4%)115:120 (4%)1029:1034 (<1%)242:247 (2%) | view | |
| 6 | x 7 | frontend/app/ProjectEntryListfrontend/app/WorkingGroupsfrontend/app/ObituariesListfrontend/app/StatusChangesfrontend/app/DeletionRecordsfrontend/app/ProjectEntryListfrontend/app/CommissionsList | 279:284 (1%)151:156 (2%)246:251 (2%)100:105 (4%)98:103 (4%)1012:1017 (<1%)225:230 (2%) | view | |
| 6 | x 7 | frontend/app/ProjectEntryListfrontend/app/WorkingGroupsfrontend/app/ObituariesListfrontend/app/StatusChangesfrontend/app/DeletionRecordsfrontend/app/ProjectEntryListfrontend/app/CommissionsList | 287:292 (1%)166:171 (2%)254:259 (2%)115:120 (4%)113:118 (4%)1027:1032 (<1%)240:245 (2%) | view | |
| 6 | x 7 | frontend/app/ProjectEntryListfrontend/app/WorkingGroupsfrontend/app/ObituariesListfrontend/app/StatusChangesfrontend/app/DeletionRecordsfrontend/app/ProjectEntryListfrontend/app/CommissionsList | 288:293 (1%)167:172 (2%)255:260 (2%)116:121 (4%)114:119 (4%)1028:1033 (<1%)241:246 (2%) | view | |
| 6 | x 7 | frontend/app/ProjectEntryListfrontend/app/WorkingGroupsfrontend/app/ObituariesListfrontend/app/StatusChangesfrontend/app/DeletionRecordsfrontend/app/ProjectEntryListfrontend/app/CommissionsList | 290:295 (1%)169:174 (2%)257:262 (2%)118:123 (4%)116:121 (4%)1030:1035 (<1%)243:248 (2%) | view | |
| 6 | x 6 | frontend/app/ProjectEntryListfrontend/app/WorkingGroupsfrontend/app/ObituariesListfrontend/app/StatusChangesfrontend/app/DeletionRecordsfrontend/app/CommissionsList | 123:128 (1%)88:93 (2%)131:136 (2%)70:75 (4%)68:73 (4%)84:89 (2%) | view | |
| 6 | x 6 | frontend/app/ProjectEntryListfrontend/app/WorkingGroupsfrontend/app/ObituariesListfrontend/app/StatusChangesfrontend/app/DeletionRecordsfrontend/app/CommissionsList | 121:127 (1%)86:92 (2%)129:135 (2%)68:74 (4%)66:72 (4%)82:88 (2%) | view | |
| 6 | x 6 | frontend/app/CommissionsListfrontend/app/WorkingGroupsfrontend/app/DeletionRecordsfrontend/app/StatusChangesfrontend/app/ProjectEntryListfrontend/app/DeletionRecords | 153:159 (1%)64:70 (2%)40:46 (5%)50:56 (4%)121:127 (1%)48:54 (4%) | view | |
| 6 | x 6 | frontend/app/ProjectEntryListfrontend/app/WorkingGroupsfrontend/app/ObituariesListfrontend/app/StatusChangesfrontend/app/DeletionRecordsfrontend/app/CommissionsList | 118:124 (1%)83:89 (2%)126:132 (2%)65:71 (4%)63:69 (4%)79:85 (2%) | view | |
| 6 | x 6 | frontend/app/ProjectEntryListfrontend/app/WorkingGroupsfrontend/app/ObituariesListfrontend/app/StatusChangesfrontend/app/DeletionRecordsfrontend/app/CommissionsList | 117:123 (1%)82:88 (2%)125:131 (2%)64:70 (4%)62:68 (4%)78:84 (2%) | view | |
| 6 | x 6 | frontend/app/ProjectEntryListfrontend/app/WorkingGroupsfrontend/app/ObituariesListfrontend/app/StatusChangesfrontend/app/DeletionRecordsfrontend/app/CommissionsList | 120:126 (1%)85:91 (2%)128:134 (2%)67:73 (4%)65:71 (4%)81:87 (2%) | view | |
| 6 | x 6 | frontend/app/ProjectEntryListfrontend/app/WorkingGroupsfrontend/app/ObituariesListfrontend/app/StatusChangesfrontend/app/DeletionRecordsfrontend/app/CommissionsList | 116:121 (1%)81:86 (2%)124:129 (2%)63:68 (4%)61:66 (4%)77:82 (2%) | view | |
| 6 | x 6 | frontend/app/CommissionsListfrontend/app/WorkingGroupsfrontend/app/DeletionRecordsfrontend/app/StatusChangesfrontend/app/ProjectEntryListfrontend/app/DeletionRecords | 152:157 (1%)63:68 (2%)39:44 (5%)49:54 (4%)120:125 (1%)47:52 (4%) | view | |
| 6 | x 6 | frontend/app/ProjectEntryListfrontend/app/WorkingGroupsfrontend/app/ObituariesListfrontend/app/StatusChangesfrontend/app/DeletionRecordsfrontend/app/CommissionsList | 119:125 (1%)84:90 (2%)127:133 (2%)66:72 (4%)64:70 (4%)80:86 (2%) | view | |
| 6 | x 6 | frontend/appfrontend/appfrontend/appfrontend/appfrontend/appfrontend/app | 16:21 (10%)28:33 (2%)11:16 (10%)13:18 (15%)19:24 (10%)11:16 (22%) | view | |
| 6 | x 6 | frontend/app/CommissionsListfrontend/app/WorkingGroupsfrontend/app/DeletionRecordsfrontend/app/StatusChangesfrontend/app/ProjectEntryListfrontend/app/DeletionRecords | 154:161 (1%)65:72 (2%)41:48 (5%)51:58 (4%)122:129 (1%)49:56 (4%) | view | |
| 6 | x 5 | frontend/app/DeletionRecordsfrontend/app/ProjectEntryListfrontend/app/StatusChangesfrontend/app/WorkingGroupsfrontend/app/CommissionsList | 108:113 (4%)1022:1027 (<1%)110:115 (4%)161:166 (2%)235:240 (2%) | view | |
| 6 | x 5 | frontend/appfrontend/appfrontend/appfrontend/appfrontend/app | 15:20 (10%)27:32 (2%)10:15 (10%)12:17 (15%)10:15 (22%) | view | |
| 6 | x 5 | frontend/app/DeletionRecordsfrontend/app/ProjectEntryListfrontend/app/StatusChangesfrontend/app/WorkingGroupsfrontend/app/CommissionsList | 111:116 (4%)1025:1030 (<1%)113:118 (4%)164:169 (2%)238:243 (2%) | view | |
| 6 | x 5 | frontend/app/DeletionRecordsfrontend/app/ProjectEntryListfrontend/app/StatusChangesfrontend/app/WorkingGroupsfrontend/app/CommissionsList | 112:117 (4%)1026:1031 (<1%)114:119 (4%)165:170 (2%)239:244 (2%) | view | |
| 6 | x 5 | frontend/app/CommissionsListfrontend/app/CommissionsListfrontend/app/ProjectEntryListfrontend/app/ProjectEntryListfrontend/app/ProjectEntryList | 519:525 (<1%)124:130 (2%)97:103 (4%)237:243 (1%)395:401 (<1%) | view | |
| 6 | x 5 | frontend/appfrontend/appfrontend/appfrontend/appfrontend/app | 14:19 (10%)26:31 (2%)9:14 (10%)11:16 (15%)9:14 (22%) | view | |
| 6 | x 5 | app/modelsapp/modelsapp/modelsapp/modelsapp/models | 28:33 (10%)26:31 (15%)28:33 (10%)29:34 (8%)28:33 (10%) | view | |
| 6 | x 5 | frontend/app/DeletionRecordsfrontend/app/ProjectEntryListfrontend/app/StatusChangesfrontend/app/WorkingGroupsfrontend/app/CommissionsList | 97:102 (4%)1011:1016 (<1%)99:104 (4%)150:155 (2%)224:229 (2%) | view | |
| 6 | x 5 | frontend/app/DeletionRecordsfrontend/app/ProjectEntryListfrontend/app/StatusChangesfrontend/app/WorkingGroupsfrontend/app/CommissionsList | 107:112 (4%)1021:1026 (<1%)109:114 (4%)160:165 (2%)234:239 (2%) | view | |
| 6 | x 5 | app/modelsapp/modelsapp/modelsapp/modelsapp/models | 20:25 (10%)18:23 (15%)20:25 (10%)21:26 (8%)20:25 (10%) | view | |
| 6 | x 5 | app/modelsapp/modelsapp/modelsapp/modelsapp/models | 18:23 (10%)16:21 (15%)18:23 (10%)19:24 (8%)18:23 (10%) | view | |
| 6 | x 5 | frontend/app/DeletionRecordsfrontend/app/ProjectEntryListfrontend/app/StatusChangesfrontend/app/WorkingGroupsfrontend/app/CommissionsList | 109:114 (4%)1023:1028 (<1%)111:116 (4%)162:167 (2%)236:241 (2%) | view | |
| 6 | x 5 | frontend/app/ProjectEntryListfrontend/app/ProjectRecordValidationfrontend/appfrontend/app/ObituariesListfrontend/app/CommissionsList | 11:16 (1%)10:15 (2%)5:10 (4%)7:12 (2%)5:10 (2%) | view | |
| 6 | x 5 | frontend/app/CommissionsListfrontend/app/CommissionsListfrontend/app/ProjectEntryListfrontend/app/ProjectEntryListfrontend/app/ProjectEntryList | 518:524 (<1%)123:129 (2%)96:102 (4%)236:242 (1%)394:400 (<1%) | view | |
| 6 | x 5 | frontend/app/DeletionRecordsfrontend/app/ProjectEntryListfrontend/app/StatusChangesfrontend/app/WorkingGroupsfrontend/app/CommissionsList | 101:106 (4%)1015:1020 (<1%)103:108 (4%)154:159 (2%)228:233 (2%) | view | |
| 6 | x 5 | frontend/app/DeletionRecordsfrontend/app/ProjectEntryListfrontend/app/StatusChangesfrontend/app/WorkingGroupsfrontend/app/CommissionsList | 103:108 (4%)1017:1022 (<1%)105:110 (4%)156:161 (2%)230:235 (2%) | view | |
| 6 | x 5 | frontend/app/DeletionRecordsfrontend/app/ProjectEntryListfrontend/app/StatusChangesfrontend/app/WorkingGroupsfrontend/app/CommissionsList | 105:110 (4%)1019:1024 (<1%)107:112 (4%)158:163 (2%)232:237 (2%) | view | |
| 6 | x 5 | frontend/app/DeletionRecordsfrontend/app/ProjectEntryListfrontend/app/StatusChangesfrontend/app/WorkingGroupsfrontend/app/CommissionsList | 106:111 (4%)1020:1025 (<1%)108:113 (4%)159:164 (2%)233:238 (2%) | view | |
| 6 | x 5 | frontend/app/DeletionRecordsfrontend/app/ProjectEntryListfrontend/app/StatusChangesfrontend/app/WorkingGroupsfrontend/app/CommissionsList | 110:115 (4%)1024:1029 (<1%)112:117 (4%)163:168 (2%)237:242 (2%) | view | |
| 6 | x 5 | frontend/app/ObituariesListfrontend/app/ProjectRecordValidationfrontend/app/PremiereVersionTranslationfrontend/appfrontend/app/CommissionsList | 5:10 (2%)8:13 (2%)8:13 (4%)3:8 (4%)3:8 (2%) | view | |
| 6 | x 5 | app/modelsapp/modelsapp/modelsapp/modelsapp/models | 21:26 (10%)19:24 (15%)21:26 (10%)22:27 (8%)21:26 (10%) | view | |
| 6 | x 5 | app/modelsapp/modelsapp/modelsapp/modelsapp/models | 17:22 (10%)15:20 (15%)17:22 (10%)18:23 (8%)17:22 (10%) | view | |
| 6 | x 5 | frontend/app/ProjectEntryListfrontend/app/ProjectRecordValidationfrontend/appfrontend/app/ObituariesListfrontend/app/CommissionsList | 12:17 (1%)11:16 (2%)6:11 (4%)8:13 (2%)6:11 (2%) | view | |
| 6 | x 5 | app/modelsapp/modelsapp/modelsapp/modelsapp/models | 19:24 (10%)17:22 (15%)19:24 (10%)20:25 (8%)19:24 (10%) | view | |
| 6 | x 5 | frontend/app/DeletionRecordsfrontend/app/ProjectEntryListfrontend/app/StatusChangesfrontend/app/WorkingGroupsfrontend/app/CommissionsList | 104:109 (4%)1018:1023 (<1%)106:111 (4%)157:162 (2%)231:236 (2%) | view | |
| 6 | x 5 | frontend/app/ProjectEntryListfrontend/app/ProjectRecordValidationfrontend/appfrontend/app/ObituariesListfrontend/app/CommissionsList | 10:15 (1%)9:14 (2%)4:9 (4%)6:11 (2%)4:9 (2%) | view | |
| 6 | x 5 | frontend/app/DeletionRecordsfrontend/app/ProjectEntryListfrontend/app/StatusChangesfrontend/app/WorkingGroupsfrontend/app/CommissionsList | 102:107 (4%)1016:1021 (<1%)104:109 (4%)155:160 (2%)229:234 (2%) | view | |
| 6 | x 4 | frontend/app/DeletionRecordsfrontend/app/ProjectEntryListfrontend/app/StatusChangesfrontend/app/WorkingGroups | 96:101 (4%)1010:1015 (<1%)98:103 (4%)149:154 (2%) | view | |
| 6 | x 4 | public/font-awesome-4.7.0/lesspublic/font-awesome-4.7.0/scsspublic/font-awesome-4.7.0/scsspublic/font-awesome-4.7.0/less | 17:22 (21%)17:22 (21%)28:33 (21%)28:33 (21%) | view | |
| 6 | x 4 | frontend/app/DeletionRecordsfrontend/app/ProjectEntryListfrontend/app/StatusChangesfrontend/app/WorkingGroups | 92:97 (4%)1006:1011 (<1%)94:99 (4%)145:150 (2%) | view | |
| 6 | x 4 | frontend/app/StatusChangesfrontend/app/WorkingGroupsfrontend/app/CommissionsListfrontend/app/DeletionRecords | 153:158 (4%)221:229 (2%)296:304 (2%)157:162 (4%) | view |
Duplicated Units
The list of top 13 duplicated units.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 25 | x 2 | app/servicesapp/services | 141:170 106:135 | view | |
| 23 | x 2 | scriptsscripts | 92:120 56:84 | view | |
| 21 | x 2 | app/servicesapp/services | 65:87 62:84 | view | |
| 18 | x 2 | app/servicesapp/services | 210:229 258:278 | view | |
| 17 | x 2 | app/drivers/objectmatrixapp/mxscopy/helpers | 23:42 24:43 | view | |
| 15 | x 2 | app/controllersapp/controllers | 282:298 67:83 | view | |
| 12 | x 2 | scriptsscripts | 178:196 132:150 | view | |
| 11 | x 2 | app/servicesapp/services | 37:49 34:46 | view | |
| 11 | x 2 | scriptsscripts | 78:90 42:54 | view | |
| 10 | x 2 | app/modelsapp/models | 170:181 257:268 | view | |
| 10 | x 2 | app/modelsapp/services | 96:107 61:72 | view | |
| 9 | x 2 | app/postrunapp/services | 18:28 187:197 | view | |
| 6 | x 2 | app/servicesapp/services | 55:62 52:59 | 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."