errcheck
golang-docker
errcheck | golang-docker | |
---|---|---|
9 | 49 | |
2,284 | 1,433 | |
- | 0.3% | |
6.3 | 7.7 | |
15 days ago | 29 days ago | |
Go | Shell | |
MIT License | BSD 3-clause "New" or "Revised" 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.
errcheck
-
Linter to check for errors ignored with _
In our codebase I noticed a few cases where people ignored errors returned from functions by assigning them to _, ie result, _ := foo(). The errcheck linter doesn't seem to catch this, does anyone know of a linter that does?
-
Golang panics in libraries
And we also expect that the caller will check the error and handle it. There is a popular linter that checks it for us: errcheck.
-
Is it a bad convention to overwrite err variable?
You should be using golangci-lint, because all serious Go programmers should. golangci-lint contains errcheck, which will detect if you overwrite an error without having done something with it in the meantime. I consider this one of the most important linters (this doesn't just detect things that may sorta kinda someday turn into bugs, this quite likely is a bug RIGHT NOW), and it helps you have the confidence you can overwrite errors as you go and don't need to keep allocating new ones.
-
Integration Tests failing
Run golangci-lint over your code if you haven't already and pay special attention to errcheck's output.
-
Luciano Remes | Golang is 𝘼𝙡𝙢𝙤𝙨𝙩 Perfect
errcheck has a flag for that ;)
-
Proposal: Go 2: Lightweight anonymous function syntax
https://github.com/kisielk/errcheck, which is in most of the combined linter packages by default.
We'll agree to disagree about unused imports; imports have can side-effects.
-
Lies we tell ourselves to keep using Golang
I prefer functions returning errors over throwing exceptions. Whether it's Go's errors or ML-style options/results, they're both better than exceptions. I cannot remember the last time I had a bug from not checking an error in Go. There's also errcheck which I use as part of my linting that will catch unchecked errors, such that I cannot even commit the code.
-
I Want Off Mr. Golang's Wild Ride
> Go compiler raise an error if a variable (error) goes unused
It doesn't though. It's perfectly valid to not use the return value of a function that only returns an error, for instance.
There are static error checking tools you can use like https://github.com/kisielk/errcheck to work around this, but most people don't use them.
I've run into a lack of Go error checking many times. Many times it's just the trivial case, where the compiler doesn't warn about not checking the result of an error-returning function.
But often it'll be subtler, and the result of Go's API design. One example is its file writing API, which requires you to close the file and check its error to be correct. Many times people will just `defer file.Close()`, but that isn't good enough - you're ignoring the error there.
Worse still is e.g: writing to a file through a bufio.Writer. To be correct, you need to remember to flush the writer, check that error, then close the file and check that error. There's no type-level support to make sure you do that.
-
Trying Out Generics in Go
I'd be really happy with that! Building the functionality of errcheck[1] and ineffassign[2] into the compiler — or at the very least, into govet — would go a long way to allay my worries with Go.
I think the reason they don't do this is that it's a slight (albeit a very tiny one) against Go's philosophy of errors being values, just like any other. While the `error` type is standard and used throughout Go source code, it still just has a simple three-line definition[3] and is not treated as a special case anywhere else; there is nothing stopping you from returning your own error type if you wish. A third-party linter could simply check for the `error` type specifically, but the first-party tools should not, and there's nothing like Rust's `#[must_use]` attribute that could be used instead. I respect Go's philosophy, but I feel like pragmatism must win in this case.
[1]: https://github.com/kisielk/errcheck
golang-docker
- Migrate Redis to AWS ElastiCache
-
Dockerizing Golang CLI Tool - A Step-by-Step Guide
After installing the Docker Desktop, you need to have Golangand Cobra cli installed before building the CLI.
- Web Servers e Networking em Go
-
Step by Step process to learn Golang
Visit the official Go website at golang.org and download the latest version for your OS.
-
Golang panics in libraries
With Go it is a bit different. We do not have exceptions, but we have panic and recover functions. Panics by themself are not control-flow statements, they are closer to Java Error type or PHP ErrorException type. They are used to stop execution of the program in case of critical errors that are not related to business flow of the program. In case of Go we can use panic to throw an error and recover to catch it, but we can catch it only in defer functions that are not linear execution code block and applies some limitations on top of it.
-
Introduction to Go: A Powerful and Efficient Programming Language
Before diving into Go programming, you need to set up the development environment. Go's official website (https://golang.org) provides installation binaries for all major operating systems. Once installed, you can confirm the installation by running a simple "Hello, World!" program.
-
Building an XDP eBPF Program with C and Golang: A Step-by-Step Guide
Next, you need to install Golang, which is the programming language used for the accompanying Golang application. Visit the official Golang website at https://golang.org and follow the installation instructions specific to your operating system. Once installed, make sure the go command is accessible from the command line by adding the appropriate binary directory to your system's PATH.
-
Getting Started in Go
To start in Go❤️ let's take a few steps back, let's start our whole trajectory knowing the official website of lang this is the official page golang.org, here we will find all the information we could know about Go and much more. Here we have the docs, packages, blog and our darling play.golang.org, language specs, download, Go tour and much more.
- Para quem curte DigitalOcean❤️
-
PSX - Build fully typed REST APIs
golang.org
What are some alternatives?
GoLint - [mirror] This is a linter for Go source code. (deprecated)
go-concurrency-exercises - Hands on exercises with real-life examples to study and practice Go concurrency patterns. Test-cases are provided to verify your answers.
staticcheck
hugo-site - This is the repository from which the Hugo-generated version of https://www.brycewray.com is built.
gosimple
Work-Sans - A grotesque sans.
gcvis - Visualise Go program GC trace data in real time
cassandra-medusa - Apache Cassandra Backup and Restore Tool
apicompat - apicompat checks recent changes to a Go project for backwards incompatible changes
Visual Studio Code - Visual Studio Code
Go Metalinter
goldmark - :trophy: A markdown parser written in Go. Easy to extend, standard(CommonMark) compliant, well structured.