Naming Things by Peter Ritchie

This is a past event

12 people went

Location image of event venue


There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors. This session is about naming things. In software, we need to name classes, methods, properties, libraries, and solutions. We also have to give names to variables, parameters, namespaces, interfaces, services, resources, etc. And most of the time, they can't conflict. Sometimes it's easy but sometimes it can be hard. We'll do a quick review of some of the easy guidelines that avoid some (somewhat easy) decisions then look into the things that require names that involve a deeper understanding of context. What the contexts are, their granularity, and how that can alleviate naming issues will be covered. How the types of contexts and their motivation and good compartmentalization makes for easier naming will be detailed. We'll dig into some details of English grammar that should relegate naming is hard as a code smell—something that hints at deeper problems in the structure of the code. And finally, time permitting, some techniques and ideas to relegate *naming is hard* to problems of the past will be outlined.

Peter Ritchie - Software Solution Technologist

Peter Ritchie has been in the software industry for 25 years. Before Quicken Loans, Peter operated a software consulting company specializing in distributed applications and agile software development. Peter is a book author, open-source author, international speaker, blogger, and Microsoft MVP in .NET Development Technologies.

Peter has spoken internationally on a variety of topics including unit test design and management, asynchronous programming, advanced .NET language features and syntax, concurrent and parallel programming and distributed programming.

Author of Refactoring with Visual Studio 2010, Visual Studio 2010 Best Practices, and Practical Microsoft Visual Studio 2015.

Peter has also been an advisory board member of Microsoft Patterns and Practice: CQRS Journey guidance on command and query responsibility segregation and Enterprise Library