awslabs / amazon-kinesis-aggregators
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 465 units with 4,397 lines of code in units (70.2% of code).
    • 3 very long units (354 lines of code)
    • 12 long units (844 lines of code)
    • 34 medium size units (1,057 lines of code)
    • 37 small units (548 lines of code)
    • 379 very small units (1,594 lines of code)
8% | 19% | 24% | 12% | 36%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
java8% | 19% | 24% | 12% | 36%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
src/main/java/com/amazonaws/services/kinesis/aggregators/configuration32% | 0% | 14% | 8% | 44%
src/main/java/com/amazonaws/services/kinesis/aggregators/datastore16% | 8% | 36% | 19% | 18%
src/main/java/com/amazonaws/services/kinesis/aggregators10% | 14% | 15% | 9% | 49%
src/main/java/com/amazonaws/services/kinesis/io0% | 33% | 6% | 19% | 39%
src/main/java/com/amazonaws/services/kinesis/aggregators/app0% | 43% | 43% | 8% | 5%
src/main/java/com/amazonaws/services/kinesis/aggregators/factory0% | 38% | 10% | 16% | 34%
src/main/java/com/amazonaws/services/kinesis/aggregators/metrics0% | 78% | 0% | 0% | 21%
src/main/java/com/amazonaws/services/kinesis/aggregators/annotations0% | 61% | 0% | 0% | 38%
src/main/java/com/amazonaws/services/kinesis/aggregators/consumer0% | 0% | 62% | 0% | 37%
sample/java/producer0% | 0% | 83% | 0% | 16%
src/main/java/com/amazonaws/services/kinesis/aggregators/cli0% | 0% | 89% | 0% | 10%
src/main/java/com/amazonaws/services/kinesis/io/serializer0% | 0% | 49% | 0% | 50%
src/main/java/com/amazonaws/services/kinesis/aggregators/processor0% | 0% | 32% | 35% | 31%
src/main/java/com/amazonaws/services/kinesis/aggregators/summary0% | 0% | 22% | 0% | 77%
sample/java/model0% | 0% | 0% | 34% | 65%
src/main/java/com/amazonaws/services/kinesis/aggregators/exception0% | 0% | 0% | 0% | 100%
src/main/java/com/amazonaws/services/kinesis/aggregators/idempotency0% | 0% | 0% | 0% | 100%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
public static List buildFromConfig()
in src/main/java/com/amazonaws/services/kinesis/aggregators/configuration/ExternalConfigurationModel.java
127 28 1
public void run()
in src/main/java/com/amazonaws/services/kinesis/aggregators/datastore/DynamoQueryEngine.java
121 26 0
public void initialize()
in src/main/java/com/amazonaws/services/kinesis/aggregators/StreamAggregator.java
106 22 1
public List getData()
in src/main/java/com/amazonaws/services/kinesis/io/JsonDataExtractor.java
83 19 1
public static AggregatorGroup buildFromConfig()
in src/main/java/com/amazonaws/services/kinesis/aggregators/factory/ExternallyConfiguredAggregatorFactory.java
82 16 4
public void aggregateEvents()
in src/main/java/com/amazonaws/services/kinesis/aggregators/StreamAggregator.java
81 17 1
public void contextInitialized()
in src/main/java/com/amazonaws/services/kinesis/aggregators/app/AggregatorsBeanstalkApp.java
79 20 1
public void emit()
in src/main/java/com/amazonaws/services/kinesis/aggregators/metrics/CloudWatchMetricsEmitter.java
74 14 1
public List getData()
in src/main/java/com/amazonaws/services/kinesis/io/ObjectExtractor.java
73 19 1
public AnnotationProcessor()
in src/main/java/com/amazonaws/services/kinesis/aggregators/annotations/AnnotationProcessor.java
69 16 1
public void run()
in src/main/java/com/amazonaws/services/kinesis/aggregators/datastore/DynamoQueryEngine.java
65 15 0
public List getData()
in src/main/java/com/amazonaws/services/kinesis/io/StringDataExtractor.java
64 14 1
protected void doAction()
in src/main/java/com/amazonaws/services/kinesis/aggregators/app/QueryByLabelServlet.java
63 15 2
public void doAction()
in src/main/java/com/amazonaws/services/kinesis/aggregators/app/DateQueryServlet.java
56 9 2
public static Map getOpenShards()
in src/main/java/com/amazonaws/services/kinesis/aggregators/StreamAggregatorUtils.java
55 11 2
public static void cleanupAggTable()
in src/main/java/com/amazonaws/services/kinesis/aggregators/datastore/DynamoUtils.java
50 8 4
public static void main()
in src/main/java/com/amazonaws/services/kinesis/aggregators/cli/AggregatorsCli.java
49 9 1
public static String getRedshiftCopyCommand()
in src/main/java/com/amazonaws/services/kinesis/aggregators/StreamAggregatorUtils.java
46 9 3
public UpdateItemResult updateConditionalValue()
in src/main/java/com/amazonaws/services/kinesis/aggregators/datastore/DynamoDataStore.java
43 3 5
public void configure()
in src/main/java/com/amazonaws/services/kinesis/aggregators/consumer/AggregatorConsumer.java
42 7 0