integration with the name of that feature. Start the names of its
files with the same name. Keep a name generic only when more than one
feature uses it.
-- Use unexported names. In the `main` package, an exported name has no
- effect.
+- Write type names with a capital letter, so that a variable can have
+ the name of its type. Write all other package-level names in lower
+ case.
- Write all the letters of an initialism in one case.
- Put entry points first, then each struct's methods as a group, then
standalone utility functions. Do not put a utility function between
input.
- In a test file, put constants immediately after the imports, then the
tests, then supporting types, methods, and helpers.
+- Keep a helper that only one test file uses in that file. Put a helper
+ that more than one test file uses in a file without tests. Name that
+ file for what it holds, and end the name with `_helper_test.go`.
- Supply valid required dependencies in tests. Do not make a dependency
optional only to make a test simpler.