awslabs / aws-athena-query-federation
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 2,041 units with 21,912 lines of code in units (66.3% of code).
    • 9 very long units (1,254 lines of code)
    • 34 long units (2,311 lines of code)
    • 197 medium size units (5,818 lines of code)
    • 374 small units (5,257 lines of code)
    • 1,427 very small units (7,272 lines of code)
5% | 10% | 26% | 23% | 33%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
java5% | 10% | 26% | 23% | 33%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
athena-federation-sdk7% | 4% | 15% | 29% | 43%
athena-aws-cmdb15% | 20% | 29% | 16% | 17%
athena-vertica17% | 22% | 22% | 19% | 17%
athena-neptune21% | 18% | 33% | 10% | 16%
athena-dynamodb0% | 25% | 33% | 24% | 16%
athena-jdbc0% | 16% | 24% | 22% | 36%
athena-elasticsearch0% | 15% | 54% | 13% | 16%
athena-docdb0% | 32% | 30% | 17% | 20%
athena-federation-sdk-tools0% | 20% | 47% | 13% | 18%
athena-timestream0% | 13% | 39% | 12% | 35%
athena-cloudwatch-metrics0% | 12% | 50% | 6% | 30%
athena-redis0% | 8% | 42% | 16% | 32%
athena-federation-integ-test0% | 0% | 29% | 24% | 46%
athena-hbase0% | 0% | 30% | 41% | 28%
athena-cloudwatch0% | 0% | 47% | 29% | 23%
athena-tpcds0% | 0% | 40% | 28% | 30%
athena-udfs0% | 0% | 52% | 43% | 4%
athena-example0% | 0% | 15% | 31% | 52%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
protected static void writeMapValue()
in athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/data/BlockUtils.java
162 41 4
private Extractor makeExtractor()
in athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/handlers/UserDefinedFunctionHandler.java
153 26 3
public static void setValue()
in athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/data/BlockUtils.java
151 40 3
protected static void writeListValue()
in athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/data/BlockUtils.java
151 39 4
protected static void writeStructValue()
in athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/data/BlockUtils.java
151 39 4
private Extractor makeExtractor()
in athena-vertica/src/main/java/com/amazonaws/athena/connectors/vertica/VerticaRecordHandler.java
150 25 3
private void instanceToRow()
in athena-aws-cmdb/src/main/java/com/amazonaws/athena/connectors/aws/cmdb/tables/RdsTableProvider.java
127 23 2
public static void writeRowTemplate()
in athena-neptune/src/main/java/com/amazonaws/athena/connectors/neptune/propertygraph/rowwriters/EdgeRowWriter.java
105 20 2
static
in athena-aws-cmdb/src/main/java/com/amazonaws/athena/connectors/aws/cmdb/tables/RdsTableProvider.java
104 1 0
private Extractor makeExtractor()
in athena-jdbc/src/main/java/com/amazonaws/athena/connectors/jdbc/manager/JdbcRecordHandler.java
93 29 3
private Object coerceField()
in athena-elasticsearch/src/main/java/com/amazonaws/athena/connectors/elasticsearch/ElasticsearchFieldResolver.java
91 32 2
public static void writeRowTemplate()
in athena-neptune/src/main/java/com/amazonaws/athena/connectors/neptune/propertygraph/rowwriters/VertexRowWriter.java
90 22 2
private void instanceToRow()
in athena-aws-cmdb/src/main/java/com/amazonaws/athena/connectors/aws/cmdb/tables/ec2/Ec2TableProvider.java
87 14 2
public static String generateSingleColumnFilter()
in athena-dynamodb/src/main/java/com/amazonaws/athena/connectors/dynamodb/util/DDBPredicateUtils.java
82 22 5
public PreparedStatement buildSql()
in athena-jdbc/src/main/java/com/amazonaws/athena/connectors/jdbc/manager/JdbcSplitQueryBuilder.java
79 16 7
public static Document makePredicate()
in athena-docdb/src/main/java/com/amazonaws/athena/connectors/docdb/QueryUtils.java
77 18 2
static TestConfig fromArgs()
in athena-federation-sdk-tools/src/main/java/com/amazonaws/athena/connector/validation/ConnectorValidator.java
76 6 1
static
in athena-aws-cmdb/src/main/java/com/amazonaws/athena/connectors/aws/cmdb/tables/ec2/Ec2TableProvider.java
75 1 0
public static void unsetRow()
in athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/data/BlockUtils.java
73 22 2
public static int compare()
in athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/data/ArrowTypeComparator.java
73 29 3