golang / dl
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 194 units with 1,065 lines of code in units (71.5% of code).
    • 0 very long units (0 lines of code)
    • 3 long units (211 lines of code)
    • 5 medium size units (166 lines of code)
    • 7 small units (106 lines of code)
    • 179 very small units (582 lines of code)
0% | 19% | 15% | 9% | 54%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
go0% | 19% | 15% | 9% | 54%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
internal0% | 37% | 29% | 18% | 14%
go1.11rc10% | 0% | 0% | 0% | 100%
go1.15.50% | 0% | 0% | 0% | 100%
go1.10.80% | 0% | 0% | 0% | 100%
go1.15.40% | 0% | 0% | 0% | 100%
go1.17.10% | 0% | 0% | 0% | 100%
go1.13.140% | 0% | 0% | 0% | 100%
go1.14.50% | 0% | 0% | 0% | 100%
go1.15.30% | 0% | 0% | 0% | 100%
go1.16.20% | 0% | 0% | 0% | 100%
go1.8rc20% | 0% | 0% | 0% | 100%
go1.10.10% | 0% | 0% | 0% | 100%
go1.13.130% | 0% | 0% | 0% | 100%
go1.8.20% | 0% | 0% | 0% | 100%
go1.15.130% | 0% | 0% | 0% | 100%
go1.10rc20% | 0% | 0% | 0% | 100%
go1.12.80% | 0% | 0% | 0% | 100%
go1.12.110% | 0% | 0% | 0% | 100%
go1.10.70% | 0% | 0% | 0% | 100%
go1.17beta10% | 0% | 0% | 0% | 100%
go1.18beta10% | 0% | 0% | 0% | 100%
go1.14.80% | 0% | 0% | 0% | 100%
go1.12beta10% | 0% | 0% | 0% | 100%
go1.12.60% | 0% | 0% | 0% | 100%
go1.17.60% | 0% | 0% | 0% | 100%
go1.9beta10% | 0% | 0% | 0% | 100%
go1.15.150% | 0% | 0% | 0% | 100%
go1.11.110% | 0% | 0% | 0% | 100%
go1.14.150% | 0% | 0% | 0% | 100%
go1.8.50% | 0% | 0% | 0% | 100%
go1.16.30% | 0% | 0% | 0% | 100%
go1.11.80% | 0% | 0% | 0% | 100%
go1.16.70% | 0% | 0% | 0% | 100%
go1.14.130% | 0% | 0% | 0% | 100%
go1.11rc20% | 0% | 0% | 0% | 100%
go1.11.20% | 0% | 0% | 0% | 100%
go1.10.30% | 0% | 0% | 0% | 100%
go1.17.30% | 0% | 0% | 0% | 100%
go1.15.20% | 0% | 0% | 0% | 100%
go1.10.20% | 0% | 0% | 0% | 100%
go1.5.40% | 0% | 0% | 0% | 100%
go1.8.60% | 0% | 0% | 0% | 100%
go1.100% | 0% | 0% | 0% | 100%
go1.150% | 0% | 0% | 0% | 100%
go1.9.50% | 0% | 0% | 0% | 100%
go1.15rc10% | 0% | 0% | 0% | 100%
go1.13.30% | 0% | 0% | 0% | 100%
go1.16.120% | 0% | 0% | 0% | 100%
go1.9.60% | 0% | 0% | 0% | 100%
go1.11.30% | 0% | 0% | 0% | 100%
go1.8beta20% | 0% | 0% | 0% | 100%
go1.8.10% | 0% | 0% | 0% | 100%
go1.13.150% | 0% | 0% | 0% | 100%
go1.14rc10% | 0% | 0% | 0% | 100%
go1.18beta20% | 0% | 0% | 0% | 100%
go1.13.60% | 0% | 0% | 0% | 100%
go1.11.120% | 0% | 0% | 0% | 100%
go1.15.10% | 0% | 0% | 0% | 100%
gotip0% | 0% | 0% | 0% | 100%
go1.8.30% | 0% | 0% | 0% | 100%
go1.14.60% | 0% | 0% | 0% | 100%
go1.9beta20% | 0% | 0% | 0% | 100%
go1.9rc20% | 0% | 0% | 0% | 100%
go1.17rc10% | 0% | 0% | 0% | 100%
go1.13.70% | 0% | 0% | 0% | 100%
go1.9.30% | 0% | 0% | 0% | 100%
go1.12.50% | 0% | 0% | 0% | 100%
go1.12beta20% | 0% | 0% | 0% | 100%
go1.12.130% | 0% | 0% | 0% | 100%
go1.9rc10% | 0% | 0% | 0% | 100%
go1.140% | 0% | 0% | 0% | 100%
go1.13.50% | 0% | 0% | 0% | 100%
go1.17.50% | 0% | 0% | 0% | 100%
go1.11.90% | 0% | 0% | 0% | 100%
go1.14.120% | 0% | 0% | 0% | 100%
go1.12.120% | 0% | 0% | 0% | 100%
go1.13.80% | 0% | 0% | 0% | 100%
go1.11beta20% | 0% | 0% | 0% | 100%
go1.16.100% | 0% | 0% | 0% | 100%
go1.9.40% | 0% | 0% | 0% | 100%
go1.6.40% | 0% | 0% | 0% | 100%
go1.80% | 0% | 0% | 0% | 100%
go1.14.100% | 0% | 0% | 0% | 100%
go1.13.90% | 0% | 0% | 0% | 100%
go1.12.90% | 0% | 0% | 0% | 100%
go1.9.70% | 0% | 0% | 0% | 100%
go1.15.90% | 0% | 0% | 0% | 100%
go1.16.90% | 0% | 0% | 0% | 100%
go1.12.170% | 0% | 0% | 0% | 100%
go1.12.30% | 0% | 0% | 0% | 100%
go1.10.40% | 0% | 0% | 0% | 100%
go1.16.10% | 0% | 0% | 0% | 100%
go1.16.130% | 0% | 0% | 0% | 100%
go1.10.50% | 0% | 0% | 0% | 100%
go1.13.120% | 0% | 0% | 0% | 100%
go1.16rc10% | 0% | 0% | 0% | 100%
go1.11.130% | 0% | 0% | 0% | 100%
go1.8rc30% | 0% | 0% | 0% | 100%
go1.15.100% | 0% | 0% | 0% | 100%
go1.13.10% | 0% | 0% | 0% | 100%
go1.15.70% | 0% | 0% | 0% | 100%
go1.14.140% | 0% | 0% | 0% | 100%
go1.160% | 0% | 0% | 0% | 100%
go1.11.100% | 0% | 0% | 0% | 100%
go1.10beta10% | 0% | 0% | 0% | 100%
go1.13.100% | 0% | 0% | 0% | 100%
go1.11.60% | 0% | 0% | 0% | 100%
go1.120% | 0% | 0% | 0% | 100%
go1.12rc10% | 0% | 0% | 0% | 100%
go1.11beta10% | 0% | 0% | 0% | 100%
go1.14.90% | 0% | 0% | 0% | 100%
go1.12.20% | 0% | 0% | 0% | 100%
go1.15.80% | 0% | 0% | 0% | 100%
go1.13.40% | 0% | 0% | 0% | 100%
go1.8.40% | 0% | 0% | 0% | 100%
go1.7.60% | 0% | 0% | 0% | 100%
go1.12.140% | 0% | 0% | 0% | 100%
go1.13rc20% | 0% | 0% | 0% | 100%
go1.8beta10% | 0% | 0% | 0% | 100%
go1.9.10% | 0% | 0% | 0% | 100%
go1.16.50% | 0% | 0% | 0% | 100%
go1.15beta10% | 0% | 0% | 0% | 100%
go1.8rc10% | 0% | 0% | 0% | 100%
go1.12.10% | 0% | 0% | 0% | 100%
go1.17.40% | 0% | 0% | 0% | 100%
go1.9.20% | 0% | 0% | 0% | 100%
go1.10rc10% | 0% | 0% | 0% | 100%
go1.12.70% | 0% | 0% | 0% | 100%
go1.14.70% | 0% | 0% | 0% | 100%
go1.130% | 0% | 0% | 0% | 100%
go1.11.40% | 0% | 0% | 0% | 100%
go1.10beta20% | 0% | 0% | 0% | 100%
go1.12.40% | 0% | 0% | 0% | 100%
go1.13.110% | 0% | 0% | 0% | 100%
go1.10.60% | 0% | 0% | 0% | 100%
go1.11.10% | 0% | 0% | 0% | 100%
go1.16.110% | 0% | 0% | 0% | 100%
go1.15.120% | 0% | 0% | 0% | 100%
go1.110% | 0% | 0% | 0% | 100%
go1.12.160% | 0% | 0% | 0% | 100%
go1.16.40% | 0% | 0% | 0% | 100%
go1.14.20% | 0% | 0% | 0% | 100%
go1.90% | 0% | 0% | 0% | 100%
go1.17rc20% | 0% | 0% | 0% | 100%
go1.16.80% | 0% | 0% | 0% | 100%
go1.14.110% | 0% | 0% | 0% | 100%
go1.14.10% | 0% | 0% | 0% | 100%
go1.15.110% | 0% | 0% | 0% | 100%
go1.15rc20% | 0% | 0% | 0% | 100%
go1.12.150% | 0% | 0% | 0% | 100%
go1.14beta10% | 0% | 0% | 0% | 100%
go1.15.140% | 0% | 0% | 0% | 100%
go1.16.60% | 0% | 0% | 0% | 100%
go1.11beta30% | 0% | 0% | 0% | 100%
go1.13rc10% | 0% | 0% | 0% | 100%
go1.13.20% | 0% | 0% | 0% | 100%
go1.8.70% | 0% | 0% | 0% | 100%
go1.12.100% | 0% | 0% | 0% | 100%
go1.15.60% | 0% | 0% | 0% | 100%
go1.16beta10% | 0% | 0% | 0% | 100%
go1.14.30% | 0% | 0% | 0% | 100%
go1.14.40% | 0% | 0% | 0% | 100%
go1.170% | 0% | 0% | 0% | 100%
go1.13beta10% | 0% | 0% | 0% | 100%
go1.17.20% | 0% | 0% | 0% | 100%
go1.11.50% | 0% | 0% | 0% | 100%
go1.11.70% | 0% | 0% | 0% | 100%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
func installTip()
in internal/version/gotip.go
92 21 2
func unpackTarGz()
in internal/version/version.go
66 19 2
func install()
in internal/version/version.go
53 17 2
func main()
in internal/genv/main.go
41 9 0
func unpackZip()
in internal/version/version.go
38 10 2
func copyFromURL()
in internal/version/version.go
37 8 2
func RunTip()
in internal/version/gotip.go
28 9 0
func golangOrgDlRoot()
in internal/genv/main.go
22 5 0
func homedir()
in internal/version/version.go
19 7 0
func Run()
in internal/version/version.go
17 6 1
func runGo()
in internal/version/version.go
17 3 1
func verifySHA256()
in internal/version/version.go
15 4 2
func slurpURLToString()
in internal/version/version.go
15 4 1
func versionArchiveURL()
in internal/version/version.go
12 4 1
func versionNoPatch()
in internal/genv/main.go
11 3 1
func makeScript()
in internal/version/gotip.go
10 3 0
func unpackArchive()
in internal/version/version.go
10 3 2
func()
in internal/version/version.go
9 2 1
func()
in internal/version/version.go
9 2 1
func ndigits()
in internal/version/version.go
7 2 1