Una guía para desarrolladores de backend en Go.
En esta guía vamos a empezar viendo la sintaxis del lenguaje para luego avanzar hacia la parte de backend y bases de datos. Para finalizar veremos buenas prácticas, algoritmos útiles y otras cosas relacionadas con el desarrollo.
Se asume que el lector ya sabe programar en otro lenguaje, por lo que si estás buscando una guía para iniciarte en el maravilloso mundo de la programación, este no es el lugar indicado.
Por lo contrario, si ya sabés programar en otro lenguaje y tenés los conocimientos básicos sobre algoritmos, estructuras de control, variables y funciones, esta guía te va a ayudar a aprender Go y adentrarte en el mundo del desarrollo de backend de APIs REST.
No dudes en enviar un PR con los cambios propuestos. Toda crítica constructiva es bienvenida.
- Estructura de un programa en Go
- Variables, constantes y tipos de datos
- Funciones
- Sentencias de condición
- Sentencias de iteración
- Punteros
- Estructuras
- Interfaces
- Paquetes y dependencias
- Gorutinas (concurrencia)
- Canales
- Testing
- Mocks
- HTTP y APIs REST
- Creando un endpoint GET
- Haciendo una llamada a un endpoint (API call)
- Creando un endpoint POST
- Tipos (relacionales y no relacionales)
- Persistiendo datos en una base no relacional (MongoDB)
- Persistiendo datos en una base relacional (PostreSQL)
- Cache
- Patrones de diseño
- Factory
- Abstract factory
- Strategy
- Singleton
- Decorator
- Observer
- Estructuras de datos
- Vector (array)
- Lista enlazada (linked list)
- Tabla de hash o mapa (hash table)
- Pila (stack)
- Cola (queue)
- Complejidad algorítmica
- Seguridad de datos
- Otros conocimientos
- Git y gitflow
- Docker
- Estrategias de deploy
- Canary
- Blue/green
- All in
- Balanceador de carga
- Proxy
- Integración Continua (CI)
- Despliegue Continuo (CD)
- Logs y métricas
- Buenas prácticas para Go - Lista de estructuras de paquetes, convenciones de nombres y otras buenas prácticas
- Awesome Go - Lista de librerías y paquetes útiles para Go, ordenados por categoría
- Visualizando la concurrencia en Go - Explicación gráfica de las goroutines y la concurrencia