mirror of
https://github.com/prometheus/prometheus.git
synced 2024-12-26 06:04:05 -08:00
5b53aa1108
Wiser coders than myself have come to the conclusion that a `switch` statement is almost always superior to a statement that includes any `else if`. The exceptions that I have found in our codebase are just these two: * The `if else` is followed by an additional statement before the next condition (separated by a `;`). * The whole thing is within a `for` loop and `break` statements are used. In this case, using `switch` would require tagging the `for` loop, which probably tips the balance. Why are `switch` statements more readable? For one, fewer curly braces. But more importantly, the conditions all have the same alignment, so the whole thing follows the natural flow of going down a list of conditions. With `else if`, in contrast, all conditions but the first are "hidden" behind `} else if `, harder to spot and (for no good reason) presented differently from the first condition. I'm sure the aforemention wise coders can list even more reasons. In any case, I like it so much that I have found myself recommending it in code reviews. I would like to make it a habit in our code base, without making it a hard requirement that we would test on the CI. But for that, there has to be a role model, so this commit eliminates all `if else` occurrences, unless it is autogenerated code or fits one of the exceptions above. Signed-off-by: beorn7 <beorn@grafana.com> |
||
---|---|---|
.. | ||
client_metrics.go | ||
endpoints.go | ||
endpoints_test.go | ||
endpointslice.go | ||
endpointslice_adaptor.go | ||
endpointslice_adaptor_test.go | ||
endpointslice_test.go | ||
ingress.go | ||
ingress_adaptor.go | ||
ingress_test.go | ||
kubernetes.go | ||
kubernetes_test.go | ||
node.go | ||
node_test.go | ||
pod.go | ||
pod_test.go | ||
service.go | ||
service_test.go |