mirror of
https://github.com/prometheus/prometheus
synced 2024-12-31 19:42:22 +00: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> |
||
---|---|---|
.. | ||
custom-sd | ||
kubernetes-rabbitmq | ||
remote_storage | ||
Makefile | ||
prometheus-agent.yml | ||
prometheus-digitalocean.yml | ||
prometheus-docker.yml | ||
prometheus-dockerswarm.yml | ||
prometheus-eureka.yml | ||
prometheus-hetzner.yml | ||
prometheus-ionos.yml | ||
prometheus-kubernetes.yml | ||
prometheus-linode.yml | ||
prometheus-marathon.yml | ||
prometheus-nomad.yml | ||
prometheus-ovhcloud.yml | ||
prometheus-puppetdb.yml | ||
prometheus-scaleway.yml | ||
prometheus-uyuni.yml | ||
prometheus-vultr.yml | ||
prometheus.yml | ||
rbac-setup.yml | ||
web-config.yml |