nilaway
revive
nilaway | revive | |
---|---|---|
3 | 10 | |
2,808 | 4,632 | |
5.6% | - | |
8.7 | 8.3 | |
7 days ago | 6 days ago | |
Go | Go | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nilaway
-
Go: What We Got Right, What We Got Wrong
I would have more respect if they at least admitted to the flawed type system but instead say it is not a problem. It is disappointing to see past mistakes repeated in a new programming language. Even the Java language creator was humble enough to admit fault for the null pointer problem. The Go devs do not have such humility.
https://github.com/uber-go/nilaway
-
Practical nil panic detection for Go
We'd be interested in the general characteristics of the most common ones you are seeing. If you have a chance to file a couple issues (and haven't done so yet): https://github.com/uber-go/nilaway/issues
We definitely have gotten some useful reports there already since the blog post!
We are aware of a number of sources of false positives and actively trying to drive them down (prioritizing the patterns that are common in our codebase, but very much interested in making the tool useful to others too!).
Some sources of false positives are fundamental (any non-trivial type system will forbid some programs which are otherwise safe in ways that can't be proven statically), others need complex in-development features for the tool to understand (e.g. contacts, such as "foo(...) returns nil iff its third argument is nil"), and some are just a matter of adding a library model or similar small change and we just haven't run into it ourselves.
revive
-
revive v1.3.4 is now available
The v1.3.4 of revive, the fast, configurable, extensible, flexible, and beautiful linter for Go, is available.
-
net/http extension to exchange structs
I would suggest checking out something like revive to improve the code. For instance you use an errors.New(fmt.Sprintf(... when you can just use fmt.Errorf(... to simplify it. I am not saying obey everything but there are some good lints included that can even catch bugs (for instance misusing errors.Is or errors.As or general equality).
-
Why elixir over Golang
Linting and static analysis: https://revive.run/
- Just migrated our Open Source project to Golang
-
Revive 1.3 is out
For people using this linter (like me) https://github.com/mgechev/revive
-
Is there a better alternative to `gofmt`?
Been using https://github.com/mgechev/revive in all my projects.
-
Change Blogging my first Hacktoberfest (2021)
The day after, I talked about the Hacktoberfest to Salvador (architect colleague and my technical/career unofficial mentor). He is known for contributing to revive a Golang linter. We decided that I could contribute by solving these 3 issues (2 new rules and add a docker image to the release). Since this moment, I have been coding every available hour I had. It felt so reviving to spend time coding on new projects, rewarding to solve issues for people actually using the tool. Here are all my contributions.
-
Golang Style Checkers
While golint may be deprecated it has been brought back as revive. You can also enable in golangci-lint.
- Mgechev/revive: faster,stricter,configurable,extensible,replacement for golint
-
pre-commit-golang v0.8.3 - Now with revive support
This release adds support for revive, a ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint.
What are some alternatives?
reviewdog - 🐶 Automated code review tool integrated with any code analysis tools regardless of programming language
go-critic - The most opinionated Go source code linter for code audit.
syft - CLI tool and library for generating a Software Bill of Materials from container images and filesystems
go-tools - Staticcheck - The advanced Go linter
go - The Go programming language
emusak-ui - This is a tool which allows you to download saves or mods for Nintendo Switch emulators using a compatible Emusak backend
grype - A vulnerability scanner for container images and filesystems
wrapcheck - A Go linter to check that errors from external packages are wrapped
tfsec - Security scanner for your Terraform code
ALVR - Stream VR games from your PC to your headset via Wi-Fi
clair - Vulnerability Static Analysis for Containers
ireturn - Accept Interfaces, Return Concrete Types