CSC/ECE 517 Spring 2019 - Project E1916. Fix Code Climate issues in controllers with names beginning with A through N: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 3: Line 3:
===Description of the project===
===Description of the project===
====Project Team Member====
====Project Team Member====
*swang28    Shuai Wang
*Shuai Wang (swang28)
*hchang15  Huan Chang
*Huan Chang (hchang15)
*gyu22   Guangyu Yu
*Guangyu Yu (gyu22)
 
====Project Task====
====Project Task====
There is some code smells detected by the code climate. These violate many of the ruby/rails best practices and needs to be rectified.  
There is some code smells detected by the code climate. These violate many of the ruby/rails best practices and needs to be rectified.  

Revision as of 03:46, 25 March 2019

Description of the project

Project Team Member

  • Shuai Wang (swang28)
  • Huan Chang (hchang15)
  • Guangyu Yu (gyu22)

Project Task

There is some code smells detected by the code climate. These violate many of the ruby/rails best practices and needs to be rectified.

Our team is to fix all code smells except:

  • Assignment Branch Condition size for [method name] is too high
  • Perceived complexity for [method name] is too high.
  • Cyclomatic complexity for [method name] is too high.
  • Method [method name] has a Cognitive Complexity of XX (exceeds 5 allowed). Consider refactoring.
  • File [file name] has XXX lines of code (exceeds 250 allowed). Consider refactoring.
  • Class [class name] has XX methods (exceeds 20 allowed). Consider refactoring.
  • Method [method name] has XX lines of code (exceeds 25 allowed). Consider refactoring.
  • Mass assignment is not restricted using attr_accessible.
  • Potentially dangerous attribute available for mass assignment.

Files modified in the project

In all files in app/controllers/ with names beginning with A through N, except assignment_controller.rb.

Main issue files:

  • app/controllers/assessment360_controller.rb. MAINTAINABILITY C
  • app/controllers/automated_metareviews_controller.rb MAINTAINABILITY B
  • app/controllers/grades_controller.rb MAINTAINABILITY B
  • app/controllers/impersonate_controller.rb MAINTAINABILITY C
  • app/controllers/import_file_controller.rb MAINTAINABILITY f
  • app/controllers/lottery_controller.rb MAINTAINABILITY C

Typical Issues and Improvements

Issue: Use a guard clause instead of wrapping the code inside a conditional expression.

Example
    if assignment.try(:is_selfreview_enabled) and unsubmitted_self_review?(participant.try(:id))
      return false
    else
      return true
    end
Solution
    return false if assignment.try(:is_selfreview_enabled) and unsubmitted_self_review?(participant.try(:id))
    true