Читаю про подход от uber,
https://github.com/uber-go/guide/blob/master/style.md.
Блок: Verify Interface Compliance
// ПЛОХО
type Handler struct {
// ...
}
func (h *Handler) ServeHTTP(
w http.ResponseWriter,
r *http.Request,
) {
...
}
// ХОРОШО
type Handler struct {
// ...
}
var _ http.Handler = (*Handler)(nil)
func (h *Handler) ServeHTTP(
w http.ResponseWriter,
r *http.Request,
) {
// ...
}
В чем смысл такой проверки?
Если я передам структуру через di в другую структуру, и она не будет иметь методы требуемого интерфейса, приложение все равно не скомпилится,