neo-go/docs/conventions.md
Anna Shaleva cbc75afd4d docs: refactor documentation
CLI:
* Typos are fixed
* Documentation on NEP-11 tokens is added
* NeoGo node configuration is moved to a separate file

Compiler:
* Typos and indentations are fixed
* Ops dump example is updated

Consensus:
* Typos are fixed
* Links are fixed

Notifications:
* Minor adjustments

RPC:
* `getversion` response is updated
* `getunclamedgas` comment is removed (not valid since
https://github.com/neo-project/neo-modules/pull/243)

VM:
* Update help message
* `load*` command adjustments
* `astack` command removal
2021-09-08 17:52:46 +03:00

44 lines
1.2 KiB
Markdown

# Conventions
This document will list conventions that this repo should follow. These are
guidelines and if you believe that one should not be followed, then please state
why in your PR. If you believe that a piece of code does not follow one of the
conventions listed, then please open an issue before making any changes.
When submitting a new convention, please open an issue for discussion, if
possible please highlight parts in the code where this convention could help the
code readability or simplicity.
## Avoid named return parameters
func example(test int) (num int) {
a = test + 1
num = a * test
return
}
In the above function we have used a named return parameter, which allows you to
include a simple return statement without the variables you are returning. This
practice can cause confusion when functions become large or the logic becomes
complex, so these should be avoided.
## Use error wrapping
Bad:
```
err = SomeAPI()
if err != nil {
return fmt.Errorf("something bad happened: %v", err)
}
```
Good:
```
err = SomeAPI()
if err != nil {
return fmt.Errorf("something bad happened: %w", err)
}
```
Error wrapping allows `errors.Is` and `errors.As` usage in upper layer
functions which might be useful.