awslabs / disaster-recovery-for-aws-iot
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
  • 18% duplication:
    • 3,330 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 629 duplicated lines
  • 105 duplicates
system18% (629 lines)
Duplication per Extension
py19% (615 lines)
in22% (14 lines)
Duplication per Component (primary)
source/tools11% (139 lines)
source/lambda/iot-dr-region-syncer39% (111 lines)
source/lambda/iot-dr-create-r53-checker38% (69 lines)
source/lambda/iot-dr-launch-solution25% (66 lines)
source/lambda/iot-dr-custom-launch-solution72% (62 lines)
source/lambda/sfn-iot-mr-thing-group-crud27% (40 lines)
source/lambda/iot-dr-layer8% (37 lines)
source/lambda/sfn-iot-mr-thing-type-crud25% (28 lines)
source/lambda/iot-mr-jitr17% (28 lines)
source/lambda/sfn-iot-mr-shadow-syncer36% (26 lines)
source/lambda/sfn-iot-mr-thing-crud7% (9 lines)
source/lambda/sfn-iot-mr-dynamo-trigger21% (8 lines)
source/lambda/iot-dr-r53-health-check4% (6 lines)
source0% (0 lines)
source/lambda/iot-dr-missing-device-replication0% (0 lines)
source/lambda/iot-mr-cross-region0% (0 lines)

Duplication Between Components (50+ lines)

G source/lambda/iot-dr-region-syncer source/lambda/iot-dr-region-syncer source/tools source/tools source/lambda/iot-dr-region-syncer--source/tools 172 source/lambda/iot-dr-custom-launch-solution source/lambda/iot-dr-custom-launch-solution source/lambda/iot-dr-launch-solution source/lambda/iot-dr-launch-solution source/lambda/iot-dr-custom-launch-solution--source/lambda/iot-dr-launch-solution 108 source/lambda/iot-dr-create-r53-checker source/lambda/iot-dr-create-r53-checker source/lambda/iot-dr-create-r53-checker--source/lambda/iot-dr-custom-launch-solution 100 source/lambda/iot-dr-create-r53-checker--source/lambda/iot-dr-launch-solution 76 source/lambda/iot-dr-layer source/lambda/iot-dr-layer source/lambda/sfn-iot-mr-shadow-syncer source/lambda/sfn-iot-mr-shadow-syncer source/lambda/iot-dr-layer--source/lambda/sfn-iot-mr-shadow-syncer 50

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 105 duplicates...
Size#FoldersFilesLinesCode
30 x 2 source/lambda/iot-dr-create-r53-checker
source/lambda/iot-dr-custom-launch-solution
lambda_function.py
lambda_function.py
258:294 (16%)
29:65 (34%)
view
23 x 2 source/lambda/iot-dr-custom-launch-solution
source/lambda/iot-dr-launch-solution
lambda_function.py
lambda_function.py
38:65 (26%)
64:91 (9%)
view
23 x 2 source/lambda/iot-dr-create-r53-checker
source/lambda/iot-dr-launch-solution
lambda_function.py
lambda_function.py
267:294 (12%)
64:91 (9%)
view
15 x 2 source/lambda/iot-dr-region-syncer
source/lambda/iot-dr-region-syncer
iot-region-to-ddb-syncer.py
iot-region-to-region-syncer.py
155:175 (10%)
135:155 (10%)
view
12 x 2 source/lambda/iot-dr-region-syncer
source/lambda/iot-dr-region-syncer
iot-region-to-ddb-syncer.py
iot-region-to-region-syncer.py
24:37 (8%)
23:36 (8%)
view
11 x 2 source/tools
source/tools
iot-devices-cmp.py
iot-dr-shadow-cmp.py
25:37 (7%)
30:42 (6%)
view
11 x 2 source/lambda/iot-dr-layer
source/lambda/sfn-iot-mr-shadow-syncer
device_replication.py
lambda_function.py
37:48 (2%)
38:49 (15%)
view
11 x 2 source/lambda/sfn-iot-mr-thing-group-crud
source/lambda/sfn-iot-mr-thing-group-crud
lambda_function.py
lambda_function.py
137:149 (7%)
154:166 (7%)
view
10 x 2 source/lambda/iot-dr-custom-launch-solution
source/lambda/iot-dr-launch-solution
lambda_function.py
lambda_function.py
15:26 (11%)
23:34 (3%)
view
10 x 2 source/lambda/iot-dr-region-syncer
source/tools
iot-region-to-region-syncer.py
iot-devices-cmp.py
140:151 (7%)
161:172 (6%)
view
10 x 2 source/lambda/iot-dr-region-syncer
source/tools
iot-region-to-ddb-syncer.py
iot-devices-cmp.py
128:139 (6%)
143:154 (6%)
view
10 x 2 source/lambda/iot-dr-region-syncer
source/lambda/iot-dr-region-syncer
iot-region-to-ddb-syncer.py
iot-region-to-region-syncer.py
128:139 (6%)
108:119 (7%)
view
10 x 2 source/lambda/iot-dr-region-syncer
source/tools
iot-region-to-ddb-syncer.py
iot-devices-cmp.py
160:171 (6%)
161:172 (6%)
view
10 x 2 source/lambda/iot-dr-region-syncer
source/tools
iot-region-to-region-syncer.py
iot-devices-cmp.py
108:119 (7%)
143:154 (6%)
view
9 x 2 source/lambda/sfn-iot-mr-thing-group-crud
source/lambda/sfn-iot-mr-thing-group-crud
lambda_function.py
lambda_function.py
45:53 (6%)
79:87 (6%)
view
9 x 2 source/lambda/iot-dr-region-syncer
source/tools
iot-region-to-region-syncer.py
iot-devices-cmp.py
81:93 (6%)
117:128 (6%)
view
9 x 2 source/lambda/sfn-iot-mr-shadow-syncer
source/lambda/sfn-iot-mr-thing-crud
lambda_function.py
lambda_function.py
22:31 (12%)
29:38 (7%)
view
8 x 2 source/lambda/iot-dr-layer
source/lambda/sfn-iot-mr-thing-crud
device_replication.py
lambda_function.py
18:25 (1%)
29:36 (6%)
view
8 x 2 source/lambda/sfn-iot-mr-shadow-syncer
source/lambda/sfn-iot-mr-thing-type-crud
lambda_function.py
lambda_function.py
22:29 (11%)
12:19 (7%)
view
8 x 2 source/lambda/iot-dr-custom-launch-solution
source/lambda/iot-mr-jitr
lambda_function.py
lambda_function.py
15:22 (9%)
16:23 (5%)
view
Duplicated Units
The list of top 2 duplicated units.
See data for all 2 unit duplicates...
Size#FoldersFilesLinesCode
29 x 2 source/lambda/iot-dr-create-r53-checker
source/lambda/iot-dr-custom-launch-solution
lambda_function.py
lambda_function.py
0:0 
0:0 
view
10 x 3 source/tools
source/lambda/iot-dr-region-syncer
source/lambda/iot-dr-region-syncer
iot-devices-cmp.py
iot-region-to-region-syncer.py
iot-region-to-ddb-syncer.py
0:0 
0:0 
0:0 
view