microsoft / dotnet-apiport
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 770 units with 9,543 lines of code in units (55.7% of code).
    • 2 very long units (260 lines of code)
    • 15 long units (1,017 lines of code)
    • 106 medium size units (3,199 lines of code)
    • 177 small units (2,538 lines of code)
    • 470 very small units (2,529 lines of code)
2% | 10% | 33% | 26% | 26%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
cs2% | 10% | 33% | 26% | 26%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
src/lib/Microsoft.Fx.Portability8% | 8% | 23% | 26% | 33%
src/ApiPort/ApiPort0% | 32% | 25% | 24% | 17%
src/lib/Microsoft.Fx.Portability.Reports.Excel0% | 27% | 47% | 16% | 8%
src/ApiPort/ApiPort.VisualStudio0% | 12% | 17% | 35% | 34%
src/lib/Microsoft.Fx.Portability.Cci0% | 5% | 38% | 32% | 23%
src/lib/Microsoft.Fx.Portability.MetadataReader0% | 6% | 48% | 20% | 24%
src/lib/Microsoft.Fx.Portability.Reports.DGML0% | 25% | 23% | 10% | 40%
src/ApiPort/ApiPort.VisualStudio.Common0% | 0% | 49% | 29% | 21%
src/lib/Microsoft.Fx.Portability.Reports.Html0% | 0% | 35% | 21% | 43%
src/lib/Microsoft.Fx.Portability.Offline0% | 0% | 27% | 47% | 24%
src/lib/Microsoft.Fx.Portability.Reports.Json0% | 0% | 0% | 55% | 45%
src/ApiPort/ApiPort.VisualStudio.20170% | 0% | 0% | 0% | 100%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
public static IEnumerable FromMarkdown()
in src/lib/Microsoft.Fx.Portability/BreakingChangeParser.cs
146 38 2
private static void ParseNonStateChange()
in src/lib/Microsoft.Fx.Portability/BreakingChangeParser.cs
114 30 4
public static IContainer Build()
in src/ApiPort/ApiPort/DependencyBuilder.cs
99 4 2
public static ICommandLineOptions ParseCommandLineOptions()
in src/ApiPort/ApiPort/CommandLineOptions.cs
88 4 1
public static async Task Main()
in src/ApiPort/ApiPort/Program.cs
81 17 1
public static async Task CreateAsync()
in src/ApiPort/ApiPort.VisualStudio/ServiceProvider.cs
78 1 1
private IEnumerable GetDependencies()
in src/lib/Microsoft.Fx.Portability.Cci/Analyzer/DependencyFinderEngine.cs
73 6 1
private void GenerateDetailsPage()
in src/lib/Microsoft.Fx.Portability.Reports.Excel/ExcelOpenXmlOutputWriter.cs
73 9 2
public MemberMetadataInfo GetPrimitiveType()
in src/lib/Microsoft.Fx.Portability.MetadataReader/MemberMetadataInfoTypeProvider.cs
69 19 1
public AnalyzeResponse AnalyzeRequest()
in src/lib/Microsoft.Fx.Portability/Analyzer/RequestAnalyzer.cs
68 8 2
public ReportingResult ComputeReport()
in src/lib/Microsoft.Fx.Portability/Reporting/ReportGenerator.cs
60 9 9
public Task WriteStreamAsync()
in src/lib/Microsoft.Fx.Portability.Reports.DGML/DGMLOutputWriter.cs
56 11 2
private void GenerateExceptionsPage()
in src/lib/Microsoft.Fx.Portability.Reports.Excel/ExcelOpenXmlOutputWriter.cs
56 9 3
private void Load()
in src/lib/Microsoft.Fx.Portability/TargetMapper.cs
56 6 2
public CloudApiCatalogLookup()
in src/lib/Microsoft.Fx.Portability/ObjectModel/CloudApiCatalogLookup.cs
55 3 2
public static Table AddTable()
in src/lib/Microsoft.Fx.Portability.Reports.Excel/OpenXmlExtensions.cs
54 5 5
private static()
in src/ApiPort/ApiPort/CommandLineOptions.cs
51 8 2
public IEnumerable GetSourceInfo()
in src/ApiPort/ApiPort.VisualStudio.Common/SourceMapping/SourceLineMapper.cs
50 7 2
private static IEnumerable GetFilePaths()
in src/lib/Microsoft.Fx.Portability.Cci/HostEnvironment.cs
50 11 3
private void GenerateBreakingChangesPage()
in src/lib/Microsoft.Fx.Portability.Reports.Excel/ExcelOpenXmlOutputWriter.cs
48 3 2