aws-samples / aws-saas-factory-serverless-workshop
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • 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...
Duplication Overall
  • 69% duplication:
    • 16,465 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 11,363 duplicated lines
  • 302 duplicates
system69% (11,363 lines)
Duplication per Extension
js74% (7,481 lines)
java62% (3,824 lines)
html10% (30 lines)
yml100% (28 lines)
Duplication per Component (primary)
lab1/server83% (7,637 lines)
lab2/server87% (765 lines)
lab3/order-service97% (733 lines)
lab2/client30% (659 lines)
lab4/order-service95% (626 lines)
resources/custom-resources54% (341 lines)
resources/tenant-service34% (166 lines)
resources/registration-service21% (116 lines)
lab4/layers74% (107 lines)
lab4/product-service18% (101 lines)
resources/lambda-authorizer31% (84 lines)
resources/auth-service10% (28 lines)
resources/lambda-warmer0% (0 lines)

Duplication Between Components (50+ lines)

G lab1/server lab1/server lab2/server lab2/server lab1/server--lab2/server 1530 lab3/order-service lab3/order-service lab1/server--lab3/order-service 444 lab4/order-service lab4/order-service lab1/server--lab4/order-service 444 lab4/product-service lab4/product-service lab1/server--lab4/product-service 142 lab2/server--lab3/order-service 444 lab2/server--lab4/order-service 444 lab2/server--lab4/product-service 142 lab3/order-service--lab4/order-service 1252 lab4/layers lab4/layers lab3/order-service--lab4/layers 214 lab3/order-service--lab4/product-service 142 resources/lambda-authorizer resources/lambda-authorizer lab3/order-service--resources/lambda-authorizer 140 lab4/order-service--lab4/product-service 142 lab4/layers--resources/lambda-authorizer 140 resources/registration-service resources/registration-service resources/tenant-service resources/tenant-service resources/registration-service--resources/tenant-service 148 resources/auth-service resources/auth-service resources/auth-service--resources/tenant-service 56

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 302 duplicates...
Size#FoldersFilesLinesCode
1952 x 2 lab1/server/src/main/resources/public/js
lab1/server/src/main/resources/public/js
bootstrap.bundle.js
bootstrap.esm.js
4905:7878 (43%)
2299:5272 (57%)
view
1451 x 2 lab1/server/src/main/resources/public/js
lab1/server/src/main/resources/public/js
bootstrap.bundle.js
bootstrap.esm.js
12:2294 (32%)
8:2290 (42%)
view
178 x 2 lab1/server/src/main/jav.../saasfactory/repository
lab2/server/src/main/jav.../saasfactory/repository
OrderDaoImpl.java
OrderDaoImpl.java
73:298 (84%)
72:297 (85%)
view
174 x 2 lab3/order-service/src/m...ws/partners/saasfactory
lab4/order-service/src/m...ws/partners/saasfactory
DynamoDbHelper.java
DynamoDbHelper.java
25:281 (100%)
25:281 (100%)
view
107 x 2 lab3/order-service/src/m...ws/partners/saasfactory
lab4/layers/serverless-s...ws/partners/saasfactory
TokenManager.java
TokenManager.java
43:200 (100%)
43:200 (100%)
view
83 x 2 lab1/server/src/main/jav.../saasfactory/repository
lab2/server/src/main/jav.../saasfactory/repository
ProductDaoImpl.java
ProductDaoImpl.java
37:143 (100%)
37:143 (100%)
view
72 x 2 lab1/server/src/main/jav...ers/saasfactory/service
lab2/server/src/main/jav...ers/saasfactory/service
ProductServiceImpl.java
ProductServiceImpl.java
15:101 (100%)
31:117 (100%)
view
68 x 2 lab2/server/src/main/jav...ners/saasfactory/domain
lab3/order-service/src/m...ws/partners/saasfactory
Product.java
Product.java
22:121 (100%)
22:121 (100%)
view
68 x 2 lab1/server/src/main/jav...ners/saasfactory/domain
lab3/order-service/src/m...ws/partners/saasfactory
Product.java
Product.java
22:121 (100%)
22:121 (100%)
view
68 x 2 lab3/order-service/src/m...ws/partners/saasfactory
lab4/order-service/src/m...ws/partners/saasfactory
Product.java
Product.java
22:121 (100%)
22:121 (100%)
view
68 x 2 lab2/server/src/main/jav...ners/saasfactory/domain
lab4/order-service/src/m...ws/partners/saasfactory
Product.java
Product.java
22:121 (100%)
22:121 (100%)
view
68 x 2 lab1/server/src/main/jav...ners/saasfactory/domain
lab2/server/src/main/jav...ners/saasfactory/domain
Product.java
Product.java
22:121 (100%)
22:121 (100%)
view
68 x 2 lab1/server/src/main/jav...ners/saasfactory/domain
lab4/order-service/src/m...ws/partners/saasfactory
Product.java
Product.java
22:121 (100%)
22:121 (100%)
view
59 x 2 lab3/order-service/src/m...ws/partners/saasfactory
lab4/order-service/src/m...ws/partners/saasfactory
OrderService.java
OrderService.java
38:110 (55%)
38:110 (54%)
view
56 x 2 lab1/server/src/main/jav.../saasfactory/repository
lab2/server/src/main/jav.../saasfactory/repository
CategoryDaoImpl.java
CategoryDaoImpl.java
36:112 (100%)
36:112 (100%)
view
56 x 2 lab3/order-service/src/m...ws/partners/saasfactory
lab4/order-service/src/m...ws/partners/saasfactory
Order.java
Order.java
24:118 (100%)
24:118 (100%)
view
54 x 2 lab2/client/src/components/modals/component
lab2/client/src/components/modals/component
addOrderModal.js
editOrderModal.js
69:138 (26%)
87:156 (24%)
view
54 x 2 lab1/server/src/main/jav...ners/saasfactory/domain
lab2/server/src/main/jav...ners/saasfactory/domain
Order.java
Order.java
25:116 (100%)
25:116 (100%)
view
48 x 2 resources/custom-resourc...ws/partners/saasfactory
resources/custom-resourc...ws/partners/saasfactory
CheckRole.java
SSMPutParamSecure.java
96:167 (53%)
150:221 (38%)
view
48 x 2 resources/custom-resourc...ws/partners/saasfactory
resources/custom-resourc...ws/partners/saasfactory
CheckRole.java
CreateKeyPair.java
96:167 (53%)
87:158 (57%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 124 unit duplicates...
Size#FoldersFilesLinesCode
506 x 2 lab1/server/src/main/resources/public/js
lab1/server/src/main/resources/public/js
bootstrap.esm.js
bootstrap.bundle.js
3641:4278 
6247:6884 
view
386 x 2 lab1/server/src/main/resources/public/js
lab1/server/src/main/resources/public/js
bootstrap.esm.js
bootstrap.bundle.js
1339:1835 
1343:1839 
view
353 x 2 lab1/server/src/main/resources/public/js
lab1/server/src/main/resources/public/js
bootstrap.esm.js
bootstrap.bundle.js
2895:3368 
5501:5974 
view
296 x 2 lab1/server/src/main/resources/public/js
lab1/server/src/main/resources/public/js
bootstrap.esm.js
bootstrap.bundle.js
2376:2791 
4982:5397 
view
236 x 2 lab1/server/src/main/resources/public/js
lab1/server/src/main/resources/public/js
bootstrap.esm.js
bootstrap.bundle.js
1920:2237 
1924:2241 
view
177 x 2 lab1/server/src/main/resources/public/js
lab1/server/src/main/resources/public/js
bootstrap.esm.js
bootstrap.bundle.js
4547:4778 
7153:7384 
view
126 x 2 lab1/server/src/main/resources/public/js
lab1/server/src/main/resources/public/js
bootstrap.esm.js
bootstrap.bundle.js
4853:5016 
7459:7622 
view
120 x 2 lab1/server/src/main/resources/public/js
lab1/server/src/main/resources/public/js
bootstrap.esm.js
bootstrap.bundle.js
5094:5253 
7700:7859 
view
87 x 2 lab1/server/src/main/resources/public/js
lab1/server/src/main/resources/public/js
bootstrap.esm.js
bootstrap.bundle.js
843:960 
847:964 
view
98 x 2 lab1/server/src/main/resources/public/js
lab1/server/src/main/resources/public/js
bootstrap.esm.js
bootstrap.bundle.js
4353:4474 
6959:7080 
view
67 x 2 lab1/server/src/main/resources/public/js
lab1/server/src/main/resources/public/js
bootstrap.esm.js
bootstrap.bundle.js
1026:1112 
1030:1116 
view
56 x 2 lab1/server/src/main/jav.../saasfactory/repository
lab2/server/src/main/jav.../saasfactory/repository
OrderDaoImpl.java
OrderDaoImpl.java
82:146 
81:145 
view
54 x 2 lab1/server/src/main/resources/public/js
lab1/server/src/main/resources/public/js
bootstrap.esm.js
bootstrap.bundle.js
671:735 
675:739 
view
33 x 2 lab4/order-service/src/m...ws/partners/saasfactory
lab3/order-service/src/m...ws/partners/saasfactory
DynamoDbHelper.java
DynamoDbHelper.java
249:282 
249:282 
view
33 x 2 lab1/server/src/main/jav.../saasfactory/repository
lab2/server/src/main/jav.../saasfactory/repository
OrderDaoImpl.java
OrderDaoImpl.java
148:184 
147:183 
view
32 x 2 lab4/order-service/src/m...ws/partners/saasfactory
lab3/order-service/src/m...ws/partners/saasfactory
DynamoDbHelper.java
DynamoDbHelper.java
115:147 
115:147 
view
32 x 4 resources/custom-resourc...ws/partners/saasfactory
resources/custom-resourc...ws/partners/saasfactory
resources/custom-resourc...ws/partners/saasfactory
resources/custom-resourc...ws/partners/saasfactory
CreateKeyPair.java
ClearS3Bucket.java
CheckRole.java
SSMPutParamSecure.java
122:159 
161:198 
131:168 
185:222 
view
31 x 2 lab1/server/src/main/resources/public/js
lab1/server/src/main/resources/public/js
bootstrap.esm.js
bootstrap.bundle.js
631:670 
635:674 
view
31 x 2 lab1/server/src/main/resources/public/js
lab1/server/src/main/resources/public/js
bootstrap.esm.js
bootstrap.bundle.js
3508:3547 
6114:6153 
view
30 x 2 lab1/server/src/main/jav.../saasfactory/repository
lab2/server/src/main/jav.../saasfactory/repository
OrderDaoImpl.java
OrderDaoImpl.java
240:270 
239:269 
view