aws / aws-lambda-dotnet
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 918 units with 12,340 lines of code in units (43.7% of code).
    • 6 very long units (1,019 lines of code)
    • 24 long units (1,622 lines of code)
    • 123 medium size units (3,954 lines of code)
    • 196 small units (2,888 lines of code)
    • 569 very small units (2,857 lines of code)
8% | 13% | 32% | 23% | 23%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
cs8% | 13% | 32% | 23% | 23%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
LambdaRuntimeDockerfiles/Infrastructure/src90% | 0% | 0% | 8% | 1%
Blueprints/BlueprintDefinitions/vs201910% | 13% | 27% | 24% | 23%
Blueprints/BlueprintDefinitions/vs202210% | 13% | 27% | 24% | 23%
Blueprints/BlueprintDefinitions/vs201712% | 9% | 27% | 30% | 21%
Tools/LambdaTestTool/src8% | 19% | 39% | 19% | 13%
Libraries/src/Amazon.Lambda.AspNetCoreServer9% | 19% | 36% | 11% | 23%
Libraries/src/Amazon.Lambda.RuntimeSupport0% | 10% | 30% | 25% | 33%
Libraries/src/Amazon.Lambda.Annotations.SourceGenerator0% | 18% | 31% | 35% | 14%
Libraries/src/Amazon.Lambda.Serialization.Json0% | 35% | 23% | 24% | 16%
Libraries/src/Amazon.Lambda.Logging.AspNetCore0% | 18% | 23% | 31% | 26%
Libraries/src/Amazon.Lambda.PowerShellHost0% | 0% | 78% | 13% | 8%
Blueprints/BlueprintPackager0% | 0% | 72% | 13% | 14%
Libraries/src/Amazon.Lambda.Serialization.SystemTextJson0% | 0% | 48% | 16% | 35%
Libraries/src/Amazon.Lambda.AspNetCoreServer.Hosting0% | 0% | 0% | 21% | 78%
Libraries/src/Amazon.Lambda.CloudWatchLogsEvents0% | 0% | 0% | 100% | 0%
Libraries/src/Amazon.Lambda.APIGatewayEvents0% | 0% | 0% | 76% | 23%
Libraries/src/Amazon.Lambda.KinesisAnalyticsEvents0% | 0% | 0% | 0% | 100%
Libraries/src/Amazon.Lambda.Core0% | 0% | 0% | 0% | 100%
Libraries/src/Amazon.Lambda.TestUtilities0% | 0% | 0% | 0% | 100%
Libraries/src/Amazon.Lambda.Annotations0% | 0% | 0% | 0% | 100%
Libraries/src/Amazon.Lambda.KinesisFirehoseEvents0% | 0% | 0% | 0% | 100%
Libraries/src/Amazon.Lambda.SQSEvents0% | 0% | 0% | 0% | 100%
LambdaRuntimeDockerfiles/sample/Sample0% | 0% | 0% | 0% | 100%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
internal PipelineStack()
in LambdaRuntimeDockerfiles/Infrastructure/src/Infrastructure/PipelineStack.cs
317 6 8
public override LexResponse Process()
in Blueprints/BlueprintDefinitions/vs2022/LexBookTripSample/template/src/BlueprintBaseName.1/BookCarIntentProcessor.cs
156 29 2
public override LexResponse Process()
in Blueprints/BlueprintDefinitions/vs2017/LexBookTripSample/template/src/BlueprintBaseName.1/BookCarIntentProcessor.cs
156 29 2
public override LexResponse Process()
in Blueprints/BlueprintDefinitions/vs2019/LexBookTripSample/template/src/BlueprintBaseName.1/BookCarIntentProcessor.cs
156 29 2
public LambdaAssemblyLoadContext()
in Tools/LambdaTestTool/src/Amazon.Lambda.TestTool/Runtime/LambdaAssemblyLoadContext.cs
125 15 1
protected override void MarshallRequest()
in Libraries/src/Amazon.Lambda.AspNetCoreServer/APIGatewayProxyFunction.cs
109 24 3
protected override void MarshallRequest()
in Libraries/src/Amazon.Lambda.AspNetCoreServer/APIGatewayHttpApiV2ProxyFunction.cs
98 19 3
public static CommandLineOptions Parse()
in Tools/LambdaTestTool/src/Amazon.Lambda.TestTool/CommandLineOptions.cs
93 22 1
protected override IList CreateProperties()
in Libraries/src/Amazon.Lambda.Serialization.Json/AwsResolver.cs
93 27 2
public async Task SendMessageHandler()
in Blueprints/BlueprintDefinitions/vs2022/WebSocketAPIServerless/template/src/BlueprintBaseName.1/Functions.cs
81 7 2
public async Task SendMessageHandler()
in Blueprints/BlueprintDefinitions/vs2019/WebSocketAPIServerless/template/src/BlueprintBaseName.1/Functions.cs
81 7 2
public static void Startup()
in Tools/LambdaTestTool/src/Amazon.Lambda.TestTool/TestToolStartup.cs
76 12 4
private static string CheckILambdaSerializerType()
in Libraries/src/Amazon.Lambda.RuntimeSupport/Bootstrap/UserCodeValidator.cs
70 15 1
public static AttributeModel Build()
in Libraries/src/Amazon.Lambda.Annotations.SourceGenerator/Models/Attributes/AttributeModelBuilder.cs
70 8 2
protected async Task ProcessRequest()
in Libraries/src/Amazon.Lambda.AspNetCoreServer/AbstractAspNetCoreFunction.cs
69 12 4
private static string AppendJson()
in Libraries/src/Amazon.Lambda.RuntimeSupport/ExceptionHandling/LambdaJsonExceptionWriter.cs
69 17 4
private ValidationResult Validate()
in Blueprints/BlueprintDefinitions/vs2022/LexBookTripSample/template/src/BlueprintBaseName.1/BookCarIntentProcessor.cs
66 17 1
private ValidationResult Validate()
in Blueprints/BlueprintDefinitions/vs2017/LexBookTripSample/template/src/BlueprintBaseName.1/BookCarIntentProcessor.cs
66 17 1
private ValidationResult Validate()
in Blueprints/BlueprintDefinitions/vs2019/LexBookTripSample/template/src/BlueprintBaseName.1/BookCarIntentProcessor.cs
66 17 1
private static IList BuildParameters()
in Libraries/src/Amazon.Lambda.Annotations.SourceGenerator/Models/GeneratedMethodModelBuilder.cs
66 7 3