Desarrollador Go: pregunta de entrevista

¿Cómo usas interfaces de forma idiomática en Go?

Mantén las interfaces de Go pequeñas y defínelas del lado consumidor. Describen el comportamiento que necesita quien llama, no una jerarquía de clases ni toda la capacidad de un tipo concreto.

Respuesta directa

Qué debe cubrir una buena respuesta

Cómo funciona

Las interfaces idiomáticas de Go se descubren, no se declaran por adelantado: el consumidor indica el método o dos que llama, y cualquier tipo con esos métodos la satisface de forma implícita. Las interfaces pequeñas se componen, son triviales de falsear en pruebas y evitan acoplar un paquete a una implementación concreta que no controla. Devolver tipos concretos y aceptar interfaces mantiene honesta la superficie pública sobre lo que necesita una función.

Ejemplo

Un servicio que solo necesita Read puede aceptar io.Reader en vez de una interfaz grande de almacenamiento. Un paquete de pagos define type Charger interface con un único método Charge junto al código que lo llama, de modo que el adaptador de Stripe y el fake de pruebas lo satisfacen sin importar el paquete de pagos.

Errores frecuentes

  • Definir una interfaz grande en el paquete productor y obligar a cada implementación a cumplirla.
  • Introducir una interfaz con una sola implementación solo para poder hacer mocks.
  • Devolver una interfaz desde un constructor, lo que oculta métodos y anula las comprobaciones estáticas sobre el tipo concreto.

Una estructura útil para responder

Responde desde tu propia experiencia.

No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.

Practica esta respuesta con MiraHint

Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.

Descargar MiraHint
Preguntas de entrevista para Desarrollador Go