awslabs / aws-lambda-powertools-java
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 362 units with 2,281 lines of code in units (59.2% of code).
    • 0 very long units (0 lines of code)
    • 1 long units (81 lines of code)
    • 15 medium size units (407 lines of code)
    • 37 small units (532 lines of code)
    • 309 very small units (1,261 lines of code)
0% | 3% | 17% | 23% | 55%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
java0% | 3% | 17% | 23% | 55%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
powertools-validation0% | 28% | 26% | 4% | 40%
powertools-sqs0% | 0% | 26% | 27% | 45%
example0% | 0% | 36% | 21% | 42%
powertools-logging0% | 0% | 8% | 15% | 75%
powertools-tracing0% | 0% | 24% | 19% | 55%
powertools-metrics0% | 0% | 16% | 32% | 50%
powertools-parameters0% | 0% | 7% | 39% | 52%
powertools-cloudformation0% | 0% | 11% | 31% | 56%
powertools-core0% | 0% | 0% | 20% | 79%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
public Object around()
in powertools-validation/src/main/java/software/amazon/lambda/powertools/validation/internal/ValidationAspect.java
81 25 2
public final void processSuccessAndHandleFailed()
in powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/internal/BatchContext.java
36 8 4
private boolean moveNonRetryableMessagesToDlqIfConfigured()
in powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/internal/BatchContext.java
34 3 1
public APIGatewayProxyResponseEvent handleRequest()
in example/HelloWorldFunction/src/main/java/helloworld/App.java
34 2 2
public Object around()
in powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/internal/LambdaTracingAspect.java
33 9 2
public static JsonSchema getJsonSchema()
in powertools-validation/src/main/java/software/amazon/lambda/powertools/validation/ValidationUtils.java
30 7 2
public Object around()
in powertools-metrics/src/main/java/software/amazon/lambda/powertools/metrics/internal/LambdaMetricsAspect.java
27 5 2
public static void validate()
in powertools-validation/src/main/java/software/amazon/lambda/powertools/validation/ValidationUtils.java
27 8 3
public APIGatewayProxyResponseEvent handleRequest()
in example/HelloWorldFunction/src/main/java/helloworld/AppParams.java
27 2 2
private Optional fetchDlqUrl()
in powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/internal/BatchContext.java
24 2 1
private Map getMultipleBis()
in powertools-parameters/src/main/java/software/amazon/lambda/powertools/parameters/SSMProvider.java
24 4 2
public Object around()
in powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/internal/LambdaLoggingAspect.java
24 6 2
public final Response handleRequest()
in powertools-cloudformation/src/main/java/software/amazon/lambda/powertools/cloudformation/AbstractCustomResourceHandler.java
23 4 2
private void setLogLevelBasedOnSamplingRate()
in powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/internal/LambdaLoggingAspect.java
22 6 2
public static List batchProcessor()
in powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/SqsUtils.java
21 4 5
public static String decompress()
in powertools-validation/src/main/java/software/amazon/lambda/powertools/validation/jmespath/Base64GZipFunction.java
21 6 1
public static List processMessages()
in powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/internal/SqsLargeMessageAspect.java
20 3 1
public Object injectParam()
in powertools-parameters/src/main/java/software/amazon/lambda/powertools/parameters/internal/LambdaParametersAspect.java
20 4 2
ObjectWriter newWriter()
in powertools-logging/src/main/java/software/amazon/lambda/powertools/logging/internal/JacksonFactoryCopy.java
20 5 4
StringInputStream responseBodyStream()
in powertools-cloudformation/src/main/java/software/amazon/lambda/powertools/cloudformation/CloudFormationResponse.java
18 3 3