microsoft / MCW-Cosmos-DB-Real-Time-Advanced-Analytics
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 45 units with 787 lines of code in units (61.2% of code).
    • 1 very long units (175 lines of code)
    • 2 long units (136 lines of code)
    • 8 medium size units (229 lines of code)
    • 6 small units (85 lines of code)
    • 28 very small units (162 lines of code)
22% | 17% | 29% | 10% | 20%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
cs22% | 17% | 29% | 10% | 20%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
lab-files/TransactionGenerator39% | 30% | 9% | 10% | 10%
lab-files/Tools/CustomerProfileJsonDataGenerator0% | 0% | 56% | 15% | 27%
lab-files/Tools/CustomerProfileJsonDataGenerator/Models0% | 0% | 100% | 0% | 0%
lab-files/TransactionGenerator/OutputHelpers0% | 0% | 47% | 0% | 52%
lab-files/Tools/CustomerProfileJsonDataGenerator/Storage0% | 0% | 0% | 0% | 100%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
private static async Task SendData()
in Hands-on lab/lab-files/TransactionGenerator/Program.cs
175 26 7
public static async Task Main()
in Hands-on lab/lab-files/TransactionGenerator/Program.cs
82 6 1
public static Transaction FromString()
in Hands-on lab/lab-files/TransactionGenerator/Transaction.cs
54 16 2
private static()
in Hands-on lab/lab-files/TransactionGenerator/Program.cs
42 8 8
public Task StartAsync()
in Hands-on lab/lab-files/Tools/CustomerProfileJsonDataGenerator/CustomerProfileGenerator.cs
36 4 1
public static AccountData FromString()
in Hands-on lab/lab-files/Tools/CustomerProfileJsonDataGenerator/Models/AccountData.cs
31 6 2
internal void Populate()
in Hands-on lab/lab-files/Tools/CustomerProfileJsonDataGenerator/DataObjects.cs
30 1 0
private async Task CreateUserAccountSourceFiles()
in Hands-on lab/lab-files/Tools/CustomerProfileJsonDataGenerator/CustomerProfileGenerator.cs
24 5 2
private async Task CreateEcommerceSourceFiles()
in Hands-on lab/lab-files/Tools/CustomerProfileJsonDataGenerator/CustomerProfileGenerator.cs
24 5 2
internal void Populate()
in Hands-on lab/lab-files/Tools/CustomerProfileJsonDataGenerator/DataObjects.cs
21 3 0
public static ConsoleColor ToConsoleColor()
in Hands-on lab/lab-files/TransactionGenerator/OutputHelpers/ConsoleColorHelper.cs
21 8 1
private static async Task InitializeCosmosDb()
in Hands-on lab/lab-files/TransactionGenerator/Program.cs
19 4 0
private static List GetTransactionData()
in Hands-on lab/lab-files/TransactionGenerator/Program.cs
16 1 1
internal void Populate()
in Hands-on lab/lab-files/Tools/CustomerProfileJsonDataGenerator/DataObjects.cs
14 2 0
private void GetDataSources()
in Hands-on lab/lab-files/Tools/CustomerProfileJsonDataGenerator/DataObjects.cs
12 1 1
public static IEnumerable ReadLines()
in Hands-on lab/lab-files/Tools/CustomerProfileJsonDataGenerator/StreamReaderExtensions.cs
12 3 1
public static IEnumerable ReadLines()
in Hands-on lab/lab-files/TransactionGenerator/StreamReaderExtensions.cs
12 3 1
private static void OutputStatistics()
in Hands-on lab/lab-files/TransactionGenerator/Program.cs
10 3 1
public static void WriteLineInColor()
in Hands-on lab/lab-files/TransactionGenerator/Program.cs
9 1 2
private void GetDataSources()
in Hands-on lab/lab-files/Tools/CustomerProfileJsonDataGenerator/DataObjects.cs
8 1 1