File Complexity Overall
  • There are 100 files with units, with 8,416 lines of code.
    • 0 very complex files (McCabe index sum 251+; 0 lines of code)
    • 1 complex files (McCabe index sum 126-250; 746 lines of code)
    • 2 medium complex files (McCabe index sum 51-125; 990 lines of code)
    • 8 slightly complex files (McCabe index sum 26-50; 1,379 lines of code)
    • 89 simple files (McCabe index sum 1-25; 5,301 lines of code)
  • 68 main files have no units (e.g. languages without unit analysis, or files without functions) and are not classified.
system0% | 8% | 11% | 16% | 62%
Legend:
251+
126-250
51-125
26-50
1-25


explore: grouped by folders | grouped by complexity
File Complexity per Extension
251+
126-250
51-125
26-50
1-25
go0% | 8% | 11% | 16% | 62%
File Complexity per Logical Decomposition
primary
251+
126-250
51-125
26-50
1-25
webapp0% | 15% | 8% | 13% | 62%
common0% | 0% | 24% | 14% | 61%
wrapper0% | 0% | 0% | 32% | 67%
reaper0% | 0% | 0% | 100% | 0%
helper_app0% | 0% | 0% | 0% | 100%
Most Complex Files (Top 50)

The McCabe index of a file grows with its size: per 100 lines tells a large but plain file from a dense one, and most complex unit whether the complexity sits in one unit or is spread over many.

File# lines# unitsMcCabe index
(sum)
per 100
lines
most complex
unit
bulklist.go
in webapp/bulkprocessor
746 49 142 19 13
jobcontainer.go
in common/models
576 25 110 19 16
jobrunner.go
in webapp/jobrunner
414 8 72 17 36
main.go
in wrapper
225 4 45 20 29
testhelpers.go
in webapp/bulkprocessor
172 39 44 26 3
utils.go
in webapp/jobrunner
166 9 37 22 12
jobqueue.go
in common/models
180 12 36 20 6
main.go
in reaper
178 6 34 19 10
bulkitem.go
in webapp/bulkprocessor
164 14 27 16 7
bulk.go
in webapp/jobrunner
139 2 26 19 17
fileentry.go
in common/models
155 7 26 17 7
jobstepthumbnail.go
in common/models
112 12 24 21 6
108 7 24 22 8
cleanup.go
in webapp/jobrunner
123 5 21 17 6
jobsteptranscode.go
in common/models
97 12 21 22 6
transcodesettings.go
in common/models
146 15 21 14 6
copier.go
in helper_app/rebuild_directory_tree
100 5 20 20 7
JobTemplate.go
in common/models
183 5 20 11 9
k8clientwrapper.go
in common/helpers
114 12 20 18 3
removenontranscodablehandler.go
in webapp/bulkprocessor
85 2 19 22 13
transcode.go
in wrapper
107 3 18 17 8
uploader.go
in webapp/bulkprocessor
94 3 18 19 9
jobstepanalysis.go
in common/models
87 12 18 21 5
receivedata.go
in webapp/thumbnail
118 1 17 14 17
contentshandler.go
in webapp/bulkprocessor
71 1 17 24 17
failpendinghandler.go
in webapp/jobrunner
91 2 17 19 11
receiveanalysisdata.go
in webapp/analysis
132 1 16 12 16
deletehandler.go
in webapp/bulkprocessor
83 2 15 18 8
receivedata.go
in webapp/transcode
114 1 15 13 15
jobstepcustom.go
in common/models
67 12 15 22 3
copy_request_builder.go
in helper_app/rebuild_directory_tree
87 3 13 15 6
main.go
in helper_app/rebuild_directory_tree
68 2 13 19 9
enqueuehandler.go
in webapp/jobrunner
86 1 13 15 13
listjobhandler.go
in webapp/jobs
103 1 13 13 13
main.go
in webapp
129 3 13 10 7
converters.go
in common/models
58 4 13 22 4
helpers.go
in common/helpers
74 6 13 18 3
thumbnail.go
in wrapper
80 3 12 15 8
removedotfileshandler.go
in webapp/bulkprocessor
64 2 12 19 7
manualcleanuphandler.go
in webapp/jobrunner
83 1 12 14 12
jobrunnerrequestDAO.go
in webapp/jobrunner
63 4 12 19 5
transcodeprogress.go
in common/models
75 3 11 15 5
scan_all_jobs.go
in helper_app/rebuild_directory_tree
66 2 10 15 6
runner.go
in wrapper
64 3 10 16 4
60 3 10 17 4
71 2 10 14 7
launcher.go
in webapp/jobrunner
54 2 10 19 8
uploadendpoint.go
in webapp/initiator
79 1 10 13 10
56 7 10 18 3
transmitter.go
in wrapper
44 1 9 20 9
About This Analysis
  • File complexity is the sum of the McCabe indexes (conditional complexity) of the units (methods, functions...) in a file.
  • Files are classified in five categories based on that sum: 1-25 (simple files), 26-50 (slightly complex files), 51-125 (medium complex files), 126-250 (complex files), 251+ (very complex files). The default bands are five times the unit complexity bands, as a file is a group of units.
  • Only main code files with units are classified. Files without units (languages without unit analysis, or files without functions) have no complexity to measure and are left out rather than counted as simple.
  • A very complex file holds many decisions, which often means it has too many responsibilities: a candidate to split, and a place where changes need more testing.
Learn more...