CS 3 (Spring 2025) Code Quality Guidelines

Formatting

formatting::brace-styles

// confusing, hard to follow
while (x < y) { 
if (x != 0) { binky(x); 
}
else { winky(y);
    y--; }}
return x;
// indentation follows structure
while (x < y) { 
    if (x != 0) { 
        binky(x);
    } else {
        winky(y); 
        y--;
    }
}
return x;

formatting::indendentation

formatting::line-length

formatting::one-liners

formatting::spacing

Variables

variables::casting-malloc

variables::declaration-location

variables:declaration-order

variables::description

variables::global-variables

variables::magic-constants

variables::snake-case

variables::type

Macros

macros::defines

macros::misuse

Functions and Decomposition

functions::code-duplication-multiple-functions

functions::code-duplication-single-function

functions::description

functions::error-handling

functions::expensive-function-calls

functions::library-improper-usage

functions::library-reimplementation

functions::over-modularization

functions::snake-case

Modules and Types

types::header-file

types::include-guards

types::snake-case

Commenting

commenting::description

Compilation/Functionality

compilation::errors

compilation::tests

compilation::warnings

Design

design::booleans

// confusing, hard to follow
int abs(int x) {
    if (negative(x) == true){
        return -x;
    }
    else {
        return x;
    }
}
// indentation follows structure
int abs(int x) {
    if (negative(x)) {
        return -x;
    }     
    else {
        return x;
    }
}

design::dead-code

design::debug-statements

design::encapsulation

design::extra-control-flow

design::includes

design::loop-choice

design::single-owner

Acknowledgements

Thanks to Stanford and CMU as sources for similar style guidlines.