Domina las Interfaces en GoLang! Tutorial Claro y Detallado | Senior Go Español

Поделиться
HTML-код
  • Опубликовано: 13 янв 2025

Комментарии • 29

  • @user-gf7yv9mb6g
    @user-gf7yv9mb6g Год назад +5

    Otro excelente video. Hoy entendí las interfaces y en otro de tus videos los contextos. Es el tercero de tu canal que veo en el día. Generalmente no hago comentarios pero no puedo creer que no tengas muchos más likes. La calidad de tus explicaciones lo merece. Saludos.

    • @seniorgoespanol
      @seniorgoespanol  Год назад

      Que honor leer tu comentario! La verdad trato de hacer los videos que a mí me hubiera gustado encontrar en mis inicios en go. De dónde surgió tu interés en go?
      Saludos!

  • @rbecerrav93
    @rbecerrav93 2 месяца назад +1

    llevo 5 meses en un empleo donde todo lo hago en Go y solo con este video pude entender como funcionan las interfaces

    • @seniorgoespanol
      @seniorgoespanol  2 месяца назад

      que honor leer tu mensaje amigo! muchas gracias por tu comentario!

  • @JoseOliveros
    @JoseOliveros Год назад +1

    Excelente explicación amigo, super claro todo, suscrito y activado para mas videos sobre Golang, vengo de mucho JavaScript y me ha costado algo adaptarme a la forma de programar en Go, al cambio de mentalidad, pero vale la pena, es un lenguaje super power.

    • @seniorgoespanol
      @seniorgoespanol  Год назад +1

      todos batallamos un poco al principio, pero cuando menos te das cuenta ya puedes hacer cosas súper potentes de una forma muy sencilla! gracias por tu comentario! chécate el nuevo video de goroutines y waitgroup 🤓

  • @dafgomz
    @dafgomz 11 месяцев назад +2

    Muy bien explicado, gracias.

  • @yoennisrodriguezgonzalez938
    @yoennisrodriguezgonzalez938 Год назад +1

    Buen material, ánimo

    • @seniorgoespanol
      @seniorgoespanol  Год назад

      Gracias! seguimos trabajando en más contenido y pronto el curso completo de go! stay tuned! 👨‍💻

  • @aldomatus6007
    @aldomatus6007 Год назад +2

    Gracias! que calidad de explicación, me gustó mucho la tabla, todo lo gráfico ayuda a entender mejor.

    • @seniorgoespanol
      @seniorgoespanol  Год назад +1

      Gracias por tu comentario! un placer que te fuera útil! Desde donde nos miras?

    • @aldomatus6007
      @aldomatus6007 Год назад +1

      Te veo desde Oaxaca - México

    • @aldomatus6007
      @aldomatus6007 Год назад

      Sé de Python y C, creo que golang es muy potente, espero entrar al mundo laboral con golang, he trabajado 3 años con Python pero quiero entrar al mundo de Go@@seniorgoespanol

    • @seniorgoespanol
      @seniorgoespanol  Год назад +1

      @@aldomatus6007 eso! Viva México! 🇲🇽

    • @aldomatus6007
      @aldomatus6007 Год назад

      viva México cabrones! 🇲🇽🤗@@seniorgoespanol

  • @sebastianvarona781
    @sebastianvarona781 11 месяцев назад +2

    Gran video amigo!

  • @diegoandres3053
    @diegoandres3053 Год назад +1

    Hola Bro, ojalá hicieras más vídeos. Explicas muy bien y son muy resolutivos en el aspecto práctico.
    Tengo una duda:
    ¿Donde puedo seguir leyendo sobre GO, requiero seguir instruyendome en temas intermedios y avanzados?
    Saludos

    • @seniorgoespanol
      @seniorgoespanol  Год назад

      un honor que te sean útiles nuestros videos amigo! estamos trabajando para subir contenido más seguido! y al mismo tiempo trabajamos en el curso completo de go! Pero como el conocimiento no puede esperar 😌 te dejo aquí los links a los cursos con los que yo aprendí go, están en inglés pero son los mejores cursos que yo he encontrado:
      www.udemy.com/course/learn-how-to-code/learn/lecture/37482440?start=0#overview
      www.udemy.com/course/go-programming-language/learn/lecture/6027350?start=0#overview

    • @seniorgoespanol
      @seniorgoespanol  Год назад

      y sigue pendiente al canal! suscríbete y activa las notificaciones, vamos a seguir subiendo lecciones así de prácticas para los temas que han solicitado como go rutinas, canales, etc.
      Y en cuanto esté el curso de go les avisamos por aquí también!
      feliz programación! 👨‍💻

  • @marioaliaga1159
    @marioaliaga1159 Год назад +1

    Hola muy bueno tu video! Cual es nombre del plug-in que ocupas? Saludos

    • @seniorgoespanol
      @seniorgoespanol  Год назад +1

      Hola Mario! El servicio es Copilot de Github, te dejo el link aquí: github.com/features/copilot
      Es un servicio de OpanAI que "aprende" de todos los repositorios públicos de github y aparte aprende de tu propio proyecto y de tu estilo de programación, y te va sugiriendo código para completar lo que vas escribiendo. Es como tener chatgpt integrado a tu IDE. Es de paga pero puedes probarlo por un mes, en mi caso me atrevo a decir que acelera mi desarrollo hasta un 30% así que lo vale.
      y el IDE que uso es Goland, www.jetbrains.com/go/ es de paga pero vale toda la pena, también agiliza muchísimo el desarrollo.
      y el plugin que me permite usar copilot desde goland es este plugins.jetbrains.com/plugin/17718-github-copilot
      espero te sirva!

  • @device8466
    @device8466 10 месяцев назад +1

    Por mas que hago el esfuerzo no le encuentro ninguna utilidad a las interfaces, mas de 12 años programando en distintos lenguajes que tienen interfaces y jamás las he necesitado, he visto que los que las usan terminan agregando cierta sobre ingenieria adicional, ahi ya lo veo peor, nunca se puede sacrificar legibilidad por reutilización

    • @seniorgoespanol
      @seniorgoespanol  9 месяцев назад +1

      Hola! muy cierto! no puedes sacrificar legibilidad por reutilización, pero bien utilizadas las interfaces no tendría que ser el caso. A ver si me doy a entender con este nuevo ejemplo: imagínate que estás haciendo una instalación de luz eléctrica en tu casa y que vas a instalar un foco, pero imagínate que los focos no fueran como los conocemos, con su rosca que te permite girarlos y enroscarlos en el socket, imagina que cada fabricante de focos tuviera su propia "forma" de instalarlos, unos focos se instalan con tornillos, otros con cables, otros se soldan. Te imaginas lo difícil que sería "cambiar de foco"? O lo difícil que sería "inventar un nuevo foco" y garantizar que va a funcionar en tu casa? Ah pues esa "convención" que conocemos de como se enroscan los focos, es una interface. Es una convención entre "proveedores" de focos y "consumidores" de focos, de que cualquier foco que se haga deberá tener una rosca de ciertas dimensiones y que los contactos para conducir la electricidad deberán estar en puntos específicos, así, no me importa el tamaño de tu foco, ni el color ni cuanto consuma, siempre y cuando cumpla esta interface, yo lo voy a poder instalar en los sockets de mi casa. Así en tu código, imagina que estás desarrollando una app gigantesca y necesitas conectar con una base de datos para obtener cierta información, pero tú no estás a cargo de la parte del repositorio. ¿Cómo garantizas que lo que construya el equipo de repositorio funcione bien con el código que tú estás escribiendo? Definiendo una interface! así tú puedes continuar con tu implementación (el resto de la instalación eléctrica) mientras el resto del equipo desarrolla el repositorio (el foco) porque ambas partes tienen la certeza de que, al cumplir con la interface, ambas partes van a funcionar bien cuando estén terminadas (el foco en tu instalación).

    • @seniorgoespanol
      @seniorgoespanol  9 месяцев назад +2

      y aquí otro uso importantísimo, volviendo al ejemplo de los focos. Imagina que te dedicas a elaborar focos para autos y cada foco que construyes tienes que probarlo para garantizar que funcione, no te vas a poner a "instalar" cada nuevo foco en un auto de verdad y encender las luces del auto para ver si tu foco funciona... lo que harías sería crear un mini-circuito eléctrico (un mock), con un socket donde puedas instalar tu foco (un socket que cumpla la interface de tu foco) y ahí probarías que tu foco funciona correctamente. En el software pasa lo mismo, si en tu aplicación tienes dos "capas", la capa de servicio y la capa de base de datos, y tienes un servicio para "eliminar" registros de la base de datos, ¿cómo lo pruebas? ¿levantas una base de datos real y creas un registro de prueba y luego ejecutas tu servicio "eliminar"? eso sería similar a probar cada foco en el auto completo. Lo ideal aquí sería crear un "mock" de tu base de datos (el minicircuito en donde probar tu foco) que te permita "simular" una base de datos real y así probar tu servicio. Éste tipo de pruebas unitarias es muy difícil (si no es que imposible) si no se utilizan interfaces.
      Espero te sea útil amigo!

    • @device8466
      @device8466 9 месяцев назад

      gracias por la explicación@@seniorgoespanol

    • @lguerrero88
      @lguerrero88 8 месяцев назад

      Las interfaces son el contrato que debe cumplir quien quiera usarlo. En golang son muy útiles para los test y para inyección de dependencias, específicas cuál es el contrato y dónde está implementado. En DDD es muy importante para comunicar tu dominio con los adaptadores, de ahí que esa arquitectura también se conozca como puertos y adaptadores y así hay más utilidades que nos brindan las interfaces.