awslabs / performance-dashboard-on-aws
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 701 units with 16,311 lines of code in units (48.4% of code).
    • 26 very long units (5,368 lines of code)
    • 43 long units (2,885 lines of code)
    • 134 medium size units (4,174 lines of code)
    • 140 small units (2,116 lines of code)
    • 358 very small units (1,768 lines of code)
32% | 17% | 25% | 12% | 10%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
tsx55% | 17% | 13% | 3% | 10%
ts6% | 18% | 40% | 24% | 11%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
frontend/src/containers57% | 15% | 12% | 3% | 10%
frontend/src/components57% | 22% | 13% | 3% | 3%
frontend/src/services18% | 0% | 30% | 30% | 20%
frontend/src/layouts46% | 0% | 26% | 3% | 23%
backend/src/lib2% | 16% | 40% | 26% | 13%
cdk/lib/constructs18% | 42% | 25% | 13% | 0%
cdk/lib0% | 60% | 30% | 9% | 0%
frontend/src/hooks0% | 7% | 68% | 22% | 1%
frontend/src0% | 0% | 29% | 5% | 64%
cdk/lib/envconfig0% | 0% | 100% | 0% | 0%
backend/src/lambda0% | 0% | 0% | 100% | 0%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
function Table()
in frontend/src/components/Table.tsx
601 72 1
function VisualizeChart()
in frontend/src/components/VisualizeChart.tsx
421 40 1
function AddChart()
in frontend/src/containers/AddChart.tsx
420 48 0
function AddTable()
in frontend/src/containers/AddTable.tsx
353 31 0
function EditImage()
in frontend/src/containers/EditImage.tsx
264 17 0
function moveWidget()
in frontend/src/services/OrderingService.ts
255 58 3
function AddImage()
in frontend/src/containers/AddImage.tsx
245 12 0
function VisualizeTable()
in frontend/src/components/VisualizeTable.tsx
227 14 1
function MetricsList()
in frontend/src/components/MetricsList.tsx
225 21 1
function AddSection()
in frontend/src/containers/AddSection.tsx
203 6 0
function UserListing()
in frontend/src/containers/UserListing.tsx
181 7 0
function EditText()
in frontend/src/containers/EditText.tsx
155 9 0
function SectionWidget()
in frontend/src/components/SectionWidget.tsx
154 30 1
function AddText()
in frontend/src/containers/AddText.tsx
153 7 0
function AdminHome()
in frontend/src/containers/AdminHome.tsx
147 8 0
function ChartWidgetComponent()
in frontend/src/components/ChartWidget.tsx
146 28 1
label: t()
in frontend/src/containers/EditChart.tsx
138 11 1
function TopicareaListing()
in frontend/src/containers/TopicareaListing.tsx
134 10 1
label: t()
in frontend/src/containers/EditTable.tsx
131 10 1
function EditFavicon()
in frontend/src/containers/EditFavicon.tsx
131 10 0