awsdocs / aws-lambda-developer-guide
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
  • 43% duplication:
    • 2,604 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,122 duplicated lines
  • 222 duplicates
system43% (1,122 lines)
Duplication per Extension
yml58% (778 lines)
yaml56% (149 lines)
js23% (105 lines)
java22% (90 lines)
Duplication per Component (primary)
sample-apps/list-manager51% (219 lines)
sample-apps/rds-mysql73% (208 lines)
templates43% (149 lines)
sample-apps/java-events45% (91 lines)
sample-apps/efs-nodejs37% (77 lines)
sample-apps/java-events-v1sdk82% (76 lines)
sample-apps/s3-java45% (66 lines)
sample-apps/blank-ruby67% (54 lines)
sample-apps/blank-java53% (41 lines)
sample-apps/java-basic26% (36 lines)
sample-apps/blank-nodejs52% (22 lines)
sample-apps/blank-python55% (21 lines)
sample-apps/ec2-spot14% (14 lines)
sample-apps/error-processor5% (14 lines)
sample-apps/nodejs-apig19% (13 lines)
sample-apps/blank-csharp16% (7 lines)
sample-apps/blank-powershell18% (7 lines)
sample-apps/blank-go16% (7 lines)

Duplication Between Components (50+ lines)

G sample-apps/list-manager sample-apps/list-manager sample-apps/rds-mysql sample-apps/rds-mysql sample-apps/list-manager--sample-apps/rds-mysql 383 templates templates sample-apps/list-manager--templates 157 sample-apps/rds-mysql--templates 92 sample-apps/efs-nodejs sample-apps/efs-nodejs sample-apps/efs-nodejs--sample-apps/list-manager 154 sample-apps/efs-nodejs--sample-apps/rds-mysql 154 sample-apps/efs-nodejs--templates 92 sample-apps/java-events-v1sdk sample-apps/java-events-v1sdk sample-apps/java-events sample-apps/java-events sample-apps/java-events-v1sdk--sample-apps/java-events 122 sample-apps/java-basic sample-apps/java-basic sample-apps/java-basic--sample-apps/java-events-v1sdk 52 sample-apps/java-basic--sample-apps/java-events 72 sample-apps/blank-java sample-apps/blank-java sample-apps/blank-java--sample-apps/java-events-v1sdk 62 sample-apps/blank-java--sample-apps/java-events 68 sample-apps/blank-java--sample-apps/java-basic 68

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 222 duplicates...
Size#FoldersFilesLinesCode
68 x 2 sample-apps/efs-nodejs
sample-apps/rds-mysql
template-vpcefs.yml
template-vpcrds.yml
32:99 (57%)
43:110 (54%)
view
52 x 2 sample-apps/list-manager
sample-apps/rds-mysql
template-vpcrds.yml
template-vpcrds.yml
38:89 (36%)
38:89 (41%)
view
47 x 2 sample-apps/efs-nodejs
sample-apps/list-manager
template-vpcefs.yml
template-vpcrds.yml
32:78 (39%)
43:89 (33%)
view
36 x 2 sample-apps/list-manager
sample-apps/rds-mysql
template-vpcrds.yml
template-vpcrds.yml
106:141 (25%)
90:125 (28%)
view
34 x 2 sample-apps/list-manager
sample-apps/rds-mysql
template-vpcrds.yml
template-vpcrds.yml
1:34 (24%)
1:34 (27%)
view
29 x 2 sample-apps/list-manager/dbadmin
sample-apps/rds-mysql/dbadmin
index.js
index.js
4:36 (90%)
4:36 (90%)
view
25 x 2 templates
templates
vpc-private.yaml
vpc-privatepublic.yaml
40:64 (24%)
97:121 (15%)
view
21 x 2 sample-apps/efs-nodejs
sample-apps/list-manager
template-vpcefs.yml
template-vpcrds.yml
79:99 (17%)
106:126 (14%)
view
19 x 2 sample-apps/rds-mysql/dbadmin
sample-apps/rds-mysql/dbadmin
index-iam.js
index.js
27:48 (45%)
15:36 (59%)
view
19 x 2 sample-apps/list-manager/dbadmin
sample-apps/rds-mysql/dbadmin
index.js
index-iam.js
15:36 (59%)
27:48 (45%)
view
17 x 2 sample-apps/list-manager
templates
template-vpcrds.yml
vpc-private.yaml
90:106 (12%)
66:82 (16%)
view
16 x 2 sample-apps/efs-nodejs
templates
template-vpcefs.yml
vpc-private.yaml
53:68 (13%)
24:39 (15%)
view
16 x 2 sample-apps/rds-mysql
templates
template-vpcrds.yml
vpc-private.yaml
64:79 (12%)
24:39 (15%)
view
16 x 2 sample-apps/list-manager
templates
template-vpcrds.yml
vpc-private.yaml
64:79 (11%)
24:39 (15%)
view
15 x 2 templates
templates
vpc-private.yaml
vpc-privatepublic.yaml
66:80 (14%)
123:137 (9%)
view
15 x 2 sample-apps/list-manager
templates
template-vpcrds.yml
vpc-privatepublic.yaml
90:104 (10%)
123:137 (9%)
view
14 x 2 sample-apps/error-processor
sample-apps/rds-mysql
template.yml
template.yml
15:28 (11%)
58:71 (16%)
view
14 x 2 sample-apps/ec2-spot
sample-apps/error-processor
template.yml
template.yml
5:18 (42%)
15:28 (11%)
view
14 x 2 sample-apps/ec2-spot
sample-apps/rds-mysql
template.yml
template.yml
5:18 (42%)
58:71 (16%)
view
13 x 2 sample-apps/blank-nodejs
sample-apps/blank-python
template.yml
template.yml
10:23 (48%)
10:23 (48%)
view
Duplicated Units
The list of top 5 duplicated units.
See data for all 5 unit duplicates...
Size#FoldersFilesLinesCode
11 x 2 sample-apps/java-events/src/main/java/example
sample-apps/java-events-...k/src/main/java/example
HandlerDynamoDB.java
HandlerDynamoDB.java
20:32 
22:34 
view
11 x 2 sample-apps/java-events/src/main/java/example
sample-apps/java-events-...k/src/main/java/example
HandlerS3.java
Handler.java
21:34 
21:34 
view
8 x 2 sample-apps/java-events/src/main/java/example
sample-apps/java-events-...k/src/main/java/example
HandlerKinesis.java
HandlerKinesis.java
20:29 
22:31 
view
6 x 8 sample-apps/java-events/src/main/java/example
sample-apps/java-events/src/main/java/example
sample-apps/java-events/src/main/java/example
sample-apps/java-events/src/main/java/example
sample-apps/java-events/src/main/java/example
sample-apps/java-events/src/main/java/example
sample-apps/java-events/src/main/java/example
sample-apps/java-events/src/main/java/example
HandlerCloudFront.java
HandlerConfig.java
HandlerSNS.java
HandlerLex.java
HandlerCWEvents.java
HandlerCodeCommit.java
HandlerFirehose.java
HandlerCognito.java
15:22 
15:22 
15:22 
15:22 
15:22 
15:22 
15:22 
15:22 
view
6 x 2 sample-apps/java-basic/src/main/java/example
sample-apps/java-basic/src/main/java/example
HandlerList.java
HandlerString.java
16:23 
14:21 
view