Track
C++
Review RAII, smart pointers, move semantics, const references, rule of zero, exception boundaries, templates, algorithms, locks, and tests.
- 01
RAII resource ownership
Use RAII objects so files, locks, and other resources release through scope instead of manual cleanup paths.
raiiresourcesownership - 02
Smart pointer ownership
Return smart pointers when heap ownership crosses a boundary, and keep raw pointers for non-owning access.
unique_ptrownershipmemory - 03
Move semantics and lifetimes
Move owned values into long-lived objects instead of storing references that can outlive the caller.
movelifetimesreferences - 04
Const references and string_view
Use const references or string_view for read-only inputs so call sites avoid copies and mutation stays visible.
conststring_viewparameters - 05
Rule of zero
Prefer standard-library members so copy, move, and destruction follow generated behavior instead of manual pointer code.
rule-of-zerocopydestructors - 06
Exception boundaries
Catch exceptions at boundaries where code can translate them into a result the caller understands.
exceptionsboundarieserrors - 07
Template constraints
Use concepts or focused type requirements so template errors point to the contract the caller missed.
templatesconceptstypes - 08
Algorithm and iterator intent
Use standard algorithms when their names describe the pass over a range more directly than manual counters.
algorithmsiteratorsranges - 09
Scoped locks for shared state
Use scoped lock objects so mutex ownership follows block lifetime and early returns cannot leave shared state locked.
concurrencymutexlocks - 10
Unit tests for edge cases
Write C++ tests that assert edge cases directly instead of printing values for reviewers to inspect.
testsassertionsedge-cases
Related tracks
Keep learning inside the same language family.
C
10Review pointers, buffer bounds, allocation ownership, const contracts, structs, error codes, file cleanup, integer limits, compiler flags, and tests.
C#
10Review nullable references, records, async cancellation, dependency injection, disposal, exceptions, LINQ, pattern matching, options, and tests.
Rust
10Review ownership, borrowing, lifetimes, Result and Option boundaries, traits, async safety, Cargo features, and tests.