Guia para escrever Código C++

Guia para escrever Código C++

Este guia foi baseado no excelente vlog C++ Weekly with Jason Turner:

Para escrever um bom código em C++ precisamos o auxílio de algumas ferramentas

Ambiente para desenvolvimento contínuo:

  • github
  • gitlab

Utilizar quantos compiladores forem possíveis

  • GCC
  • Clang
  • MSCV (cl.exe)
  • clang-cl.exe

Compiladores diferentes fornecem diferentes warnings

Um framework de teste

  • doctest
  • catch2
  • gtest
  • boosttest

Análise de Teste de cobertura ( e relatório)

Idealmente conectado ao seu ambiente de desenvolvimento contínuo.

  • coveralls
  • codecov.io (gratuito para projetos Open Source)

Tanto quanto for possível de análise estática

  • pelo menos -Wall -Wextra -Wshadow -Wconversion -Wpedantic -Werror (GCC/Clang) ou /W4 /WX (VS)
  • gcc -fanalizer
  • cl.exe /analyze
  • cppcjeck
  • clang-tidy
  • PVS Studio
  • Sonar

Análise em tempo de execução durante testes

  • Address Sanitizer (ferramente que detecta erros de corrupção de memória durante a execução de programas)
  • Sanitizer de comportamento indefinido
  • Sanitizer de memória
  • Sanitizer de Thread
  • DrMemory
  • valgrind
  • Debug Checked Iterators

Teste fuzz

  • Ferramenta que gera entrada aleatória para sua API
  • Deve ser utilizada com a análise em tempo de execução