Wednesday 

Room 1 

15:00 - 16:00 

(UTC+02

Talk (60 min)

Naming is Hard: Let's Do Better

C++ developers are famously bad at naming: our idioms, guidelines, and lore are rich in examples of terrible names. For example, consider RAII, which stands for scope bound resource management, or west const which perhaps should be const west, or all the samples that feature an object called x which is an instance of a class called X, and so on.

C++

The good news is that naming well is a learned skill, and you can learn it, and start to name better right away. In this talk, I'll tell you why names matter, what benefits a good name can bring, and how to be better at naming. I'll discuss some categories of names and some common decisions within those categories. I'm not going to give you a set of rules to follow: this is about thinking and considering the meaning of the things you are naming. I will give you some questions to ask yourself and some structure that I use to help me to help those who read what I write.

I'll also address renaming things in existing (legacy) code, why and when to do it, and why getting it right the first time may not even be a realistic goal. You should be a lot more confident naming things after we spend this time together.

Kate Gregory

Kate Gregory is an enthusiastic C++ programmer and teacher, and has been paid to program since 1979. She believes that software should make our lives easier. That includes making the lives of developers easier! She'll stay up late arguing about deterministic destruction or how modern C++ is not the C++ you remember. She is one of the three leads of the Carbon Language project, a founder of #include <C++>, and on the board of C++ Toronto, which runs CppNorth.

Kate runs a small consulting firm in rural Ontario and provides mentoring and management consultant services, as well as writing code every week. She has spoken all over the world, written over a dozen books, and helped thousands of developers to be better at what they do. Kate is a Visual C++ MVP, and develops courses for Pluralsight, primarily on C++.