microsoft / DevSkim
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 379 units with 6,652 lines of code in units (58.9% of code).
    • 5 very long units (855 lines of code)
    • 10 long units (775 lines of code)
    • 80 medium size units (2,489 lines of code)
    • 97 small units (1,431 lines of code)
    • 187 very small units (1,102 lines of code)
12% | 11% | 37% | 21% | 16%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
ts16% | 10% | 40% | 22% | 9%
cs9% | 12% | 34% | 21% | 22%
py0% | 0% | 84% | 0% | 15%
js0% | 0% | 0% | 0% | 100%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
DevSkim-VSCode-Plugin/server17% | 11% | 39% | 21% | 9%
DevSkim-DotNet/Microsoft.DevSkim16% | 8% | 30% | 23% | 20%
DevSkim-DotNet/Microsoft.DevSkim.CLI11% | 12% | 44% | 15% | 15%
DevSkim-DotNet/Microsoft.DevSkim.VSExtension0% | 17% | 27% | 24% | 31%
DevSkim-VSCode-Plugin/client0% | 0% | 52% | 34% | 12%
scripts0% | 0% | 84% | 0% | 15%
DevSkim-DotNet/Microsoft.DevSkim.Blazor0% | 0% | 0% | 0% | 100%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
public getMimeFromPath()
in DevSkim-VSCode-Plugin/server/src/utility_classes/pathOperations.ts
222 214 1
public getLangFromPath()
in DevSkim-VSCode-Plugin/server/src/utility_classes/pathOperations.ts
222 217 2
public ConvertedOatRule? DevSkimRuleToConvertedOatRule()
in DevSkim-DotNet/Microsoft.DevSkim/Ruleset.cs
161 24 1
public int RunFileEntries()
in DevSkim-DotNet/Microsoft.DevSkim.CLI/Commands/AnalyzeCommand.cs
136 25 2
private addAction()
in DevSkim-VSCode-Plugin/server/src/utility_classes/suppressions.ts
114 28 7
private void ParseOtherLineSuppressions()
in DevSkim-DotNet/Microsoft.DevSkim.VSExtension/Shim/SuppressorEx.cs
93 17 0
public override bool TryGetValue()
in DevSkim-DotNet/Microsoft.DevSkim.VSExtension/Checker/DevSkimErrorsSnapshot.cs
91 21 3
public static void Configure()
in DevSkim-DotNet/Microsoft.DevSkim.CLI/Commands/AnalyzeCommand.cs
87 1 1
public OperationResult WithinOperationDelegate()
in DevSkim-DotNet/Microsoft.DevSkim/WithinOperation.cs
87 19 4
private setOutputObject()
in DevSkim-VSCode-Plugin/server/src/devskimCLI.ts
83 27 0
public static isFindingCommented()
in DevSkim-VSCode-Plugin/server/src/utility_classes/suppressions.ts
83 19 6
private runAnalysis()
in DevSkim-VSCode-Plugin/server/src/devskimWorker.ts
69 19 4
private async analyze()
in DevSkim-VSCode-Plugin/server/src/devskimCLI.ts
67 12 1
private bool TestFile()
in DevSkim-DotNet/Microsoft.DevSkim.CLI/Tester.cs
60 12 1
public async validateRules()
in DevSkim-VSCode-Plugin/server/src/utility_classes/ruleValidator.ts
55 11 2
public static appliesToLangOrFile()
in DevSkim-VSCode-Plugin/server/src/devskimWorker.ts
48 22 4
private validateSeverity()
in DevSkim-VSCode-Plugin/server/src/utility_classes/ruleValidator.ts
47 11 1
private void CheckIntegrity()
in DevSkim-DotNet/Microsoft.DevSkim.CLI/Verifier.cs
46 11 0
public static MatchesConditionPattern()
in DevSkim-VSCode-Plugin/server/src/devskimWorker.ts
46 14 4
public OperationResult ScopedRegexOperationDelegate()
in DevSkim-DotNet/Microsoft.DevSkim/ScopedRegexOperation.cs
45 14 4