Coding Standards for Labs

Coding standards for C++ (or any language) can vary based on the organization, project, or developer preferences. However, there are common practices that are widely accepted in the C++ community to ensure that code is readable, maintainable, and consistent.

Why have coding Standards?

Software groups should have coding standards to ensure consistency, readability, security, and efficiency in software development. Coding standards set rules and guidelines that enhance code quality, making it easier for developers to understand, maintain, and collaborate on code. By following coding standards, teams can create high-quality, bug-free code that is secure and reliable code for users.

Coding standards are not just about following rules; they significantly impact the quality and efficiency of software development. They help reduce errors, improve code reusability, and facilitate collaboration among team members. Moreover, they ensure compatibility across different platforms and play a crucial role in preventing security vulnerabilities and data breaches. By implementing coding standards, you can create high-quality, bug-free code that is secure, and reliable code for users.

Here's a list of acceptable C++ coding standards to consider:

1. Naming Conventions:

  • Classes/Structures: Use PascalCase (capitalizing the first letter of each word).

    • Example: CarFactory, AudioProcessor

  • Variables and Member Variables: Use camelCase (first word lowercase, then capitalize subsequent words). Variable names are usually Noun based.

    • Example: audioBuffer, carSpeed

  • Constants: Use all upper case with underscores.

    • Example: MAX_SPEED, TOTAL_COUNT

  • Functions/Methods: Use camelCase.

    • Example: calculateSpeed(), setVolume()

2. Whitespace and Indentation:

  • Use spaces/tabs for indentation.

  • Typically, use a tab for each indentation level.

  • Always match { } at the same indentation level.

3. Comments:

  • Use // for single-line comments.

  • Use /* */ for multi-line comments, but // is often preferred for multi-line comments too.

  • Comment effectively. Rather than stating the obvious, explain the why, not the what.

4. Functions:

  • Keep functions short and to the point. If a function does more than one thing, consider breaking it up.

  • Name functions to clearly identify the purpose. As a note, functions are usually Verb based name.

5. Classes:

  • Use an initial capital letter for class names.

  • Keep class member variables private or protected. Avoid public member variables.

6. File Structure:

  • Separate class declarations (headers) and implementations (source files).

  • Name the file after the primary class or functionality it contains.

  • Use header guards or #pragma once to prevent double inclusion for header files (Classes).

7. Error Handling:

  • Prefer exceptions for error handling over return codes.

  • Use try/catch blocks judiciously and avoid using exceptions for normal program flow.

8. Avoid Global Variables:

  • Limit the scope of variables and avoid global variables. Only use Global variables if it is needed.

9. Other Practices:

  • Be consistent. Whatever standards you choose, apply them consistently across the project.

  • Avoid magic numbers. Use named constants or enumerations.

  • Initialize variables.

Note: The above standards are suggestions and can vary. It's essential to consider the specific needs and context of your project or professors request when defining coding standards.

COSC-1336 / ITSE-1302 Computer Science - Author: Dr. Kevin Roark