Go - On logging and dependencies
Doing code reviews, I have sometimes noticed libraries forcing dependencies on the users.
While it is perfectly acceptable if well justified and documented, it sometimes feels like adding unnecessary baggage.
A typical example would be something like the following snippet:
func (c *Client) HealthCheck(ctx context.Context) error {
logrus.Debug("sending get request")
req, err := http.NewRequestWithContext(ctx, http.MethodGet, c.url, nil)
if err != nil {
return err
}
resp, err := c.client.Do(req)
if err != nil {
return err
}
logrus.Debugf("http status code was %d", resp.StatusCode)
defer resp.Body.Close()
return nil
}
Using logrus, as example, picking this code, one would need to check how logrus works, which configurations are available, which version should be used and so on.