amazon-connect / amazon-connect-workshops
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 178 units with 2,584 lines of code in units (78.0% of code).
    • 2 very long units (242 lines of code)
    • 6 long units (388 lines of code)
    • 26 medium size units (899 lines of code)
    • 37 small units (564 lines of code)
    • 107 very small units (491 lines of code)
9% | 15% | 34% | 21% | 19%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
py9% | 15% | 34% | 21% | 19%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
lambdas/modifyCTR17% | 8% | 19% | 20% | 33%
scripts/quicksight23% | 28% | 44% | 3% | 0%
lambdas/modifyCTR/isodate0% | 16% | 38% | 23% | 21%
scripts/mockCTRs0% | 18% | 50% | 21% | 9%
scripts/lex0% | 0% | 23% | 47% | 28%
lambdas/firehoseAddNewLine0% | 0% | 100% | 0% | 0%
lambdas/updatePartitions0% | 0% | 0% | 83% | 16%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
def flatten_preserve_lists()
in visualizeConnectData/lambdas/modifyCTR/flatten_json.py
123 38 3
def createDataset()
in visualizeConnectData/scripts/quicksight/deploy.py
119 6 8
def createDashboard()
in visualizeConnectData/scripts/quicksight/deploy.py
71 4 6
def getTableProperties()
in visualizeConnectData/scripts/quicksight/deploy.py
69 23 4
def createCTR()
in visualizeConnectData/scripts/mockCTRs/create.py
67 7 5
def parse_date()
in visualizeConnectData/lambdas/modifyCTR/isodate/isodates.py
66 20 5
def getGeo()
in visualizeConnectData/lambdas/modifyCTR/lambda_function.py
60 2 1
def build_date_regexps()
in visualizeConnectData/lambdas/modifyCTR/isodate/isodates.py
55 16 2
def print_()
in visualizeConnectData/lambdas/modifyCTR/six.py
50 22 2
def getCurrentUserInfo()
in visualizeConnectData/scripts/quicksight/deploy.py
50 11 0
def parse_time()
in visualizeConnectData/lambdas/modifyCTR/isodate/isotime.py
49 10 1
def createDataSource()
in visualizeConnectData/scripts/quicksight/deploy.py
49 4 3
def _strfduration()
in visualizeConnectData/lambdas/modifyCTR/isodate/isostrf.py
44 19 3
def getAgent()
in visualizeConnectData/scripts/mockCTRs/create.py
44 1 0
def parse_duration()
in visualizeConnectData/lambdas/modifyCTR/isodate/isoduration.py
41 14 1
def addAgent()
in visualizeConnectData/scripts/mockCTRs/create.py
41 3 2
def setCustomerJourneyTS()
in visualizeConnectData/scripts/mockCTRs/create.py
39 4 4
def __rsub__()
in visualizeConnectData/lambdas/modifyCTR/isodate/duration.py
35 8 2
def __add__()
in visualizeConnectData/lambdas/modifyCTR/isodate/duration.py
34 10 2
def main()
in visualizeConnectData/scripts/mockCTRs/create.py
34 12 0