File Complexity Overall
  • There are 235 files with units, with 15,093 lines of code.
    • 0 very complex files (McCabe index sum 251+; 0 lines of code)
    • 0 complex files (McCabe index sum 126-250; 0 lines of code)
    • 3 medium complex files (McCabe index sum 51-125; 729 lines of code)
    • 11 slightly complex files (McCabe index sum 26-50; 1,893 lines of code)
    • 221 simple files (McCabe index sum 1-25; 12,471 lines of code)
  • 87 main files have no units (e.g. languages without unit analysis, or files without functions) and are not classified.
system0% | 0% | 4% | 12% | 82%
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
js0% | 0% | 8% | 10% | 80%
scala0% | 0% | 0% | 14% | 85%
File Complexity per Logical Decomposition
primary
251+
126-250
51-125
26-50
1-25
public0% | 0% | 8% | 11% | 79%
app0% | 0% | 0% | 14% | 85%
scripts0% | 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
TagName.react.js
in public/components/TagEdit/formComponents
177 14 61 34 18
rootReducer.js
in public/reducers
329 1 61 19 61
TargetingEdit.react.js
in public/components/SponsorshipEdit
223 18 53 24 7
TagRepository.scala
in app/repositories
167 24 47 28 7
Step.scala
in app/model/jobs
148 10 44 30 12
BatchTag.react.js
in public/components
186 19 43 23 5
TagManagementApi.scala
in app/controllers
350 32 40 11 3
PodcastMetadata.react.js
in public/components/TagEdit/formComponents/series
246 19 38 15 17
validateTag.js
in public/util
110 8 30 27 8
JobTable.react.js
in public/components/JobTable
147 11 29 20 8
Support.scala
in app/controllers
192 7 28 15 7
DynamoTable.scala
in app/services
131 12 27 21 7
capiClient.js
in public/util
83 9 26 31 7
Display.react.js
in public/components/Tag
133 13 26 20 6
Display.js
in public/components/Sponsorship
84 9 25 30 7
BatchFilters.react.js
in public/components/BatchTag
207 18 25 12 2
Migration.scala
in app/controllers
148 8 24 16 7
TagImageEdit.react.js
in public/components/TagEdit/formComponents
192 9 24 13 10
TagEdit.react.js
in public/components/TagEdit
142 13 24 17 10
SponsorshipLifecycleModule.scala
in app/modules/sponsorshiplifecycle
122 5 23 19 9
Create.js
in public/components/Sponsorship
74 9 23 31 7
NodeStatusRepository.scala
in app/modules/clustersync
118 8 22 19 5
Create.react.js
in public/components/Tag
99 11 22 22 5
CreateTagCommand.scala
in app/model/command
177 2 21 12 19
SponsorshipRepository.scala
in app/repositories
78 6 20 26 11
BatchTagControls.js
in public/components/BatchTagControls
165 12 20 12 4
SpreadsheetBuilder.react.js
in public/components/Spreadsheet
265 17 20 8 2
SponsorshipList.react.js
in public/components/SponsorshipList
86 7 20 23 9
SectionName.react.js
in public/components/SectionEdit
76 9 19 25 3
75 18 18 24 1
UpdateKeywordTypeForAllTags.scala
in app/model/jobs/steps
146 7 18 12 6
Job.scala
in app/model/jobs
91 7 18 20 5
ContentListItem.js
in public/components/ContentList
84 8 18 21 8
92 5 18 20 5
JobRepository.scala
in app/repositories
100 7 17 17 4
ContentAPI.scala
in app/repositories
115 8 17 15 6
74 15 17 23 3
MappingManager.react.js
in public/components
91 10 16 18 3
PublicationInfoEdit.react.js
in public/components/TagEdit/formComponents/publication
88 8 16 18 4
PaidContentInfoEdit.react.js
in public/components/TagEdit/formComponents/paidcontent
122 9 16 13 5
TagRelationship.react.js
in public/components/TagContext/TagRelationship
113 10 16 14 3
TagAudit.scala
in app/model
144 11 15 10 3
UpdateSponsorshipCommand.scala
in app/model/command
99 3 15 15 9
JobRunner.scala
in app/model/jobs
84 4 15 18 5
ReadOnlyApi.scala
in app/controllers
106 7 15 14 5
TagSearch.react.js
in public/components
135 8 15 11 4
Display.react.js
in public/components/Pillar
77 11 15 19 5
56 2 14 25 10
Tag.scala
in app/model
275 6 14 5 5
KinesisConsumer.scala
in app/services
91 9 14 15 3
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...