aws / codelyzer
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 322 units with 3,452 lines of code in units (65.6% of code).
    • 0 very long units (0 lines of code)
    • 4 long units (269 lines of code)
    • 39 medium size units (1,151 lines of code)
    • 45 small units (714 lines of code)
    • 234 very small units (1,318 lines of code)
0% | 7% | 33% | 20% | 38%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
cs0% | 7% | 33% | 20% | 38%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
src/Analysis/Codelyzer.Analysis.Build0% | 12% | 55% | 19% | 11%
src/Analysis/Codelyzer.Analysis0% | 18% | 28% | 34% | 18%
src/Analysis/Codelyzer.Analysis.CSharp0% | 6% | 33% | 28% | 31%
src/Analysis/Codelyzer.Analysis.Common0% | 0% | 34% | 36% | 30%
src/Analysis/Codelyzer.Analysis.Model0% | 0% | 5% | 4% | 90%
tst/Projects/FrameworkEncoreProject0% | 0% | 0% | 68% | 31%
tst/Projects/CodelyzerDummy0% | 0% | 0% | 0% | 100%
tst/Projects/SdkNetStandardProjectWithConstants0% | 0% | 0% | 0% | 100%
tst/Projects/SdkNetStandardProject0% | 0% | 0% | 0% | 100%
tst/Projects/LegacyFrameworkProject0% | 0% | 0% | 0% | 100%
tst/Projects/SdkNetCoreProject0% | 0% | 0% | 0% | 100%
tst/Projects/LegacyFrameworkProjectWithPackageReference0% | 0% | 0% | 0% | 100%
tst/Projects/SdkNetCoreProjectWithReference0% | 0% | 0% | 0% | 100%
tst/Projects/SdkNetCoreProjectImport0% | 0% | 0% | 0% | 100%
tst/Projects/SdkNetStandardProjectImport0% | 0% | 0% | 0% | 100%
tst/Projects/SdkNetStandardProjectWithPackageReference0% | 0% | 0% | 0% | 100%
tst/Projects/SdkNetCoreProjectWithImportedProps0% | 0% | 0% | 0% | 100%
tst/Projects/LegacyFrameworkProjectWithReference0% | 0% | 0% | 0% | 100%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
public void Build()
in src/Analysis/Codelyzer.Analysis.Build/WorkspaceBuilderHelper.cs
81 9 0
private void BuildSolution()
in src/Analysis/Codelyzer.Analysis.Build/WorkspaceBuilderHelper.cs
67 8 1
public void HandleCommand()
in src/Analysis/Codelyzer.Analysis/AnalyzerCLI.cs
64 12 1
private void SetMetaData()
in src/Analysis/Codelyzer.Analysis.CSharp/Handlers/InvocationExpressionHandler.cs
57 13 1
private void SetMetaData()
in src/Analysis/Codelyzer.Analysis.CSharp/Handlers/ObjectCreationExpressionHandler.cs
47 11 1
private ProjectAnalysisResult BuildIncremental()
in src/Analysis/Codelyzer.Analysis.Build/WorkspaceBuilderHelper.cs
47 8 1
static async Task Main()
in src/Analysis/Codelyzer.Analysis/Program.cs
41 7 1
public async IAsyncEnumerable BuildProject()
in src/Analysis/Codelyzer.Analysis.Build/WorkspaceBuilder.cs
40 4 0
public async Task Build()
in src/Analysis/Codelyzer.Analysis.Build/ProjectBuildHandler.cs
40 6 0
public static UstNode GetObject()
in src/Analysis/Codelyzer.Analysis.Model/ModelFactory.cs
39 11 1
public async IAsyncEnumerable BuildProjectIncremental()
in src/Analysis/Codelyzer.Analysis.Build/WorkspaceBuilderHelper.cs
39 4 0
public ProjectBuildResult ReferenceOnlyBuild()
in src/Analysis/Codelyzer.Analysis.Build/ProjectBuildHandler.cs
37 6 0
public void GenerateNoBuildAnalysis()
in src/Analysis/Codelyzer.Analysis.Build/WorkspaceBuilderHelper.cs
36 2 0
private async Task SetCompilation()
in src/Analysis/Codelyzer.Analysis.Build/ProjectBuildHandler.cs
36 6 0
public async Task IncrementalBuild()
in src/Analysis/Codelyzer.Analysis.Build/ProjectBuildHandler.cs
34 3 2
private EnvironmentOptions GetEnvironmentOptions()
in src/Analysis/Codelyzer.Analysis.Build/WorkspaceBuilderHelper.cs
33 7 1
private async IAsyncEnumerable AnalyzeGeneratorAsync()
in src/Analysis/Codelyzer.Analysis/CSharpCodeAnalyzer.cs
33 4 1
public static string GetMsBuildPathFromVSDirectory()
in src/Analysis/Codelyzer.Analysis.Build/WorkspaceBuilderHelper.cs
32 5 3
private string NormalizePath()
in src/Analysis/Codelyzer.Analysis.Build/WorkspaceBuilderHelper.cs
30 5 1
private void SetSyntaxCompilation()
in src/Analysis/Codelyzer.Analysis.Build/ProjectBuildHandler.cs
30 4 0