Coding Guidelines
- All development
- Use sentence case, without capital letters in the middle of sentences unless specifically required.
- Comments should be limited to the following, unless there's a specific reason otherwise. Overuse of comments is discouraged.
- A brief description at the top of files.
- A copyright notice at the top of files.
- A brief description of each 'paragraph' in long functions.
- An explanation any section of code that may be counter-intuitive to someone reading the source.
- Go specific
- Always use "go fmt".
- Always strip executables before distribution.
- Perl specific
- Use tabs instead of spaces for indentation.
- Leave a space after negation: if ( ! $variable ) {
- Leave a space after open bracket: if ( $variable ) {
- Leave a space before close bracket: if ( $variable ) {
- Do not leave a blank line after if, while, foreach, else, etc.
- Do not leave a blank line before closing curly brackets of blocks.
- Do not leave multiple consecutive blank lines.
- If a list is very long, it should be spread across multiple lines. The last line before the closing round bracket should have a trailing comma.
- Built-in Perl functions which can optionally have brackets, such as scalar(), should normally have brackets: scalar( @variable )
- 'use' statements should be listed at the top of each file, in case-insensitive alphabetical order, unless otherwise necessary.
- 'require' statements may be embedded within functions.
- Hash references are normally given very short names, typically one letter, or two if necessary to be unambiguous.
- Enumerated hash arrays should use " => " between keys and values, and ", " between values and keys.
- Use of the Perl "<condition> ? <if true> : <if false>" construct is encouraged where thought appropriate.
- Perl libraries should normally use @EXPORT_OK rather than @EXPORT.
- Libraries should where possible name their functions starting with <library>_.