***NEW: Writing Correct, Conforming and Performant Code

SEMINAR DETAILS

  • Datum : 2021 in Planung
  • Dauer: 09:00 – 17:00 Uhr
  • Ort: ARCOTEL Camino, Stuttgart
  • Sprache: EN
  • Referent: Jason Turner
  • Frühbucher: 2021 in Planung
  • Preis: 2021 in Planung
ANMELDEN
DETAILS (PDF)

Jason Turner IMAGE Jason Turner
Jason has 2 decades of C++ experience and is a regular conference speaker, developer, and trainer.

Kontakt

Telefon:

+49 (0)711 138183-0

 

E-Mail:

seminare@qa-systems.de

AGB QA AKADEMIE

Abstract
Correct, conformant code is code that performs better, is more optimizable and more testable. Unfortunately, not all code can be executed at compile-time, so we want to write the best possible code we can that runs at run-time. By following best practices and writing idiomatic code, you write programs that the compiler knows how to optimize. You also create a codebase that is easier to maintain, costs less to write, and can be more easily analyzed by static analysis tools and is less error-prone.

During the class, we deeply examine something that C++ has that very few other languages have: a well-defined object life cycle. Understanding this key aspect of C++ is critical to writing clean, maintainable, and efficient C++.

Don’t deal with run-time errors, logic errors, and leave performance on the floor with common mistakes that are easily avoided with a deeper understanding of the language.

Goals
Students will:

  • Learn idiomatic C++ programming patterns
  • Learn how to spot and avoid undefined behavior
  • Understand the limitations of what can be optimized
  • Develop an intuition for what makes good C++ good

Outline
Please note: This outline is subject to change.

  • Understanding RAII
  • What does the standard say?
  • Member variable lifecycle
  • How and why to limit variable scope
  • The as-if rule
  • std::move and std::forward
  • Optimally passing and returning values
  • The lifecycle of lambda captures
  • How the C++ memory model and object lifetime relate
  • A note about run-time polymorphism
  • What changes in C++17
  • Best Practices
  • C++ Tooling

Prerequisites
I expect you are comfortable with C++ syntax, have used C++, and desire a better intuition for how to write good code.

Format
My classes are highly interactive and have small group exercises, where students share their laptops (1 laptop per 4 students) and discuss the exercise. Come expecting to interact with your fellow students and me. Come also with questions you would like answered.