microsoft / botbuilder-java
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 7,149 units with 49,295 lines of code in units (59.5% of code).
    • 18 very long units (2,394 lines of code)
    • 75 long units (5,087 lines of code)
    • 366 medium size units (11,737 lines of code)
    • 565 small units (8,255 lines of code)
    • 6,125 very small units (21,822 lines of code)
4% | 10% | 23% | 16% | 44%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
java4% | 10% | 23% | 16% | 44%
js0% | 32% | 35% | 19% | 11%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
libraries/bot-dialogs6% | 12% | 23% | 14% | 42%
libraries/bot-builder2% | 5% | 30% | 26% | 34%
libraries/bot-connector2% | 5% | 30% | 27% | 33%
libraries/bot-ai-qna0% | 9% | 42% | 7% | 40%
libraries/bot-azure0% | 15% | 47% | 14% | 23%
libraries/bot-ai-luis-v30% | 11% | 27% | 10% | 50%
generators/generators0% | 8% | 26% | 40% | 23%
libraries/bot-schema0% | 1% | 3% | 8% | 86%
libraries/bot-applicationinsights0% | 0% | 23% | 33% | 43%
libraries/bot-integration-core0% | 0% | 11% | 52% | 36%
libraries/bot-integration-spring0% | 0% | 0% | 0% | 100%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
private DateTimeResolutionResult parseOneWordPeriod()
in libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/datetime/parsers/BaseDatePeriodParser.java
229 71 2
private DateTimeResolutionResult parseSpecificTimeCases()
in libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/datetime/parsers/BaseTimePeriodParser.java
194 74 2
public DateTimeParseResult parse()
in libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/datetime/parsers/BaseMergedDateTimeParser.java
172 63 2
private DateTimeResolutionResult parseImplicitDate()
in libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/datetime/parsers/BaseDateParser.java
170 25 2
protected DateTimeResolutionResult parseSpecificTimeOfDay()
in libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/datetime/parsers/BaseDateTimePeriodParser.java
163 35 2
public List extract()
in libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/numberwithunit/extractors/NumberWithUnitExtractor.java
151 48 1
private DateTimeResolutionResult match2Time()
in libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/datetime/parsers/BaseTimeParser.java
135 31 2
private DateTimeResolutionResult parseDuration()
in libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/datetime/parsers/BaseDatePeriodParser.java
121 29 2
protected CompletableFuture onInvokeActivity()
in libraries/bot-builder/src/main/java/com/microsoft/bot/builder/teams/TeamsActivityHandler.java
112 21 1
public Response intercept()
in libraries/bot-connector/src/main/java/com/microsoft/bot/restclient/interceptors/LoggingInterceptor.java
110 35 1
protected ParseResult parsePercentage()
in libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/number/parsers/BaseCJKNumberParser.java
109 34 1
public SortedMap dateTimeResolution()
in libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/datetime/parsers/BaseMergedDateTimeParser.java
108 33 1
protected void initializeConfiguration()
in libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/numberwithunit/NumberWithUnitRecognizer.java
106 1 0
private DateTimeResolutionResult mergeDateAndTime()
in libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/datetime/parsers/BaseDateTimeParser.java
105 30 2
private static List resolveDateRange()
in libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/expression/TimexResolver.java
105 12 2
private Collection numberWithMonth()
in libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/datetime/extractors/BaseDateExtractor.java
102 27 2
private List matchTimeOfDay()
in libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/datetime/extractors/BaseDateTimePeriodExtractor.java
101 31 3
public List extract()
in libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/sequence/extractors/BasePhoneNumberExtractor.java
101 34 1
private DateTimeResolutionResult parseDecade()
in libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/datetime/parsers/BaseDatePeriodParser.java
100 22 2
private void getResolution()
in libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/datetime/parsers/BaseDateTimeAltParser.java
96 16 3