awslabs / aws-greengrass-provisioner
Unit Size

The distribution of size of units (measured in lines of code).

Intro
  • Unit size measurements show the distribution of size of units of code (methods, functions...).
  • Units are classified in four categories based on their size (lines of code): 1-20 (small units), 20-50 (medium size units), 51-100 (long units), 101+ (very long units).
  • You should aim at keeping units small (< 20 lines). Long units may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...
Unit Size Overall
  • There are 818 units with 7,354 lines of code in units (60.4% of code).
    • 4 very long units (730 lines of code)
    • 9 long units (575 lines of code)
    • 59 medium size units (1,698 lines of code)
    • 109 small units (1,631 lines of code)
    • 637 very small units (2,720 lines of code)
9% | 7% | 23% | 22% | 36%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
java9% | 7% | 23% | 22% | 36%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
src/main/java/com/awslabs/aws/greengrass/provisioner/implementations13% | 10% | 25% | 21% | 29%
src/integration-test/java0% | 0% | 20% | 18% | 60%
src/main/java/com/awslabs/aws/greengrass/provisioner/docker0% | 0% | 17% | 34% | 47%
src/main/java/com/awslabs/aws/greengrass/provisioner/lambda0% | 0% | 61% | 13% | 24%
src/main/java/com/awslabs/aws/greengrass/provisioner/data0% | 0% | 10% | 5% | 84%
src/main/java/com/awslabs/aws/greengrass/provisioner/interfaces0% | 0% | 0% | 33% | 66%
src/integration-test/java/com/awslabs/aws/greengrass/provisioner/implementations0% | 0% | 0% | 93% | 6%
src/main/java/com/awslabs/aws/greengrass/provisioner0% | 0% | 0% | 16% | 83%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
public void execute()
in src/main/java/com/awslabs/aws/greengrass/provisioner/implementations/helpers/BasicDeploymentHelper.java
337 48 1
public void execute()
in src/main/java/com/awslabs/aws/greengrass/provisioner/implementations/helpers/BasicGroupTestHelper.java
163 18 1
public DeploymentArguments parseArguments()
in src/main/java/com/awslabs/aws/greengrass/provisioner/implementations/helpers/BasicDeploymentArgumentHelper.java
127 47 1
private void buildOutputFiles()
in src/main/java/com/awslabs/aws/greengrass/provisioner/implementations/helpers/BasicDeploymentHelper.java
103 17 9
public void execute()
in src/main/java/com/awslabs/aws/greengrass/provisioner/implementations/helpers/BasicGroupQueryHelper.java
94 20 1
private Optional launchEc2Instance()
in src/main/java/com/awslabs/aws/greengrass/provisioner/implementations/helpers/BasicDeploymentHelper.java
86 7 5
private FunctionConf getFunctionConf()
in src/main/java/com/awslabs/aws/greengrass/provisioner/implementations/helpers/BasicFunctionHelper.java
74 8 4
protected Optional topicCandidate()
in src/main/java/com/awslabs/aws/greengrass/provisioner/implementations/helpers/BasicSubscriptionHelper.java
64 20 2
public String createFunctionDefinitionVersion()
in src/main/java/com/awslabs/aws/greengrass/provisioner/implementations/helpers/BasicGreengrassHelper.java
53 2 2
private void addOrRemoveSubscription()
in src/main/java/com/awslabs/aws/greengrass/provisioner/implementations/helpers/BasicGroupUpdateHelper.java
51 8 2
public String generateConfigJson()
in src/main/java/com/awslabs/aws/greengrass/provisioner/implementations/helpers/BasicConfigFileHelper.java
51 4 8
public Function buildFunctionModel()
in src/main/java/com/awslabs/aws/greengrass/provisioner/implementations/helpers/BasicGreengrassHelper.java
51 6 2
private void handleLogMessage()
in src/main/java/com/awslabs/aws/greengrass/provisioner/implementations/helpers/BasicGroupTestHelper.java
51 11 3
public Path getAndPopulateTempDirectory()
in src/main/java/com/awslabs/aws/greengrass/provisioner/docker/OfficialGreengrassImageDockerHelper.java
46 6 1
public TestArguments parseArguments()
in src/main/java/com/awslabs/aws/greengrass/provisioner/implementations/helpers/BasicTestArgumentHelper.java
44 12 1
public void sendFile()
in src/main/java/com/awslabs/aws/greengrass/provisioner/implementations/helpers/BasicIoHelper.java
43 7 4
private void addDevice()
in src/main/java/com/awslabs/aws/greengrass/provisioner/implementations/helpers/BasicGroupUpdateHelper.java
41 3 2
public List getFunctionConfs()
in src/main/java/com/awslabs/aws/greengrass/provisioner/implementations/helpers/BasicDeploymentHelper.java
40 4 3
public void execute()
in src/main/java/com/awslabs/aws/greengrass/provisioner/implementations/helpers/BasicHsiBootstrapHelper.java
39 3 1
public DeploymentStatus waitForDeploymentStatusToChange()
in src/main/java/com/awslabs/aws/greengrass/provisioner/implementations/helpers/BasicGreengrassHelper.java
39 4 2