microsoft / OpenAPI.NET.CSharpAnnotations
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 180 units with 3,709 lines of code in units (71.3% of code).
    • 6 very long units (891 lines of code)
    • 14 long units (961 lines of code)
    • 28 medium size units (953 lines of code)
    • 30 small units (430 lines of code)
    • 102 very small units (474 lines of code)
24% | 25% | 25% | 11% | 12%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
cs24% | 25% | 25% | 11% | 12%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/OperationFilters70% | 0% | 27% | 2% | 0%
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration40% | 11% | 25% | 13% | 9%
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/ReferenceRegistries57% | 16% | 0% | 7% | 18%
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/Extensions0% | 38% | 24% | 27% | 9%
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/AssemblyLoader0% | 58% | 26% | 9% | 4%
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/PreprocessingOperationFilters0% | 63% | 36% | 0% | 0%
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/DocumentConfigFilters0% | 72% | 27% | 0% | 0%
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/DocumentFilters0% | 42% | 57% | 0% | 0%
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/PostProcessingDocumentFilters0% | 0% | 100% | 0% | 0%
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/OperationConfigFilters0% | 0% | 100% | 0% | 0%
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/Models0% | 0% | 30% | 25% | 44%
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/Exceptions0% | 0% | 0% | 5% | 94%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
public IDictionary GenerateOpenApiDocuments()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/InternalOpenApiGenerator.cs
206 18 6
internal override OpenApiSchema FindOrAddReference()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/ReferenceRegistries/SchemaReferenceRegistry.cs
186 39 1
private IList GenerateSpecificationDocuments()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/InternalOpenApiGenerator.cs
140 12 5
public IList Apply()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/OperationFilters/ResponseToResponseFilter.cs
137 23 3
public IList Apply()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/OperationFilters/ParamToRequestBodyFilter.cs
121 17 3
public IList Apply()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/OperationFilters/ParamToParameterFilter.cs
101 15 3
private void AddOperation()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/InternalOpenApiGenerator.cs
100 11 7
public IList Apply()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/PreprocessingOperationFilters/ConvertAlternativeParamTagsFilter.cs
98 17 3
internal static OpenApiSecurityScheme ToOAuth2SecurityScheme()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/Extensions/XElementExtensions.cs
84 16 2
public string BuildInternalGenerationContext()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/AssemblyLoader/AssemblyLoader.cs
81 9 5
private static OpenApiExample ToOpenApiExample()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/Extensions/XElementExtensions.cs
74 13 3
public IList Apply()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/DocumentConfigFilters/DocumentVariantAttributesFilter.cs
71 13 4
internal void RegisterAssemblyPaths()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/AssemblyLoader/AssemblyLoader.cs
68 11 1
private static OpenApiOAuthFlow ToOAuthFlow()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/Extensions/XElementExtensions.cs
67 13 3
public IList Apply()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/DocumentFilters/SecurityToSecurityRequirementDocumentFilter.cs
55 9 4
public IList Apply()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/PreprocessingOperationFilters/PopulateInAttributeFilter.cs
55 9 3
private void BuildMap()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/AssemblyLoader/AssemblyLoader.cs
54 8 5
internal override OpenApiSecurityScheme FindOrAddReference()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/ReferenceRegistries/SecuritySchemeReferenceRegistry.cs
52 6 1
protected override Assembly Load()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/AssemblyLoader/CustomAssemblyLoadContext.cs
51 10 1
internal static Dictionary ToOpenApiHeaders()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/Extensions/XElementExtensions.cs
51 5 3