--- tags: code quality --- # Style Guide constituents ## PRs I chose the below PRs out of all PRs that have the `Cleanup` label applied, and added a few more. ### Victor - https://github.com/prysmaticlabs/prysm/pull/7529 - use `error.Is(err, errType)` instead of `err == errType` - use `%w` instead of `%v` when wrapping errors using `fmt.Errorf` (*might* be not needed after error handling revamp) - https://github.com/prysmaticlabs/prysm/pull/8158 - do not use variable names colliding with names of imported packages - https://github.com/prysmaticlabs/prysm/pull/8193 - compare strings using `strings.EqualFold()` instead of `strings.ToLower()` or `strings.ToUpper()` ### Terence - https://github.com/prysmaticlabs/prysm/pull/8228 - create `HydrateXyz` helpers to avoid defining empty arrays in each test - https://github.com/prysmaticlabs/prysm/pull/8337 and https://github.com/prysmaticlabs/prysm/pull/8320 - do not prefix getter functions with `get` - name constructors `New` if the package name makes it clear what is being created (e.g. `service.New`) - name constructors `NewXyz` if the package name does not make it clear what is being created (e.g. `helpers.NewSlotTicker`) ### Radek - https://github.com/prysmaticlabs/prysm/pull/8245 - create a `log.go` file for each package and declare a logger variable inside this file - https://github.com/prysmaticlabs/prysm/pull/8317 - do not create files ending with `_mock` as their diffs will be hidden by default in the PR - https://github.com/prysmaticlabs/prysm/pull/8318 - use `assert.DeepEqual` instead of `bytes.Equal` for comparing byte slices in tests ### Other - Declare receiver functions on pointer types ## Questions - something about architecture/modularity specific to Prysm? anything that we do which is unorthotox? - custom types? maybe later, after the feature is complete? - use higher-order pipelines (e.g. https://github.com/prysmaticlabs/prysm/pull/)? maybe after https://github.com/prysmaticlabs/prysm/pull/8297 gest merged so that we have more than 1 pipeline? - something more about errors/logs? we might have something related to errors after the error handling revamp feature - something more about testing? - how to break all of this into sections?