Skip to content
Tech News
← Back to articles

Go Naming Conventions: A Practical Guide

read original more articles
Why This Matters

This guide emphasizes the importance of proper naming conventions in Go programming, highlighting how clear and consistent names enhance code readability and maintainability. For the tech industry and developers, mastering these naming practices can lead to more predictable and efficient codebases, ultimately improving software quality and collaboration.

Key Takeaways

My new book guides you through the start-to-finish build of a real world web application in Go — covering topics like how to structure your code, manage dependencies, create dynamic database-driven pages, and how to authenticate and authorize users securely.

Choosing the right names in your codebase is an important (and sometimes difficult!) part of programming in Go. It's a small thing that makes a big difference — good names make your code clearer, more predictable, and easier to navigate; bad names do the opposite.

Go has fairly strong conventions — and a few hard rules — for naming things. In this post we're going to explain these rules and conventions, provide some practical tips, and demonstrate some examples of good and bad names in Go. If you're new to the language, all this information might feel like a lot to take in, but it'll quickly become second nature with a bit of practice 😊

Identifiers

Let's start with the hard rules for identifiers. By identifiers, I mean the names that you use for the variables, constants, types, functions, parameters, struct fields, methods and receivers in your code.

Identifiers can contain unicode letters, digits, and underscores only.

Identifiers cannot begin with a digit.

You cannot use any of the following Go keywords as identifiers:

break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var

So long as you stick to those three rules, any identifier name is technically valid and your code will compile all OK. But there are a bunch of other guidelines that it's good practice to follow:

... continue reading