microsoft / CRA
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 505 units with 7,217 lines of code in units (70.5% of code).
    • 4 very long units (454 lines of code)
    • 21 long units (1,404 lines of code)
    • 75 medium size units (2,247 lines of code)
    • 107 small units (1,569 lines of code)
    • 298 very small units (1,543 lines of code)
6% | 19% | 31% | 21% | 21%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
cs6% | 19% | 31% | 21% | 21%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
CRA.ClientLibrary/Main23% | 25% | 34% | 5% | 11%
CRA.ClientLibrary/DataProcessing0% | 23% | 27% | 24% | 24%
CRA.DataProvider.File0% | 28% | 39% | 23% | 8%
CRA.Worker0% | 87% | 0% | 12% | 0%
CRA.ClientLibrary/AzureProvider0% | 7% | 21% | 36% | 34%
CRA.ClientLibrary/Tables0% | 25% | 10% | 42% | 21%
CRA.ClientLibrary/Utilities0% | 0% | 48% | 36% | 15%
CRA.ClientLibrary/Vertices0% | 0% | 37% | 26% | 36%
CRA.ClientLibrary/DataProvider0% | 0% | 41% | 33% | 25%
CRA.ClientLibrary/Security0% | 0% | 52% | 13% | 34%
CRA.ClientLibrary/Definitions0% | 0% | 0% | 22% | 77%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
internal async Task Connect_InitiatorSide()
in src/CRA.ClientLibrary/Main/CRAWorker.cs
136 19 8
private async Task EgressToStream()
in src/CRA.ClientLibrary/Main/CRAWorker.cs
108 18 10
private async Task IngressFromStream()
in src/CRA.ClientLibrary/Main/CRAWorker.cs
106 18 10
public async Task DeleteConnectionInfoAsync()
in src/CRA.ClientLibrary/Main/CRAClientLibrary.cs
104 17 4
public void CreateAndTransformDataset()
in src/CRA.ClientLibrary/DataProcessing/ShardedOperators/ShardedProducerOperator.cs
99 16 1
public Task DeleteVertexInfo()
in src/CRA.DataProvider.File/FileVertexProvider.cs
94 13 1
private void ApplyTransformersOnInputs()
in src/CRA.ClientLibrary/DataProcessing/ShardedOperators/ShardedEndpoints/ShardedShuffleInput.cs
89 19 0
internal void PrepareFinalOperatorsTasks()
in src/CRA.ClientLibrary/DataProcessing/Definitions/Operator/OperatorsToplogy.cs
85 20 0
public override async Task OperatorOutputToStreamAsync()
in src/CRA.ClientLibrary/DataProcessing/ShardedOperators/ShardedEndpoints/ShardedProducerOutput.cs
83 22 5
static void Main()
in src/CRA.Worker/Program.cs
82 12 1
private int Connect_ReceiverSide()
in src/CRA.ClientLibrary/Main/CRAWorker.cs
77 7 7
public async Task InstantiateVertexAsync()
in src/CRA.ClientLibrary/Main/CRAClientLibrary.cs
74 7 4
private void DeployMove()
in src/CRA.ClientLibrary/DataProcessing/Datasets/DeployableShardedDataset.cs
63 6 2
private async Task EgressToVertexInput()
in src/CRA.ClientLibrary/Main/CRAWorker.cs
61 12 5
internal override void InitializeOperator()
in src/CRA.ClientLibrary/DataProcessing/ShardedOperators/ShardedProducerOperator.cs
59 12 2
public async Task InitializeVertexAsync()
in src/CRA.ClientLibrary/Main/CRAClientLibrary.cs
58 10 8
private bool TryFusedConnect()
in src/CRA.ClientLibrary/Main/CRAWorker.cs
57 18 5
private void ConnectVertex_Receiver()
in src/CRA.ClientLibrary/Main/CRAWorker.cs
56 10 2
private async Task RetryRestoreConnection()
in src/CRA.ClientLibrary/Main/CRAWorker.cs
55 11 6
public Task Delete()
in src/CRA.DataProvider.File/FileShardedVertexProvider.cs
54 7 1