TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
c++-esc-brazil-presentation_v1.0
1. 26 e 27 de Agosto, 2014
Transamérica Expo Center, São Paulo/SP
C++ e Linux
Embarcado:
União perfeita
Vinicius Zein, Bruno Herrera – Fundação CERTI
2. Fundação CERTI - Direitos Reservados
Quem somos
• Vinicius Zein
• Coordenador da área de Sistemas
Embarcados, CCD, Fundação CERTI
• Bruno Herrera
• Gerente de Tecnologia do Centro de
Convergência Digital, Fundação CERTI
3. Fundação CERTI - Direitos Reservados
Quem somos
• Instituição de Pesquisa, Tecnologia e Inovação
• Criada em 1984 com a missão de desenvolver soluções
tecnológicas para produtos e processos
• Possui cerca de 500 colaboradores no grupo
• Privada, que reinveste o resultado em P&D
• Credenciada no MCTI e SUFRAMA, estando apta a
captar projetos de Lei de Informática, Lei do Bem e
Cooperação Internacional
• Mais de 500 empresas clientes no Brasil e exterior
• Crescimento de mais de 20% ao ano nos últimos 5 anos
• Reconhecimento e conquista de diversos prêmios,
como o Prêmio FINEP Nacional
4. Fundação CERTI - Direitos Reservados
Agenda
1. Linux Embarcado
2. C++
3. Ferramentas para
desenvolvimento e debugging
4. Frameworks de mock e testes
5. Test driven development
6. Conclusões
11. Fundação CERTI - Direitos Reservados
C++
• Multi-paradigma
• Orientada a objetos
• Templates, inline functions
• Metaprogramação
• Performática e poderosa
• Ferramentas disponíveis
• Compatibilidade com C just in case
;)
12. Fundação CERTI - Direitos Reservados
C++
• STL, Boost, ACE
• Linguagem em constante evolução
– C++85 style "C with Classes”
– C++98
– C++03
– C++11
– C++14
– C++18?!?!?
13. Fundação CERTI - Direitos Reservados
C++?
• Don’t lower your level of abstraction
without good reason
• Low-level implies
– More code
– More bugs
– Higher maintenance costs
http://ecn.channel9.msdn.com/events/GoingNative12/GN12Cpp11Style.pdf
14. Fundação CERTI - Direitos Reservados
Linux Embarcado
+
C++
=
União Perfeita
15. Fundação CERTI - Direitos Reservados
2 - Ferramentas para
desenvolvimento e debugging
16. Fundação CERTI - Direitos Reservados
Build systems
• Buildroot
“Making Embedded Linux Easy
Buildroot is a simple, efficient and
easy-to-use tool to generate embedded
Linux systems through cross-
compilation.”
17. Fundação CERTI - Direitos Reservados
Build systems
• Yocto Project
“It's not an embedded Linux distribution
– it creates a custom one for you”
18. Fundação CERTI - Direitos Reservados
Build systems
• Autoconf
• Rake
• Boost.Build
• Qmake
• Scons
• CMake
19. Fundação CERTI - Direitos Reservados
IDEs
* Ferramenta para navegação e
edição de código
• Vim
• Emacs
• Sublime Text 2
• Eclipse CDT
• Netbeans
• SlickEdit
• QtCreator
• JetBrains AppCode
21. Fundação CERTI - Direitos Reservados
Debugging
If debugging is the process of removing
bugs, then programming must be the
process of putting them in.
~Edsger Dijkstra
22. Fundação CERTI - Direitos Reservados
Debugging
• Logs
• Command Line Interface (CLI)
• gdb (post morten)
• gdb + gdbserver
• ddd
• Google BreakPad
** Para cada problema novo
encontrado, um (ou mais) testes
unitários. **
23. Fundação CERTI - Direitos Reservados
Debugging - GDB
• Após o crash
> gdb <program> -c <core_file>
• bt full -> backtrace
• print <variable>
• frame <frame_id>
• thread <thread_id>
41. Fundação CERTI - Direitos Reservados
gmock
• Mocking Framework do Google
para testes em C++
• Simulando comportamentos.
• Criação de emuladores
– Necessidade do target real