Skip to content
Quality C++
Search
Ctrl
K
Cancel
Select theme
Dark
Light
Auto
Quality C++
What is Quality C++?
Contact
Made Possible By
Guidelines
Avoid creation of objects that are not in a usable state
Avoid just-in-case programming
Avoid storing std::span as class members
Be familiar with the C++ Core Guidelines
Design code toward library quality
Do not confuse abstraction with obfuscation
Do not confuse simple with unfamiliar
Do not return const values
Extract conditions into descriptive functions
Improve testability by extracting hard to test code
Make code read like pseudocode
Make intentional design decisions
Prefer callables over inheritance for simple behavioral patterns
Prefer looser coupling over tighter coupling
Prefer returning by value over returning by const reference for value objects
Prefer std::optional over std::unique_ptr for optional values
Prefer value semantics over reference semantics
Strict by default, relax when justified
Take warnings seriously
Understand const semantics with std::span
Understand function parameter semantics
Use `auto` for type inference
Use const correctness to improve code safety and clarity
Use Named Predicates to improve readability when using algorithms
Use shorthand variables to Improve Readability
Use small and isolated experiments to resolve uncertainties
Use Static Analysis to guard correctness and consistency
Use Type Aliases to improve readability
Write code that reads like the problem that it solves
Write Reasonable Code
Code Walkthroughs
Refactoring Raw For-Loop C++ to Modern Standards
Insights
Abstraction is fundamental to scalability
analogies
Analogies
The Barbershop: Cleaning as Part of the Craft
The Kitchen Analogy
Programmers are users too
Refocusing The Code Review
Software Quality
Language Concepts
Forwarding References
Object Initialization
Reference Semantics
std::span
unique_ptr
Value Semantics
Design Patterns
Command Pattern
Command vs Strategy
Strategy Pattern
Visitor Pattern
References
books
C++ Software Design
Clean Code
Design Patterns: Elements of Reusable Object-Oriented Software
Domain Specific Languages
Effective Modern C++
Modern Software Engineering
Test Driven Development: By Example
people
Dave Farley
Erich Gamma
Jimmy Hoffa
Kent Beck
Klaus Iglberger
Lukas Atkinson
Scott Meyers
Sean Parent
quotes
Coupling is one of the most important ideas
Dependency is the key problem in software development at all scales
Knowledge is of two kinds
Local Reasoning Sean Parent
No work is less than some work
Reasonable Code is what you get when
Software design is the art of managing inter-dependencies between software components.
The goal of software architecture Uncle Bob
Without feedback there is no opportunity to learn
Write code as if it were going to be part of a library
Select theme
Dark
Light
Auto
Tag: development-workflow
1 article found
Guidelines
Use small and isolated experiments to resolve uncertainties
development-workflow
experimentation