This is a test project to find and check tools/packages/services which improve the quality, readability of code and reliable of the future product at all.
CppCon 2017: Rian Quinn “A Test a Day Keeps Your Manager Away!”
- Make Simple Tasks Simple!
- The Evils of Duplication - do not repeat yourself (DRY)
- Orthogonality - make modules less cohesion
- Reversibility
- Respect all people who are or will be involved into project
- Documentation is important
- Visual Studio Community 2017
- CLion
- Xcode
- Qt Creator
- Travis CI is a hosted, distributed continuous integration service used to build and test software projects hosted at GitHub.
- AppVeyor is a hosted, distributed continuous integration service used to build and test projects hosted on GitHub on a Microsoft Windows virtual machine.
- Code Coverage is a measurement used to express which lines of code were executed by a test suite.
- Coveralls is a web service to help you track your code coverage over time, and ensure that all your new code is fully covered.
- ClangFormat is a tool to automatically format C++ code.
find modules -name '*.h' -or -name '*.cpp' | xargs -I {} sh -c 'echo {}; clang-format -style=file -i {};'
- Codacy is an automated code review platform.
- CodeFactor seamlessly integrates with GitHub, instantly performs Code Review with every GitHub Commit or PR.
- Coverity is a brand of software development products from Synopsys, consisting primarily of static code analysis and dynamic code analysis tools.
- CppCheck is an analysis tool for C/C++ code. It detects the types of bugs that the compilers normally fail to detect.
- Clang-Tidy is a clang-based C++ “linter” tool. Its purpose is to provide an extensible framework for diagnosing and fixing typical programming errors, like style violations, interface misuse, or bugs that can be deduced via static analysis.
TODO: Move to wiki
sudo apt-rm-repository "deb http://apt.llvm.org/artful/ llvm-toolchain-artful-6.0 main"
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
sudo apt-get install clang-6.0 lldb-6.0 clang-tools-6.0
- Valgrind is a programming tool for memory debugging, memory leak detection, and profiling.
- Google Sanitizers is another analysis tool for C/C++ code which is based on:
- AddressSanitizer
- MemorySanitizer
- ThreadSanitizer
- Docker is a tool designed to make it easier to create, deploy, and run applications by using containers.
- Doxygen is a source code documentation and analysis tool.
- OpenAPI + Swagger (tools for implementing the specification)
- draw.io is a diagramming tool which helps to create flowcharts, process diagrams, org charts, UML, ER diagrams, network diagrams and much more.