1=Beginner, 2=Proficient, 3=Master
Rating | Content | Description |
---|---|---|
Variables | Variable names are logical, clear, and in snake case. Variables are not needlessly assigned or reassigned (variable examples). | |
Loops | Loops control the flow of the code, keeping the user on track, and continuing the program until an appropriate end point. | |
Strings | Strings are used and manipulated (compared, concatenated) correctly to prevent any errors in game scoring, game play, and drawing the board. | |
Conditionals & Operators | Logical and mathematical operators guide program flow efficiently and properly deal with edge cases (operator/conditional examples). | |
Methods | Methods are designed and implemented with a single purpose. Methods are logically named in snake case. | |
Classes | Classes are used to represent a single object, and contain all of the functionality and information associated with that object. |
# Good:
post_height = 7.0
user_name = gets.chomp
# Bad:
p = 7
ph = '7.0'
postHeight = 77
x = 2
# Good:
if x < 2
result = "x is less than 2"
elsif x > 2
result = "x is greater than 2"
else
result = "x is exactly 2"
end
puts result
# Bad:
if x < 2
result = "x is less than 2"
elsif x > 2
result = "x is greater than 2"
end
puts result
Rating | Skill | Description |
---|---|---|
Correctness | Code runs without errors or bugs. Edge cases are tested for and handled appropriately. | |
Readability | Formatting is consistent. Naming conventions are followed. Use of white space and tabs are consistent. Code is concise. Each group of statements creates a complete thought and those thoughts are separated by blank lines. Variable, method and class names are meaningful. | |
Structure | Methods perform one, and only one, function. Blocks of code that are run multiple times are not cut-and-pasted, but instead are written as loops and functions. Variables are not duplicated unnecessarily. | |
Efficiency | There is no unused code included. | |
Comments | Comments accurately describe code logic and are placed before or on the line they describe. Comments are either: information that can’t be expressed in code, intent comments, or summary comments. |
###OVERALL RATING
###COMMENTS