Decrease ABC threshold step by step (from 60 to 35)
Description
Complex (according to ABC metric) methods are hard to read, especially for early contributors.
Current threshold ABC size in rubocop is about 60
Rubocop default level is 15 => 575 offenses
Some statistics on different benchmarks:
- ABC size
35=> 45 offences - ABC size
40=> 22 offences - ABC size
50=> 5 offences - ABC size
55=> 3 offences (2 in CE, 1 in EE)
Proposal
I think that level 35 is achievable in the nearest future. So I prepared checklist for first steps.
Decrease it step by step (values in TODO were checked on 17 Oct 2017):
- Step to 57.08 - !10724 (merged)
- refactor
lib/backup/manager.rb:109:5ABC = 58.63
- refactor
- Step to 56.96 - !11227 (merged)
- refactor
app/controllers/admin/projects_controller.rb:5:3ABC = 57.08
- refactor
- Step to 55.25 - !13904 (merged)
- refactor
lib/github/import.rb:223:5ABC = 56.96
- refactor
-
Step to 55.24 - !13969 (closed)- obsolete- refactor
lib/github/import.rb:167:5ABC = 55.25 - refactor
app/controllers/autocomplete_controller.rb:6:3ABC = 55.25 - EE (51.21 in CE) - will be reduced after !13778 (merged)
- refactor
- Step to 54.28 - !14920 (merged)
- refactor
lib/backup/manager.rb:103:5ABC = 54.63
- refactor
- Step to 50
- refactor
app/services/projects/create_service.rb:7:5ABC = 54.28 - refactor
lib/github/import.rb:141:5ABC = 54.17 - refactor
app/services/merge_requests/squash_service.rb:15:5ABC = 53.3 - EE - refactor
app/services/merge_requests/update_service.rb:24:5ABC = 51.58 - EE (50.61 in CE) - refactor
app/controllers/projects/blob_controller.rb:197:3ABC = 50.13 - refactor
lib/gitlab/google_code_import/importer.rb:81:7ABC = 50.01
- refactor
- Step to 45
- check files in EE
- check files in CE
- Step to 40
- check files in EE
- check files in CE
Links / references
/cc @rymai
Edited by Rémy Coutable