Please rotate your tablet to be horizontal.

You can dismiss this notice but please note that this experience has not been designed for mobile devices and so will be less than optimal

Back To Schedule

Pragmatic Simplicity

Actionable Guidelines To Tame Complexity

15:15 - 16:15 Thursday 15th September 2022 MDT Aurora A / Online A
Intermediate
Advanced
Expert
Software Design

Minimizing complexity in a codebase provides invaluable benefits, especially at scale, including but not limited to: maintainability, ease of understanding, malleability, debuggability, and testability. Such benefits translate not only into real economical advantages, but also increase the mental well-being of any developer.

So, how can "simplicity" be achieved?

Rather than focusing on philosophical concepts, this interactive presentation will give developers pragmatic and actionable guidelines that can be readily applied to reduce complexity in any codebase. Starting from a wide variety of examples (e.g. casting, containers, looping, attributes) a set of precepts will be derived together with the audience. After that, a deep analysis of where those precepts fall short will be given, honing them until the reaching the final goal: obtaining actionable guidelines useful in the real world.

If any of the following questions sound interesting to you, then you will definitely find this talk helpful and enjoyable:

- Should `emplace_back` always be used instead of `push_back`?
- Does `[[nodiscard]]` belong on every pure function returning non-`void`?
- How can one decide between using open-set and closed-set polymorphism?
- Are regular `for` loops the best way of iterating over a range of numbers?
- Do C-style casts still have a place in Modern C++?
- Is `T*` really a valid replacement for `std::optional<T&>`?
- Does simple code imply concise code?
- Can using templates reduce the complexity of a code base?
- When does it make most sense to use type deduction?

Vittorio Romeo

Bloomberg

Vittorio Romeo (B.Sc. Computer Science, 6+ YoE at Bloomberg) works on mission-critical C++ infrastructure and provides Modern C++ training to hundreds of fellow employees.

He began programming around the age of 8 and became a C++ enthusiast shortly after discovering the language. Vittorio created several open-source C++ libraries and games, published many video courses and tutorials, actively participates in the ISO C++ standardization process, and maintains the popular SFML library.

He co-authored the acclaimed "Embracing Modern C++ Safely" book (published in January 2022) with J. Lakos, R. Khlebnikov, and A. Meredith.

Vittorio is an active member of the C++ community with an ardent desire to share his knowledge and learn from others: he presented and offered workshops over 20 times at international C++ conferences (including CppCon, C++Now, ++it, ACCU, C++ On Sea, C++ Russia, and Meeting C++), covering topics of various nature.

He also maintains a website with advanced C++ articles and a YouTube channel featuring well-received modern C++11/14 tutorials. Lastly, he's active on StackOverflow, taking great care in answering interesting C++ question (90k reputation).

When he's not writing code, Vittorio enjoys weightlifting, playing volleyball, scuba diving, canyoning, gaming, and enjoying sci-fi content.