A transição de C pode ser desafiadora, com preocupações sobre sobrecarga para o desempenho, complexidade adicional e ferramentas desconhecidas. Abordando esses desafios, Amar Mahmutbegovic, um defensor de C++ moderno no desenvolvimento embarcado, mostra como podemos nos beneficiar de abstrações de custo zero, verificações de tempo de compilação...
Ver mais ▼A transição de C pode ser desafiadora, com preocupações sobre sobrecarga para o desempenho, complexidade adicional e ferramentas desconhecidas. Abordando esses desafios, Amar Mahmutbegovic, um defensor de C++ moderno no desenvolvimento embarcado, mostra como podemos nos beneficiar de abstrações de custo zero, verificações de tempo de compilação e poderosos recursos da linguagem para preservar o desempenho, chegando ao mesmo tempo a um código mais seguro e limpo.
Este livro preenche a lacuna entre C tradicional e C++ avançado, e o ajudará a manter a eficiência exigida dos desenvolvedores C, além de fornecer a segurança e a expressividade de C++ moderno.
Começando com uma configuração de ambiente de desenvolvimento moderno, que inclui um contêiner Docker para a replicação contínua dos exemplos, você superará os obstáculos de usar a biblioteca padrão de C++ em ambientes com restrição de memória e se familiarizará com a ETL (Embedded Template Library) como alternativa. O livro o guiará por conceitos essenciais de C++ antes de explorar tópicos avançados, como os templates, a tipagem forte, a manipulação de erros, a computação no tempo de compilação e o RAII. Com a ajuda de exemplos práticos, você implementará um sequenciador, escreverá uma HAL com segurança de tipos e aplicará padrões como Command, State e Observer para resolver problemas comuns de desenvolvimento embarcado.
Quando chegar no fim do livro, você terá aprendido a aplicar C++ moderno para desenvolver um firmware robusto e modular com desempenho igual ou superior às soluções codificadas manualmente em C.
Você aprenderá a
• Desconstruir mitos e concepções errôneas sobre o uso de C++ em sistemas embarcados.
• Definir uma automação de build personalizada para C++ em ambientes restritos.
• Usar a tipagem forte para melhorar a segurança de tipos.
• Aplicar técnicas do C++ moderno, como o RAII (Resource Acquisition Is Initialization).
• Usar a DSL (Domain Specific Language) com um exemplo prático que emprega o Boost SML.
• Implementar melhores práticas de desenvolvimento de software, incluindo o princípio SOLID, no desenvolvimento embarcado.
Ver menos ▲