angular / material
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,053 units with 20,160 lines of code in units (50.4% of code).
    • 4 very long units (445 lines of code)
    • 18 long units (1,277 lines of code)
    • 186 medium size units (5,362 lines of code)
    • 403 small units (5,642 lines of code)
    • 1,442 very small units (7,434 lines of code)
2% | 6% | 26% | 27% | 36%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
js2% | 6% | 26% | 27% | 36%
inc0% | 0% | 0% | 0% | 100%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
src/components/select11% | 7% | 24% | 29% | 26%
src/components/menu17% | 21% | 15% | 18% | 27%
src/core/services4% | 6% | 21% | 29% | 38%
src/components/progressCircular46% | 0% | 0% | 32% | 20%
src/components/datepicker0% | 15% | 28% | 26% | 29%
src/components/autocomplete0% | 12% | 21% | 23% | 42%
src/components/tabs0% | 10% | 24% | 28% | 35%
src/components/gridList0% | 18% | 27% | 12% | 41%
src/components/virtualRepeat0% | 12% | 35% | 15% | 36%
src/components/panel0% | 4% | 41% | 26% | 27%
src/components/chips0% | 6% | 30% | 23% | 39%
gulp/tasks0% | 17% | 29% | 37% | 14%
src/core/util0% | 0% | 14% | 32% | 53%
scripts0% | 0% | 51% | 33% | 15%
src/components/menuBar0% | 0% | 36% | 25% | 37%
ROOT0% | 0% | 36% | 19% | 44%
src/components/navBar0% | 0% | 32% | 32% | 35%
gulp0% | 0% | 54% | 31% | 13%
config0% | 0% | 77% | 22% | 0%
src/components/tooltip0% | 0% | 41% | 30% | 27%
src/components/slider0% | 0% | 31% | 21% | 46%
src/components/dialog0% | 0% | 19% | 39% | 40%
src/components/fabSpeedDial0% | 0% | 25% | 28% | 45%
src/components/input0% | 0% | 16% | 26% | 57%
src/components/sticky0% | 0% | 46% | 38% | 15%
src/components/toast0% | 0% | 22% | 47% | 29%
src/components/icon0% | 0% | 21% | 32% | 45%
src/components/radioButton0% | 0% | 27% | 26% | 46%
src/components/sidenav0% | 0% | 21% | 32% | 46%
src/components/progressLinear0% | 0% | 28% | 37% | 34%
src/components/bottomSheet0% | 0% | 24% | 21% | 53%
src/components/list0% | 0% | 12% | 40% | 46%
src/components/button0% | 0% | 49% | 0% | 50%
src/components/backdrop0% | 0% | 75% | 0% | 24%
src/components/colors0% | 0% | 11% | 37% | 50%
src/components/showHide0% | 0% | 72% | 0% | 27%
src/components/checkbox0% | 0% | 0% | 37% | 62%
src/components/toolbar0% | 0% | 0% | 82% | 17%
src/components/fabToolbar0% | 0% | 0% | 85% | 14%
src/components/subheader0% | 0% | 0% | 45% | 54%
src/components/fabActions0% | 0% | 0% | 53% | 46%
src/components/whiteframe0% | 0% | 0% | 43% | 56%
src/components/content0% | 0% | 0% | 42% | 57%
src/components/switch0% | 0% | 0% | 50% | 50%
src/components/swipe0% | 0% | 0% | 0% | 100%
src/core0% | 0% | 0% | 0% | 100%
src/components/truncate0% | 0% | 0% | 0% | 100%
src/components/card0% | 0% | 0% | 0% | 100%
src/components/divider0% | 0% | 0% | 0% | 100%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
function calculateMenuPositions()
in src/components/select/select.js
122 24 3
function MenuController()
in src/components/menu/js/menuController.js
113 20 9
function performCheck()
in src/core/services/aria/aria.js
106 95 1
function MdProgressCircularLink()
in src/components/progressCircular/js/progressCircularDirective.js
104 16 3
template: function()
in src/components/tabs/js/tabsDirective.js
99 1 2
function parseRules()
in src/core/services/theming/theming.js
95 36 3
row: parseInt()
in src/components/gridList/grid-list.js
94 15 2
function compile()
in src/components/select/select.js
87 5 2
VirtualRepeatController.prototype.virtualRepeatUpdate_ = function()
in src/components/virtualRepeat/virtual-repeater.js
84 21 2
top: parseFloat()
in src/components/menu/js/menuServiceProvider.js
79 21 1
CalendarMonthBodyCtrl.prototype.buildCalendarForMonth = function()
in src/components/datepicker/js/calendarMonthBody.js
71 14 1
AnimationCtrl.prototype.showDialog = function()
in src/components/panel/demoPanelAnimations/script.js
69 13 0
function compile()
in src/components/chips/js/chipsDirective.js
67 17 2
function DatePickerCtrl()
in src/components/datepicker/js/datepickerDirective.js
66 10 12
exports.task = function()
in gulp/tasks/build-scss.js
64 2 0
left: parseFloat()
in src/components/menu/js/menuServiceProvider.js
62 20 1
function getInputElement()
in src/components/autocomplete/js/autocompleteDirective.js
60 2 0
DatePickerCtrl.prototype.attachCalendarPane = function()
in src/components/datepicker/js/datepickerDirective.js
60 14 0
function loadAll()
in src/components/autocomplete/demoRepeatMode/script.js
56 1 0
function MdAutocompleteCtrl()
in src/components/autocomplete/js/autocompleteController.js
56 6 12