function. Do not create `main_test.go`.
- A file carries its own context. Keep each struct and all of its
methods in one file. Give a separate responsibility its own type.
+- When code in one file gets a user in another file for an unrelated
+ purpose, move it to a file named for its function in the same change.
- Put entry points first, then each struct's methods as a group, then
standalone utility functions. Do not put a utility function between
the methods of one type.
test callbacks.
- Do not use short `if` initializers.
- Use a one-letter receiver name for each method.
-- Put each field of a keyed struct literal on its own line when you set
- more than one field.
+- Use field names in struct literals. Put each field on its own line
+ when you set more than one field. This includes the cases of a
+ table-driven test. A small type of two fields that acts as one value,
+ such as a key or a coordinate pair, can use a positional literal on
+ one line.
- Put an empty line between logical blocks, also after multiline
declarations, assignments, literals, and calls. Keep an operation with
its immediate error or result check. Keep a short declaration with its