aws / aws-sdk-java-v2
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 11,801 units with 66,953 lines of code in units (64.7% of code).
    • 1 very long units (111 lines of code)
    • 15 long units (1,025 lines of code)
    • 321 medium size units (9,418 lines of code)
    • 993 small units (14,171 lines of code)
    • 10,471 very small units (42,228 lines of code)
<1% | 1% | 14% | 21% | 63%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
java<1% | 1% | 14% | 21% | 63%
py0% | 0% | 0% | 30% | 69%
js0% | 0% | 0% | 0% | 100%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
services1% | 1% | 17% | 25% | 53%
codegen0% | 3% | 18% | 22% | 55%
http-clients0% | 1% | 15% | 25% | 57%
services-custom0% | 1% | 12% | 15% | 71%
utils0% | 3% | 6% | 17% | 72%
codegen-lite0% | 3% | 25% | 28% | 43%
core0% | 0% | 10% | 20% | 68%
metric-publishers0% | 0% | 17% | 21% | 60%
build-tools0% | 0% | 22% | 13% | 64%
release-scripts0% | 0% | 5% | 22% | 71%
http-client-spi0% | 0% | 0% | 15% | 84%
scripts0% | 0% | 0% | 30% | 69%
codegen-lite-maven-plugin0% | 0% | 0% | 29% | 70%
codegen-maven-plugin0% | 0% | 0% | 23% | 76%
archetypes0% | 0% | 0% | 0% | 100%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
public SdkResponse modifyResponse()
in services/route53/src/main/java/software/amazon/awssdk/services/route53/internal/Route53IdInterceptor.java
111 20 2
private String copyMethodBody()
in codegen/src/main/java/software/amazon/awssdk/codegen/poet/model/MemberCopierSpec.java
92 14 6
public void subscribe()
in http-clients/netty-nio-client/src/main/java/software/amazon/awssdk/http/nio/netty/internal/ResponseHandler.java
86 8 1
public static boolean isValidDnsBucketName()
in services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/BucketUtils.java
83 25 2
private MethodSpec finalizeServiceConfigurationMethod()
in codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/BaseClientBuilderClass.java
79 11 0
public static String replaceEach()
in utils/src/main/java/software/amazon/awssdk/utils/StringUtils.java
77 28 3
private MemberModel generateMemberModel()
in codegen/src/main/java/software/amazon/awssdk/codegen/AddShapes.java
74 8 5
public CreateTableRequest generateRequest()
in services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/operations/CreateTableOperation.java
74 6 3
private List operationMethodSpecs()
in codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientClass.java
72 4 1
public TypeSpec poetClass()
in codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/ServiceMetadataGenerator.java
60 1 0
static Optional addS3ArnableFieldCode()
in codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/ClientClassUtils.java
59 5 2
protected final ShapeModel generateShapeModel()
in codegen/src/main/java/software/amazon/awssdk/codegen/AddShapes.java
58 11 2
public Map constructOperations()
in codegen/src/main/java/software/amazon/awssdk/codegen/AddOperations.java
57 10 0
private StaticImmutableTableSchema()
in services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/mapper/StaticImmutableTableSchema.java
52 5 1
private void postprocessHandleEmitAsMember()
in codegen/src/main/java/software/amazon/awssdk/codegen/customization/processors/ShapeSubstitutionsProcessor.java
51 7 2
public void subscribe()
in http-clients/netty-nio-client/src/main/java/software/amazon/awssdk/http/nio/netty/internal/NettyRequestExecutor.java
51 8 1
public IntermediateModel build()
in codegen/src/main/java/software/amazon/awssdk/codegen/IntermediateModelBuilder.java
50 7 0
public boolean sendRequestBody()
in services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/S3CrtRequestBodyStreamAdapter.java
49 12 1
public URI getServiceEndpoint()
in core/aws-core/src/main/java/software/amazon/awssdk/awscore/endpoint/DefaultServiceEndpointBuilder.java
49 9 0
private static JsonMarshallerRegistry createMarshallerRegistry()
in core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/marshall/JsonProtocolMarshaller.java
48 1 0