Envíanos tu consulta
Términos y condiciones *
*Si no puedes asistir en directo de facilitaremos un enlace para verlo en diferido
logoImagina
iconoCurso

Curso completo de Go Avanzado

DISPONIBLE EN MODALIDAD:
Profundiza en el desarollo con Go y aprovecha al máximo el potencial de este lenguaje para crear soluciones profesionales, modernas y complejas
iconClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClient
Formación en Go Avanzado bonificable para empresas

¿A quién va dirigido?

Desarrolladores Go que quieran profundizar en sus conocimientos del lenguaje y desarrollar aplicaciones Go complejas y potentes

Objetivos

  • Aprender de conceptos avanzados de OOP, programación funcional y patrones de diseño en Go
  • Conocer las diferentes soluciones para abordar la concurrencia y el paralelismo
  • Entender y manejar el cacheo de datos así como saber cuándo y dónde usarlo
  • Conocer el TDD enfocándonos en la librería de testing unitario

¿Qué vas a aprender?

Profundiza en el desarollo con Go y aprovecha al máximo el potencial de este lenguaje para crear soluciones profesionales, modernas y complejas

Requisitos

  • Experiencia previa desarrollando con Go y conocimiento de sus fundamentos
  • Tener un equipo con acceso a un usuario con permisos de instalación donde poder realizar el curso
  • Tener Visual Studio Code, Git y Docker Desktop instalados en el equipo previamente

Temario del curso

tema 1

Goroutines y Concurrencia Avanzada

  • Uso avanzado de goroutines y su gestión
  • Pool de goroutines
  • Select statement y multiplexación
  • Contexto y cancelación de goroutines
  • WaitGroup y barreras de sincronización
  • Semáforos y canales con límite de capacidad
  • Comunicación y sincronización avanzada entre goroutines
  • Mutex y RWMutex
  • Atomicidad y operaciones atómicas
  • Condicionales y variables de condición
  • Barreras y grupos de goroutines
  • Uso de sincronización avanzada en casos reales
  • Patrones avanzados de concurrencia en Go
  • Productor-consumidor
  • Worker pools
  • Fan-in / Fan-out
  • Orquestación y coordinación de tareas
  • Concurrencia selectiva y no bloqueante
  • Manejo avanzado de la concurrencia en proyectos complejos
  • Escalabilidad horizontal y vertical
  • Diseño de sistemas concurrentes
  • Coherencia y consistencia en entornos concurrentes
  • Identificación y resolución de condiciones de carrera
  • Pruebas y depuración de problemas de concurrencia
  • Solución de problemas y optimización en la programación concurrente en Go
  • Diagnóstico de cuellos de botella
  • Profiling y análisis de rendimiento
  • Afinamiento de la concurrencia
  • Reducción de la latencia
  • Mejoras en el uso de recursos
tema 2

Programación Funcional Avanzada

  • Uso avanzado de funciones de orden superior
  • Funciones como valores
  • Funciones anónimas y closures
  • Funciones de retorno y asignación
  • Aplicación parcial y currificación
  • Composición de funciones
  • Trabajo con clausuras avanzadas
  • Captura de variables y ámbito léxico
  • Modificación y reasignación de variables capturadas
  • Closures y recursión
  • Clausuras y concurrencia
  • Usos avanzados de clausuras en patrones de diseño
  • Aplicación de técnicas funcionales en el desarrollo de proyectos en Go
  • Inmutabilidad y pureza
  • Composición funcional
  • Programación reactiva
  • Stream processing
  • Uso de librerías funcionales en Go
  • Patrones avanzados de programación funcional en Go
  • Map, Filter, Reduce y otras operaciones sobre colecciones
  • Option types y manejo de valores nulos
  • Monads y programación monádica
  • Recursión estructural y tail-call optimization
  • Pattern matching y pattern combinators
  • Ventajas y consideraciones de la programación funcional en Go
  • Código más conciso y legible
  • Testabilidad y mantenibilidad mejoradas
  • Paralelismo y distribución
  • Efectos secundarios controlados
  • Comparativa con otros estilos de programación en Go
tema 3

Reflexión

  • Uso avanzado de la reflexión en Go
  • Tipos reflect y Value
  • Inspección de campos y métodos
  • Creación dinámica de estructuras y tipos
  • Invocación dinámica de métodos y funciones
  • Limitaciones y consideraciones de rendimiento
  • Generación de código en tiempo de ejecución
  • Plantillas y generadores de código
  • Uso de AST (Abstract Syntax Tree)
  • Escritura de generadores personalizados
  • Integración con herramientas de generación de código externas
  • Casos de uso y mejores prácticas
  • Creación y manipulación de tipos y estructuras de forma dinámica
  • Definición y registro de nuevos tipos
  • Modificación de estructuras en tiempo de ejecución
  • Generación de métodos y campos dinámicamente
  • Creación de interfaces y conversiones dinámicas
tema 4

Metaprogramación

  • Introducción a la metaprogramación
  • Implementación de patrones de diseño basados en metaprogramación
  • Uso avanzado de las capacidades de metaprogramación en Go
  • Extensiones y DSL (Domain Specific Language)
  • Anotaciones y metadatos
  • Interceptores y proxy
  • Implementación de frameworks y herramientas basadas en metaprogramación
  • Aspectos de seguridad y mantenibilidad en la metaprogramación
  • Casos de uso y buenas prácticas de la reflexión y metaprogramación en Go
  • Serialización y deserialización de objetos
  • Inyección de dependencias en tiempo de ejecución
  • Generación de código repetitivo y boilerplate
  • Extensibilidad y personalización de librerías y frameworks
  • Consideraciones de rendimiento y seguridad
tema 5

Integración Avanzada con C y C++

  • Uso de paquetes y librerías escritas en C y C++ en proyectos de Go
  • Creación de bindings con cgo
  • Importación y uso de funciones y estructuras C/C++
  • Gestión de memoria y punteros en la integración
  • Resolución de problemas comunes en la integración C/C++
  • Optimización y rendimiento en la integración con código nativo
  • Creación de bindings y wrappers en Go para interactuar con código de C y C++
  • Diseño de APIs en Go para utilizar desde C/C++
  • Generación automática de bindings con herramientas
  • Gestión de tipos y conversión de datos
  • Testeo y depuración de bindings
  • Mejores prácticas en la creación de bindings en Go
tema 6

Optimizaciones y mejoras de rendimiento en GO

  • Optimización y rendimiento en la integración de Go con código nativo
  • Reducción de llamadas y conversión de datos
  • Uso de memoria compartida y buffers
  • Paralelismo y concurrencia en la integración
  • Minimización de sobrecarga y latencia
  • Pruebas y análisis de rendimiento en la integración avanzada
  • Mejores prácticas y consideraciones de seguridad en la integración de lenguajes en Go
  • Protección de memoria y evitación de fugas
  • Manejo seguro de punteros y estructuras de datos
  • Control de acceso y validación de datos externos
  • Prevención de ataques de desbordamiento y corrupción de memoria
  • Análisis de vulnerabilidades y parcheo de código externo
  • Resolución de problemas comunes en la integración avanzada de Go con C y C++
  • Incompatibilidades de tipos y estructuras de datos
  • Errores de enlace y dependencias
  • Gestión de recursos compartidos y concurrencia
  • Depuración de fallos y crashes en la integración
  • Estrategias de mantenimiento y actualización del código externo
tema 7

Desarrollo de Aplicaciones Web Avanzadas

  • Uso avanzado de frameworks y librerías web en Go (por ejemplo, Gin, Echo)
  • Enrutamiento y manejo de rutas complejas
  • Middleware y gestión avanzada de solicitudes y respuestas
  • Autenticación y autorización avanzada en aplicaciones web
  • Validación de formularios y datos de entrada
  • Integración con servicios externos (APIs, bases de datos, etc.)
  • Creación de APIs avanzadas con Go
  • Diseño y estructura de APIs RESTful
  • Versionado y evolución de APIs
  • Documentación y generación automática de documentación
  • Pruebas y validación de APIs
  • Consideraciones de seguridad en APIs avanzadas
tema 8

Sistemas de autenticación y Autorización

  • Implementación de autenticación y autorización avanzada en aplicaciones web
  • Autenticación basada en tokens (JWT)
  • OAuth 2.0 y OpenID Connect
  • Gestión de roles y permisos
  • Protección contra ataques de seguridad comunes (XSS, CSRF)
  • Implementación de políticas de seguridad personalizadas
  • Escalabilidad y rendimiento en aplicaciones web en Go
  • Caching y almacenamiento en memoria
  • Distribución de carga y balanceo de carga
  • Escalado horizontal y vertical
  • Optimización de consultas y acceso a bases de datos
  • Monitoreo y ajuste del rendimiento en aplicaciones web
  • Pruebas avanzadas y metodologías de desarrollo en aplicaciones web en Go
  • Pruebas unitarias y de integración
  • Mocking y simulación de dependencias
  • Pruebas de carga y estrés
  • Integración continua y despliegue continuo
  • Metodologías ágiles y prácticas de desarrollo colaborativo
tema 9

Trabajo con Bases de Datos Avanzado

  • Uso avanzado de bases de datos relacionales (por ejemplo, MySQL, PostgreSQL) en proyectos Go
  • Uso de ORM (Object-Relational Mapping)
  • Consultas avanzadas y optimización de rendimiento
  • Transacciones y bloqueo de registros
  • Configuración de conexiones y pools de conexiones
  • Modelado y migraciones de bases de datos
tema 10

Modelado de datos y relaciones en bases de datos NoSQL

  • Implementación de bases de datos NoSQL (por ejemplo, MongoDB, Redis) en proyectos Go
  • Uso de consultas y operaciones avanzadas
  • Indexación y optimización de consultas
  • Uso de caché y almacenamiento en memoria
  • Replicación y escalado horizontal en bases de datos NoSQL
  • ORM y mapeo objeto-relacional avanzado en Go
  • Configuración y uso de ORMs populares en Go (por ejemplo, GORM, XORM)
  • Relaciones y asociaciones avanzadas entre objetos
  • Consultas complejas y optimización de rendimiento
  • Transacciones y bloqueo de registros
  • Uso de características específicas de ORMs en Go
  • Optimización y rendimiento en el acceso a bases de datos en Go
  • Uso de índices y optimización de consultas
  • Uso eficiente de caché y almacenamiento en memoria
  • Estrategias de particionamiento y fragmentación de datos
  • Modelado de datos eficiente para consultas rápidas
  • Análisis y ajuste del rendimiento en el acceso a bases de datos
  • Seguridad y consideraciones de mantenimiento en el acceso a bases de datos en Go
  • Prevención de ataques de inyección de SQL
  • Protección de datos sensibles y encriptación
  • Control de acceso y autenticación en el acceso a bases de datos
  • Actualizaciones y migraciones seguras de esquemas de bases de datos
  • Estrategias de copia de seguridad y recuperación de datos
tema 11

Administración y Despliegue de Proyectos Go

  • Configuración y despliegue de proyectos Go en entornos de producción
  • Configuración del entorno y variables de entorno
  • Empaquetado y distribución de aplicaciones
  • Gestión de dependencias y versiones
  • Control de configuración y gestión de secretos
  • Monitorización y registro de aplicaciones en producción
  • Implementación de prácticas de DevOps en proyectos Go
  • Integración continua y despliegue continuo
  • Automatización de tareas y flujos de trabajo
tema 12

Gestión de infraestructura y aprovisionamiento

  • Orquestación de contenedores y despliegue en la nube
  • Monitoreo y alertas en entornos de producción
  • Seguridad y mejores prácticas en la administración de proyectos Go
  • Auditoría de código y análisis estático
  • Protección de datos y autenticación segura
  • Configuración de cortafuegos y protección de red
  • Gestión de permisos y acceso a recursos
  • Prácticas de seguridad en entornos de desarrollo y producción
tema 13

Gestión de proyectos Go a largo plazo

  • Mantenimiento y actualización de dependencias
  • Resolución de conflictos y actualizaciones de versiones
  • Refactorización y mejora continua del código
  • Pruebas y validación de cambios en proyectos en producción
  • Planificación y seguimiento de tareas y hitos en proyectos Go
tema 14

Proyecto Final: Desarrollo de una Aplicación Completa en Go

  • Definición de los requisitos y funcionalidades del proyecto
  • Diseño de la arquitectura y la estructura de la aplicación
  • Planificación y estimación del tiempo y los recursos necesarios
  • Implementación del proyecto
  • Desarrollo de los componentes principales de la aplicación
  • Integración de las diferentes funcionalidades y módulos
  • Implementación de pruebas unitarias y de integración
  • Optimización del rendimiento y la eficiencia del código
  • Diseño y desarrollo de la interfaz de usuario
  • Implementación de interacciones y flujos de usuario
  • Mejora de la usabilidad y accesibilidad de la aplicación
  • Pruebas de usabilidad y feedback de usuarios
  • Conexión y comunicación con servicios web y APIs externas
  • Implementación de integraciones con sistemas de terceros
  • Gestión de autorización y autenticación en las integraciones
  • Pruebas y validación de las integraciones realizadas
  • Implementación de medidas de seguridad robustas
  • Protección contra ataques y vulnerabilidades conocidas
  • Uso de encriptación y protección de datos sensibles
  • Auditoría y registro de eventos de seguridad
  • Configuración del entorno de producción
  • Despliegue de la aplicación en servidores o en la nube
  • Configuración de la escalabilidad y la alta disponibilidad
  • Monitorización y gestión de errores en producción
  • Gestión de actualizaciones y mejoras continuas
  • Mantenimiento de la infraestructura y los servicios utilizados
  • Resolución de incidencias y corrección de errores
  • Planificación y desarrollo de nuevas funcionalidades
  • Preparación de la documentación técnica y de usuario
  • Elaboración de una presentación del proyecto
  • Demostración y explicación de las funcionalidades implementadas

Curso de Go Avanzado bonificado para Empresas a través de FUNDAE

Somos entidad organizadora de FUNDAE, todas nuestras formaciones se pueden bonificar hasta el 100%, sujeto a vuestro crédito disponible y a cumplir con todos los requisitos de realización establecidos por la Fundación Estatal para el Empleo.

 

Si desconoces el funcionamiento de las bonificaciones, ofrecemos el servicio de gestión en FUNDAE, consúltanos cualquier duda que te surja.

Descargar Guía FUNDAE
imagenFundae
iconClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClient