C++
References
- https://en.cppreference.com
- http://cslibrary.stanford.edu/101/
- https://www.learncpp.com/
- http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
- C++ Standard Library
- Standard Library headers
Resources on software testing
The test framework used in this project is the Google C++ test. It is recommended to know about testing now because it is an essential element in software development. I want to share with you the following resource for this purpose.
- Introduction to the concepts of Google C++ tests.
- Examples-based introductory article of using C++ tests.
- Explanation of the Google C++ test from work with a video tutorial.
Resources on coding practices
- For beginners to write code with high readability.
- More advanced advice from an experienced developer.
Resources for performance optimization
- Writing efficient C++ code with performance-improving features.
- Tips for C and C++ performance improvement code optimization.
- Efficient C++ performance programming techniques.
Books
Programming Principles and Practice using C++
Solutions of exercises from the book can be found here.
Clean Code: A Handbook of Agile Software Craftsmanship
Uncle Bob teach us in this book about the best practices for writing code that can be understood by our colleagues, and hence, is of high maintainability. There are many lessons we can learn from this book. Here is a summary of them.
CMake
Resources on CMake and Make
In the beginning, it is usually not very clear what those build systems or build system generators are and how they can be beneficial to us.
Overview of CMake and how it manages cross-platform build processes. Introduction to CMake by examples applies to single file projects and multiple directory projects. Please note that CMake isn’t a build system. It’s a build system generator. This is why we need to invoke make after running CMake. Running CMake generates Makefiles with the appropriate platform dependencies, and running make actually uses them.
However, we don’t need to write Make files, as CMake does this for us, it is good to understand build systems.
- Introduction to Make and how it uses the Makefile generated by CMake to build the system.
-
How to write Makefiles. Makefiles usually don’t have to be created or edited manually. It is already automated through CMake.
- Udemy Master CMake
- hello world introductions to cmake
Code Styling
The following resources are useful for code styling. It is recommended to adopt one or follow the one your company uses
- https://google.github.io/styleguide/cppguide.html
- https://web.cs.dal.ca/~jin/3132/assignments/style.html
If you want to ensure Google C++ style in your code, then the simplest way is to ensure install the cpplint extention in your vscode.