26 lines
1.2 KiB
Markdown
26 lines
1.2 KiB
Markdown
# Code style guide
|
|
|
|
## Go
|
|
|
|
- Use `gofmt`
|
|
- `jsonapi` fields must use dasharised names
|
|
(eg `some-field` instead of `some_field` or `someField`)
|
|
- Function, struct and variable names must describe their purpose adequatly.
|
|
Making them longer for that purpose is fine
|
|
- Follow [https://go.dev/doc/effective_go]
|
|
(which also happens to be convenient place to start learning Go)
|
|
- Always use zerolog for console output. In http handlers,
|
|
use `hlog.FromRequest` to get a logger instance prepared with a bunch of metadata
|
|
- As Linstrom is both intended for active use as well as providing a learning resource,
|
|
all functions and structs must be documented and follow the conventions on [https://tip.golang.org/doc/comment]
|
|
- Errors returned from public functions must either be wrapped with `git.mstar.dev/mstar/goutils/other.Error`
|
|
and given appropriate descriptive information
|
|
_or_ return an error defined (as public variable) in that package.
|
|
Example: `other.Error("auth", "failed to do something important", originalError)`
|
|
- Returned http errors must use `git.mstar.dev/mstar/goutils/webutils.ProblemDetails(StatusOnly)`.
|
|
|
|
## JS/TS
|
|
|
|
<!-- TODO: Fill this out -->
|
|
|
|
- Biome should do most of the work
|