microsoft / prose
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 442 units with 5,859 lines of code in units (70.6% of code).
    • 1 very long units (121 lines of code)
    • 8 long units (492 lines of code)
    • 81 medium size units (2,521 lines of code)
    • 113 small units (1,661 lines of code)
    • 239 very small units (1,064 lines of code)
2% | 8% | 43% | 28% | 18%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
cs2% | 3% | 44% | 30% | 18%
py0% | 27% | 36% | 21% | 14%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
api-samples/Split.Text100% | 0% | 0% | 0% | 0%
misc/CCSynth0% | 27% | 36% | 21% | 14%
dsl-samples/MergeConflictsResolution0% | 16% | 22% | 38% | 21%
api-samples/Extraction.Json0% | 100% | 0% | 0% | 0%
dsl-samples/tutorial0% | 0% | 52% | 26% | 20%
misc/BenchmarkDriver0% | 0% | 39% | 28% | 32%
api-samples/Transformation.Text0% | 0% | 66% | 27% | 5%
api-samples/Read.FlatFile0% | 0% | 93% | 0% | 6%
dsl-samples/ProseSample0% | 0% | 33% | 45% | 20%
api-samples/Transformation.Json0% | 0% | 78% | 0% | 21%
api-samples/Extraction.Web0% | 0% | 0% | 100% | 0%
api-samples/Matching.Text0% | 0% | 0% | 100% | 0%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
private static void Main()
in api-samples/Split.Text/Program.cs
121 15 1
def _get_sampled_indexes_and_baseline_df()
in misc/CCSynth/CC/DataInsights/src/prose/datainsights/_assertion/_assertion_helper.py
72 19 3
def process()
in misc/CCSynth/CC/DataInsights/src/prose/datainsights/_assertion/_decision_tree_assertions.py
69 13 1
def validate()
in misc/CCSynth/CC/DataInsights/src/prose/datainsights/_assertion/_assertion_helper.py
64 10 4
private static void Main()
in api-samples/Extraction.Json/SampleProgram.cs
62 4 1
internal Optional LearnDupLet()
in dsl-samples/MergeConflictsResolution/MergeConflictsResolution/WitnessFunctions.cs
62 9 4
def learn()
in misc/CCSynth/CC/DataInsights/src/prose/datainsights/_assertion/_pca_assertions.py
59 11 1
def get_best_column_from_partitions()
in misc/CCSynth/CC/DataInsights/src/prose/datainsights/_assertion/_decision_tree_assertions.py
53 13 1
public MergeConflict()
in dsl-samples/MergeConflictsResolution/MergeConflictsResolution/MergeConflict.cs
51 13 3
private static void LearnFromNewExample()
in dsl-samples/tutorial/part2b-complete/ProseTutorial/Program.cs
46 9 0
private static void LearnFromNewExample()
in dsl-samples/tutorial/part1a-complete/ProseTutorial/Program.cs
45 9 0
private static void LearnFromNewExample()
in dsl-samples/tutorial/part1a/ProseTutorial/Program.cs
45 9 0
private static void LearnFromNewExample()
in dsl-samples/tutorial/part1b-attempt1-complete/ProseTutorial/Program.cs
45 9 0
private static void LearnFromNewExample()
in dsl-samples/tutorial/part1b-attempt1/ProseTutorial/Program.cs
45 9 0
private static void LearnFromNewExample()
in dsl-samples/tutorial/part1b-attempt2-complete/ProseTutorial/Program.cs
45 9 0
private static void LearnFromNewExample()
in dsl-samples/tutorial/part1b-attempt2/ProseTutorial/Program.cs
45 9 0
private static void LearnFromNewExample()
in dsl-samples/tutorial/part1c-complete/ProseTutorial/Program.cs
45 9 0
private static void LearnFromNewExample()
in dsl-samples/tutorial/part1c/ProseTutorial/Program.cs
45 9 0
private static void LearnFromNewExample()
in dsl-samples/tutorial/part1d-complete/ProseTutorial/Program.cs
45 9 0
private static void LearnFromNewExample()
in dsl-samples/tutorial/part1d/ProseTutorial/Program.cs
45 9 0