microsoft / Forge
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 74 units with 1,272 lines of code in units (67.8% of code).
    • 3 very long units (369 lines of code)
    • 1 long units (63 lines of code)
    • 14 medium size units (421 lines of code)
    • 17 small units (230 lines of code)
    • 39 very small units (189 lines of code)
29% | 4% | 33% | 18% | 14%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
cs29% | 4% | 33% | 18% | 14%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
Forge.TreeWalker/src29% | 4% | 33% | 18% | 14%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
public async Task WalkTree()
in Forge.TreeWalker/src/TreeWalkerSession.cs
151 20 1
internal async Task ExecuteActionWithRetry()
in Forge.TreeWalker/src/TreeWalkerSession.cs
113 25 5
public async Task EvaluateDynamicProperty()
in Forge.TreeWalker/src/TreeWalkerSession.cs
105 30 2
internal async Task ExecuteAction()
in Forge.TreeWalker/src/TreeWalkerSession.cs
63 6 6
internal async Task PerformActionTypeBehavior()
in Forge.TreeWalker/src/TreeWalkerSession.cs
48 11 2
public static void GetActionsMapFromAssembly()
in Forge.TreeWalker/src/TreeWalkerSession.cs
41 7 2
public async Task VisitNode()
in Forge.TreeWalker/src/TreeWalkerSession.cs
40 9 1
private void Initialize()
in Forge.TreeWalker/src/ExpressionExecutor.cs
39 5 0
public ActionContext()
in Forge.TreeWalker/src/ActionContext.cs
33 9 11
private static List GetAllSchemasInDirectory()
in Forge.TreeWalker/src/ForgeSchemaValidator.cs
32 6 2
private static bool Validate()
in Forge.TreeWalker/src/ForgeSchemaValidator.cs
29 7 3
private static List ConvertStringToJObjectList()
in Forge.TreeWalker/src/ForgeSchemaValidator.cs
24 4 2
public TreeNodeContext()
in Forge.TreeWalker/src/TreeNodeContext.cs
24 6 8
private async Task CommitCurrentTreeNode()
in Forge.TreeWalker/src/TreeWalkerSession.cs
23 6 2
private async Task GetOrCommitTreeInput()
in Forge.TreeWalker/src/TreeWalkerSession.cs
23 4 1
public TreeWalkerSession()
in Forge.TreeWalker/src/TreeWalkerSession.cs
22 3 1
internal async Task SelectChild()
in Forge.TreeWalker/src/TreeWalkerSession.cs
22 6 1
internal async Task PerformSubroutineTypeBehavior()
in Forge.TreeWalker/src/TreeWalkerSession.cs
21 5 2
internal async Task PerformLeafTypeBehavior()
in Forge.TreeWalker/src/TreeWalkerSession.cs
20 7 1
public override async Task RunAction()
in Forge.TreeWalker/src/SubroutineAction.cs
18 2 1